#include "psprecomp/runtime.hpp" #include "generated_units.hpp" #include "vcs_camera_input.hpp" #include #include #include #include namespace psprecomp { static const std::uint16_t kEntryIds_recomp_unit_0102[4095] = { 1, 0, 2, 0, 3, 0, 0, 4, 0, 5, 0, 0, 6, 0, 7, 0, 0, 8, 0, 9, 0, 0, 10, 0, 11, 0, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 15, 0, 16, 0, 0, 17, 0, 18, 0, 0, 0, 19, 0, 0, 0, 0, 20, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 23, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 26, 0, 27, 0, 0, 0, 28, 0, 0, 0, 29, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 32, 0, 0, 33, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 35, 0, 0, 36, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 40, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 43, 44, 0, 0, 0, 0, 0, 0, 45, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 47, 0, 48, 0, 0, 49, 0, 0, 0, 0, 50, 51, 0, 52, 0, 0, 53, 0, 0, 0, 0, 54, 55, 0, 56, 0, 57, 0, 58, 0, 59, 0, 0, 60, 0, 0, 0, 61, 0, 62, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 65, 0, 0, 66, 0, 67, 0, 68, 0, 69, 0, 70, 0, 0, 71, 0, 0, 0, 72, 0, 0, 0, 73, 0, 0, 74, 0, 75, 0, 76, 0, 77, 0, 78, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 81, 0, 0, 82, 0, 0, 0, 83, 0, 0, 0, 84, 0, 85, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 87, 0, 88, 0, 89, 0, 90, 0, 0, 0, 0, 0, 91, 0, 92, 0, 0, 93, 0, 0, 0, 94, 0, 95, 0, 96, 0, 0, 0, 97, 0, 0, 0, 98, 0, 0, 0, 99, 0, 0, 0, 100, 0, 0, 0, 101, 0, 0, 0, 102, 0, 0, 0, 103, 0, 104, 0, 105, 0, 106, 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 110, 0, 111, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 114, 0, 115, 0, 116, 0, 117, 0, 118, 119, 0, 120, 0, 121, 0, 122, 0, 0, 0, 0, 123, 0, 0, 124, 0, 125, 0, 126, 127, 128, 0, 129, 0, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 133, 0, 0, 0, 0, 134, 0, 0, 135, 0, 136, 0, 0, 0, 0, 0, 0, 0, 137, 0, 0, 0, 138, 0, 0, 0, 0, 0, 139, 0, 0, 0, 140, 141, 0, 0, 142, 0, 0, 143, 0, 0, 0, 0, 144, 0, 145, 0, 0, 0, 146, 0, 0, 0, 0, 147, 0, 0, 0, 0, 148, 0, 0, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, 0, 0, 0, 0, 0, 0, 154, 0, 0, 0, 0, 0, 0, 155, 0, 156, 0, 157, 0, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 0, 0, 0, 0, 0, 0, 162, 0, 163, 0, 164, 0, 165, 166, 0, 167, 0, 0, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 169, 0, 0, 0, 0, 0, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, 0, 172, 0, 0, 0, 0, 173, 0, 174, 0, 175, 0, 176, 0, 0, 0, 177, 0, 178, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 184, 0, 0, 0, 0, 185, 0, 186, 0, 0, 0, 0, 187, 0, 0, 188, 0, 0, 0, 0, 189, 0, 0, 0, 190, 0, 0, 0, 191, 192, 0, 0, 0, 0, 0, 0, 193, 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, 0, 0, 196, 0, 0, 0, 197, 0, 0, 0, 0, 0, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, 0, 0, 200, 0, 0, 0, 201, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 203, 0, 0, 0, 0, 204, 0, 205, 206, 0, 207, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, 0, 0, 0, 210, 0, 211, 0, 212, 213, 0, 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 217, 0, 218, 0, 219, 0, 220, 0, 0, 0, 0, 0, 221, 0, 222, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 224, 0, 0, 0, 0, 0, 0, 225, 0, 0, 0, 226, 0, 0, 0, 0, 227, 0, 228, 0, 0, 0, 0, 0, 0, 229, 0, 230, 0, 0, 0, 0, 231, 0, 0, 0, 232, 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, 234, 0, 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, 238, 0, 239, 0, 0, 0, 0, 240, 0, 0, 0, 241, 0, 0, 242, 0, 0, 0, 243, 0, 244, 0, 245, 0, 0, 0, 0, 246, 0, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 0, 0, 0, 0, 0, 0, 249, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 251, 0, 252, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 254, 0, 255, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 257, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 0, 0, 260, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 266, 0, 267, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 269, 270, 0, 0, 0, 0, 0, 0, 271, 0, 0, 0, 0, 0, 272, 0, 0, 273, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 275, 0, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 278, 0, 0, 0, 279, 0, 0, 0, 280, 0, 281, 0, 282, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 285, 0, 286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 287, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 290, 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 295, 0, 296, 0, 297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, 299, 0, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 302, 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 305, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 306, 0, 307, 0, 308, 0, 309, 0, 310, 0, 0, 0, 0, 0, 0, 311, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 314, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 318, 0, 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 0, 321, 0, 322, 0, 323, 0, 0, 0, 324, 0, 0, 0, 0, 325, 0, 0, 0, 326, 327, 0, 0, 0, 0, 0, 328, 0, 0, 0, 0, 0, 329, 0, 330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 334, 0, 0, 0, 0, 0, 0, 0, 0, 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, 337, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, 0, 0, 0, 339, 0, 0, 340, 0, 0, 0, 0, 0, 341, 342, 0, 0, 343, 0, 0, 344, 0, 0, 0, 0, 0, 345, 0, 346, 0, 347, 0, 348, 0, 0, 349, 0, 0, 350, 0, 0, 351, 0, 352, 0, 0, 0, 0, 0, 0, 0, 0, 353, 0, 0, 354, 0, 0, 0, 355, 356, 357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 358, 359, 0, 0, 0, 0, 0, 0, 360, 0, 0, 0, 361, 0, 0, 0, 0, 0, 0, 362, 0, 0, 0, 363, 0, 0, 0, 0, 0, 0, 364, 0, 0, 365, 0, 0, 366, 0, 0, 0, 367, 0, 368, 0, 0, 0, 0, 0, 0, 0, 0, 369, 0, 0, 0, 370, 0, 0, 0, 0, 0, 371, 0, 0, 0, 372, 373, 0, 0, 0, 0, 0, 374, 0, 0, 0, 0, 0, 0, 0, 375, 0, 0, 0, 0, 376, 0, 0, 0, 0, 377, 0, 378, 0, 0, 0, 0, 0, 0, 0, 0, 379, 0, 380, 381, 0, 0, 0, 382, 0, 0, 383, 0, 0, 384, 0, 0, 385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, 0, 0, 0, 0, 0, 387, 0, 0, 0, 388, 0, 389, 0, 390, 391, 0, 0, 0, 0, 392, 0, 0, 0, 0, 393, 0, 0, 0, 0, 0, 394, 0, 395, 0, 396, 0, 0, 397, 0, 0, 0, 398, 0, 0, 399, 0, 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 401, 0, 0, 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, 0, 0, 0, 0, 404, 0, 0, 0, 405, 406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 407, 0, 0, 0, 408, 0, 409, 0, 410, 411, 0, 0, 0, 0, 0, 0, 0, 412, 0, 0, 0, 413, 0, 0, 0, 0, 0, 414, 0, 0, 0, 415, 0, 416, 0, 417, 418, 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 420, 0, 0, 0, 0, 0, 0, 421, 0, 0, 0, 0, 0, 422, 0, 0, 0, 0, 0, 0, 0, 0, 423, 0, 0, 0, 424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 425, 426, 0, 0, 0, 0, 0, 427, 0, 428, 0, 429, 0, 430, 0, 431, 0, 0, 0, 0, 432, 0, 0, 433, 0, 0, 0, 0, 434, 0, 0, 0, 435, 0, 0, 436, 0, 0, 437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 438, 0, 0, 0, 0, 0, 0, 0, 439, 440, 0, 0, 0, 0, 0, 0, 0, 441, 0, 0, 442, 0, 0, 0, 443, 444, 0, 0, 0, 0, 0, 445, 0, 0, 0, 446, 0, 0, 0, 0, 0, 447, 0, 0, 0, 0, 0, 448, 0, 449, 0, 450, 0, 0, 451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 452, 0, 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 455, 0, 0, 0, 0, 456, 0, 457, 0, 0, 0, 0, 458, 459, 460, 0, 0, 0, 0, 0, 0, 0, 0, 461, 0, 0, 0, 0, 462, 0, 0, 0, 0, 0, 463, 0, 0, 0, 464, 0, 0, 0, 0, 0, 0, 465, 0, 466, 0, 467, 0, 0, 0, 0, 0, 0, 0, 468, 0, 0, 0, 469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 473, 0, 0, 0, 0, 474, 0, 0, 0, 0, 475, 0, 0, 0, 476, 0, 0, 477, 0, 0, 0, 478, 0, 0, 0, 0, 479, 0, 0, 0, 0, 0, 0, 0, 0, 480, 0, 481, 0, 0, 0, 0, 482, 483, 484, 0, 0, 0, 0, 0, 0, 485, 0, 486, 0, 0, 0, 0, 0, 487, 488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 489, 0, 490, 0, 0, 0, 0, 491, 492, 0, 493, 0, 0, 0, 0, 494, 0, 0, 495, 0, 496, 0, 497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 498, 0, 499, 0, 0, 0, 0, 500, 501, 502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 503, 0, 504, 0, 505, 0, 506, 0, 0, 0, 0, 0, 507, 0, 508, 0, 0, 0, 0, 509, 0, 0, 0, 0, 0, 510, 0, 0, 0, 0, 0, 0, 0, 511, 0, 512, 0, 0, 0, 0, 0, 513, 514, 0, 0, 0, 0, 0, 0, 0, 0, 515, 0, 516, 0, 0, 0, 0, 0, 0, 0, 0, 0, 517, 0, 0, 518, 0, 0, 0, 0, 0, 0, 519, 0, 520, 0, 0, 0, 0, 0, 0, 0, 521, 0, 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 523, 0, 0, 0, 524, 0, 0, 0, 525, 0, 0, 526, 0, 0, 0, 527, 0, 0, 528, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 532, 0, 0, 0, 533, 0, 0, 534, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 537, 0, 0, 0, 538, 0, 0, 539, 0, 0, 0, 540, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 542, 0, 543, 0, 0, 0, 544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 546, 0, 0, 0, 0, 547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 548, 0, 549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 550, 0, 0, 0, 0, 0, 0, 551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 552, 0, 553, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 555, 0, 556, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 0, 0, 0, 0, 0, 0, 559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 560, 0, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 562, 0, 563, 0, 564, 0, 565, 0, 566, 0, 567, 0, 0, 568, 0, 0, 0, 0, 0, 0, 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 570, 571, 0, 0, 0, 0, 0, 572, 0, 0, 0, 573, 0, 0, 0, 0, 574, 0, 0, 0, 575, 0, 0, 0, 576, 0, 0, 0, 577, 0, 578, 0, 579, 0, 580, 0, 581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 583, 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 585, 0, 586, 0, 587, 0, 0, 0, 588, 0, 0, 0, 0, 589, 0, 0, 0, 590, 0, 591, 0, 0, 0, 592, 0, 0, 0, 593, 0, 594, 0, 0, 0, 595, 0, 0, 0, 596, 0, 597, 0, 0, 0, 598, 0, 599, 0, 0, 0, 600, 601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 602, 0, 0, 0, 603, 0, 0, 0, 0, 604, 0, 0, 0, 0, 0, 0, 0, 0, 605, 0, 0, 0, 0, 0, 606, 0, 0, 0, 0, 0, 0, 0, 0, 607, 0, 0, 0, 0, 608, 0, 0, 0, 0, 0, 0, 0, 0, 609, 0, 0, 0, 0, 0, 0, 610, 0, 0, 0, 0, 0, 0, 0, 611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 612, 0, 0, 613, 0, 0, 0, 614, 0, 0, 0, 0, 615, 0, 0, 616, 0, 0, 0, 617, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 618, 0, 619, 0, 0, 0, 0, 0, 0, 620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 621, 0, 0, 0, 0, 0, 0, 0, 622, 0, 623, 0, 624, 0, 0, 0, 625, 0, 0, 0, 626, 0, 0, 0, 0, 0, 0, 0, 627, 0, 628, 0, 0, 0, 629, 0, 0, 0, 630, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 632, 0, 0, 0, 633, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 634, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 635, 0, 0, 0, 0, 636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 637, 0, 0, 0, 0, 638, 0, 639, 0, 0, 0, 0, 640, 641, 0, 0, 642, }; void recomp_unit_0102_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { std::uint32_t jump_target = 0u; std::uint32_t local_transfers = 0u; std::uint32_t local_pc = ctx.pc; std::uint32_t entry_id = direct_entry_id; LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x0899C000u; entry_id = (entry_delta < 16380u && (entry_delta & 3u) == 0u) ? kEntryIds_recomp_unit_0102[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_0899C000; case 2u: goto L_0899C008; case 3u: goto L_0899C010; case 4u: goto L_0899C01C; case 5u: goto L_0899C024; case 6u: goto L_0899C030; case 7u: goto L_0899C038; case 8u: goto L_0899C044; case 9u: goto L_0899C04C; case 10u: goto L_0899C058; case 11u: goto L_0899C060; case 12u: goto L_0899C06C; case 13u: goto L_0899C074; case 14u: goto L_0899C0CC; case 15u: goto L_0899C0D8; case 16u: goto L_0899C0E0; case 17u: goto L_0899C0EC; case 18u: goto L_0899C0F4; case 19u: goto L_0899C104; case 20u: goto L_0899C118; case 21u: goto L_0899C12C; case 22u: goto L_0899C168; case 23u: goto L_0899C170; case 24u: goto L_0899C184; case 25u: goto L_0899C1C0; case 26u: goto L_0899C1D8; case 27u: goto L_0899C1E0; case 28u: goto L_0899C1F0; case 29u: goto L_0899C200; case 30u: goto L_0899C208; case 31u: goto L_0899C244; case 32u: goto L_0899C25C; case 33u: goto L_0899C268; case 34u: goto L_0899C27C; case 35u: goto L_0899C294; case 36u: goto L_0899C2A0; case 37u: goto L_0899C2B8; case 38u: goto L_0899C2D8; case 39u: goto L_0899C328; case 40u: goto L_0899C33C; case 41u: goto L_0899C34C; case 42u: goto L_0899C35C; case 43u: goto L_0899C36C; case 44u: goto L_0899C370; case 45u: goto L_0899C38C; case 46u: goto L_0899C398; case 47u: goto L_0899C3B8; case 48u: goto L_0899C3C0; case 49u: goto L_0899C3CC; case 50u: goto L_0899C3E0; case 51u: goto L_0899C3E4; case 52u: goto L_0899C3EC; case 53u: goto L_0899C3F8; case 54u: goto L_0899C40C; case 55u: goto L_0899C410; case 56u: goto L_0899C418; case 57u: goto L_0899C420; case 58u: goto L_0899C428; case 59u: goto L_0899C430; case 60u: goto L_0899C43C; case 61u: goto L_0899C44C; case 62u: goto L_0899C454; case 63u: goto L_0899C460; case 64u: goto L_0899C470; case 65u: goto L_0899C480; case 66u: goto L_0899C48C; case 67u: goto L_0899C494; case 68u: goto L_0899C49C; case 69u: goto L_0899C4A4; case 70u: goto L_0899C4AC; case 71u: goto L_0899C4B8; case 72u: goto L_0899C4C8; case 73u: goto L_0899C4D8; case 74u: goto L_0899C4E4; case 75u: goto L_0899C4EC; case 76u: goto L_0899C4F4; case 77u: goto L_0899C4FC; case 78u: goto L_0899C504; case 79u: goto L_0899C510; case 80u: goto L_0899C520; case 81u: goto L_0899C530; case 82u: goto L_0899C53C; case 83u: goto L_0899C54C; case 84u: goto L_0899C55C; case 85u: goto L_0899C564; case 86u: goto L_0899C574; case 87u: goto L_0899C594; case 88u: goto L_0899C59C; case 89u: goto L_0899C5A4; case 90u: goto L_0899C5AC; case 91u: goto L_0899C5C4; case 92u: goto L_0899C5CC; case 93u: goto L_0899C5D8; case 94u: goto L_0899C5E8; case 95u: goto L_0899C5F0; case 96u: goto L_0899C5F8; case 97u: goto L_0899C608; case 98u: goto L_0899C618; case 99u: goto L_0899C628; case 100u: goto L_0899C638; case 101u: goto L_0899C648; case 102u: goto L_0899C658; case 103u: goto L_0899C668; case 104u: goto L_0899C670; case 105u: goto L_0899C678; case 106u: goto L_0899C680; case 107u: goto L_0899C6A0; case 108u: goto L_0899C6EC; case 109u: goto L_0899C704; case 110u: goto L_0899C724; case 111u: goto L_0899C72C; case 112u: goto L_0899C734; case 113u: goto L_0899C758; case 114u: goto L_0899C77C; case 115u: goto L_0899C784; case 116u: goto L_0899C78C; case 117u: goto L_0899C794; case 118u: goto L_0899C79C; case 119u: goto L_0899C7A0; case 120u: goto L_0899C7A8; case 121u: goto L_0899C7B0; case 122u: goto L_0899C7B8; case 123u: goto L_0899C7CC; case 124u: goto L_0899C7D8; case 125u: goto L_0899C7E0; case 126u: goto L_0899C7E8; case 127u: goto L_0899C7EC; case 128u: goto L_0899C7F0; case 129u: goto L_0899C7F8; case 130u: goto L_0899C800; case 131u: goto L_0899C82C; case 132u: goto L_0899C854; case 133u: goto L_0899C858; case 134u: goto L_0899C86C; case 135u: goto L_0899C878; case 136u: goto L_0899C880; case 137u: goto L_0899C8A0; case 138u: goto L_0899C8B0; case 139u: goto L_0899C8C8; case 140u: goto L_0899C8D8; case 141u: goto L_0899C8DC; case 142u: goto L_0899C8E8; case 143u: goto L_0899C8F4; case 144u: goto L_0899C908; case 145u: goto L_0899C910; case 146u: goto L_0899C920; case 147u: goto L_0899C934; case 148u: goto L_0899C948; case 149u: goto L_0899C95C; case 150u: goto L_0899C9D0; case 151u: goto L_0899C9D4; case 152u: goto L_0899CA04; case 153u: goto L_0899CA50; case 154u: goto L_0899CA6C; case 155u: goto L_0899CA88; case 156u: goto L_0899CA90; case 157u: goto L_0899CA98; case 158u: goto L_0899CAA0; case 159u: goto L_0899CAA4; case 160u: goto L_0899CAD0; case 161u: goto L_0899CB00; case 162u: goto L_0899CB1C; case 163u: goto L_0899CB24; case 164u: goto L_0899CB2C; case 165u: goto L_0899CB34; case 166u: goto L_0899CB38; case 167u: goto L_0899CB40; case 168u: goto L_0899CB4C; case 169u: goto L_0899CB90; case 170u: goto L_0899CBA8; case 171u: goto L_0899CBDC; case 172u: goto L_0899CBF0; case 173u: goto L_0899CC04; case 174u: goto L_0899CC0C; case 175u: goto L_0899CC14; case 176u: goto L_0899CC1C; case 177u: goto L_0899CC2C; case 178u: goto L_0899CC34; case 179u: goto L_0899CC40; case 180u: goto L_0899CC98; case 181u: goto L_0899CCF8; case 182u: goto L_0899CD1C; case 183u: goto L_0899CD4C; case 184u: goto L_0899CD58; case 185u: goto L_0899CD6C; case 186u: goto L_0899CD74; case 187u: goto L_0899CD88; case 188u: goto L_0899CD94; case 189u: goto L_0899CDA8; case 190u: goto L_0899CDB8; case 191u: goto L_0899CDC8; case 192u: goto L_0899CDCC; case 193u: goto L_0899CDE8; case 194u: goto L_0899CDF4; case 195u: goto L_0899CE88; case 196u: goto L_0899CE94; case 197u: goto L_0899CEA4; case 198u: goto L_0899CEBC; case 199u: goto L_0899CF04; case 200u: goto L_0899CF20; case 201u: goto L_0899CF30; case 202u: goto L_0899CF38; case 203u: goto L_0899CF70; case 204u: goto L_0899CF84; case 205u: goto L_0899CF8C; case 206u: goto L_0899CF90; case 207u: goto L_0899CF98; case 208u: goto L_0899CF9C; case 209u: goto L_0899CFDC; case 210u: goto L_0899CFF0; case 211u: goto L_0899CFF8; case 212u: goto L_0899D000; case 213u: goto L_0899D004; case 214u: goto L_0899D010; case 215u: goto L_0899D034; case 216u: goto L_0899D090; case 217u: goto L_0899D0B8; case 218u: goto L_0899D0C0; case 219u: goto L_0899D0C8; case 220u: goto L_0899D0D0; case 221u: goto L_0899D0E8; case 222u: goto L_0899D0F0; case 223u: goto L_0899D10C; case 224u: goto L_0899D120; case 225u: goto L_0899D13C; case 226u: goto L_0899D14C; case 227u: goto L_0899D160; case 228u: goto L_0899D168; case 229u: goto L_0899D184; case 230u: goto L_0899D18C; case 231u: goto L_0899D1A0; case 232u: goto L_0899D1B0; case 233u: goto L_0899D1BC; case 234u: goto L_0899D1E0; case 235u: goto L_0899D1F4; case 236u: goto L_0899D218; case 237u: goto L_0899D228; case 238u: goto L_0899D244; case 239u: goto L_0899D24C; case 240u: goto L_0899D260; case 241u: goto L_0899D270; case 242u: goto L_0899D27C; case 243u: goto L_0899D28C; case 244u: goto L_0899D294; case 245u: goto L_0899D29C; case 246u: goto L_0899D2B0; case 247u: goto L_0899D2B8; case 248u: goto L_0899D344; case 249u: goto L_0899D360; case 250u: goto L_0899D364; case 251u: goto L_0899D3D8; case 252u: goto L_0899D3E0; case 253u: goto L_0899D3F4; case 254u: goto L_0899D40C; case 255u: goto L_0899D414; case 256u: goto L_0899D42C; case 257u: goto L_0899D45C; case 258u: goto L_0899D480; case 259u: goto L_0899D4B0; case 260u: goto L_0899D4D4; case 261u: goto L_0899D4D8; case 262u: goto L_0899D504; case 263u: goto L_0899D544; case 264u: goto L_0899D58C; case 265u: goto L_0899D5D0; case 266u: goto L_0899D714; case 267u: goto L_0899D71C; case 268u: goto L_0899D72C; case 269u: goto L_0899D768; case 270u: goto L_0899D76C; case 271u: goto L_0899D788; case 272u: goto L_0899D7A0; case 273u: goto L_0899D7AC; case 274u: goto L_0899D7C0; case 275u: goto L_0899D874; case 276u: goto L_0899D87C; case 277u: goto L_0899D8E4; case 278u: goto L_0899D968; case 279u: goto L_0899D978; case 280u: goto L_0899D988; case 281u: goto L_0899D990; case 282u: goto L_0899D998; case 283u: goto L_0899D9A0; case 284u: goto L_0899DAC4; case 285u: goto L_0899DB04; case 286u: goto L_0899DB0C; case 287u: goto L_0899DB74; case 288u: goto L_0899DB78; case 289u: goto L_0899DBBC; case 290u: goto L_0899DC28; case 291u: goto L_0899DC3C; case 292u: goto L_0899DC98; case 293u: goto L_0899DCA0; case 294u: goto L_0899DD28; case 295u: goto L_0899DD54; case 296u: goto L_0899DD5C; case 297u: goto L_0899DD64; case 298u: goto L_0899DD90; case 299u: goto L_0899DD98; case 300u: goto L_0899DDA0; case 301u: goto L_0899DDE4; case 302u: goto L_0899DE10; case 303u: goto L_0899DE18; case 304u: goto L_0899DE98; case 305u: goto L_0899DEC4; case 306u: goto L_0899DF20; case 307u: goto L_0899DF28; case 308u: goto L_0899DF30; case 309u: goto L_0899DF38; case 310u: goto L_0899DF40; case 311u: goto L_0899DF5C; case 312u: goto L_0899DF68; case 313u: goto L_0899DF98; case 314u: goto L_0899DFA0; case 315u: goto L_0899DFA4; case 316u: goto L_0899DFE4; case 317u: goto L_0899E04C; case 318u: goto L_0899E054; case 319u: goto L_0899E05C; case 320u: goto L_0899E0AC; case 321u: goto L_0899E0B4; case 322u: goto L_0899E0BC; case 323u: goto L_0899E0C4; case 324u: goto L_0899E0D4; case 325u: goto L_0899E0E8; case 326u: goto L_0899E0F8; case 327u: goto L_0899E0FC; case 328u: goto L_0899E114; case 329u: goto L_0899E12C; case 330u: goto L_0899E134; case 331u: goto L_0899E16C; case 332u: goto L_0899E19C; case 333u: goto L_0899E1E4; case 334u: goto L_0899E268; case 335u: goto L_0899E28C; case 336u: goto L_0899E2C4; case 337u: goto L_0899E2CC; case 338u: goto L_0899E314; case 339u: goto L_0899E324; case 340u: goto L_0899E330; case 341u: goto L_0899E348; case 342u: goto L_0899E34C; case 343u: goto L_0899E358; case 344u: goto L_0899E364; case 345u: goto L_0899E37C; case 346u: goto L_0899E384; case 347u: goto L_0899E38C; case 348u: goto L_0899E394; case 349u: goto L_0899E3A0; case 350u: goto L_0899E3AC; case 351u: goto L_0899E3B8; case 352u: goto L_0899E3C0; case 353u: goto L_0899E3E4; case 354u: goto L_0899E3F0; case 355u: goto L_0899E400; case 356u: goto L_0899E404; case 357u: goto L_0899E408; case 358u: goto L_0899E450; case 359u: goto L_0899E454; case 360u: goto L_0899E470; case 361u: goto L_0899E480; case 362u: goto L_0899E49C; case 363u: goto L_0899E4AC; case 364u: goto L_0899E4C8; case 365u: goto L_0899E4D4; case 366u: goto L_0899E4E0; case 367u: goto L_0899E4F0; case 368u: goto L_0899E4F8; case 369u: goto L_0899E51C; case 370u: goto L_0899E52C; case 371u: goto L_0899E544; case 372u: goto L_0899E554; case 373u: goto L_0899E558; case 374u: goto L_0899E570; case 375u: goto L_0899E590; case 376u: goto L_0899E5A4; case 377u: goto L_0899E5B8; case 378u: goto L_0899E5C0; case 379u: goto L_0899E5E4; case 380u: goto L_0899E5EC; case 381u: goto L_0899E5F0; case 382u: goto L_0899E600; case 383u: goto L_0899E60C; case 384u: goto L_0899E618; case 385u: goto L_0899E624; case 386u: goto L_0899E64C; case 387u: goto L_0899E664; case 388u: goto L_0899E674; case 389u: goto L_0899E67C; case 390u: goto L_0899E684; case 391u: goto L_0899E688; case 392u: goto L_0899E69C; case 393u: goto L_0899E6B0; case 394u: goto L_0899E6C8; case 395u: goto L_0899E6D0; case 396u: goto L_0899E6D8; case 397u: goto L_0899E6E4; case 398u: goto L_0899E6F4; case 399u: goto L_0899E700; case 400u: goto L_0899E710; case 401u: goto L_0899E79C; case 402u: goto L_0899E7A8; case 403u: goto L_0899E81C; case 404u: goto L_0899E830; case 405u: goto L_0899E840; case 406u: goto L_0899E844; case 407u: goto L_0899E874; case 408u: goto L_0899E884; case 409u: goto L_0899E88C; case 410u: goto L_0899E894; case 411u: goto L_0899E898; case 412u: goto L_0899E8B8; case 413u: goto L_0899E8C8; case 414u: goto L_0899E8E0; case 415u: goto L_0899E8F0; case 416u: goto L_0899E8F8; case 417u: goto L_0899E900; case 418u: goto L_0899E904; case 419u: goto L_0899E928; case 420u: goto L_0899E940; case 421u: goto L_0899E95C; case 422u: goto L_0899E974; case 423u: goto L_0899E998; case 424u: goto L_0899E9A8; case 425u: goto L_0899E9D0; case 426u: goto L_0899E9D4; case 427u: goto L_0899E9EC; case 428u: goto L_0899E9F4; case 429u: goto L_0899E9FC; case 430u: goto L_0899EA04; case 431u: goto L_0899EA0C; case 432u: goto L_0899EA20; case 433u: goto L_0899EA2C; case 434u: goto L_0899EA40; case 435u: goto L_0899EA50; case 436u: goto L_0899EA5C; case 437u: goto L_0899EA68; case 438u: goto L_0899EA94; case 439u: goto L_0899EAB4; case 440u: goto L_0899EAB8; case 441u: goto L_0899EAD8; case 442u: goto L_0899EAE4; case 443u: goto L_0899EAF4; case 444u: goto L_0899EAF8; case 445u: goto L_0899EB10; case 446u: goto L_0899EB20; case 447u: goto L_0899EB38; case 448u: goto L_0899EB50; case 449u: goto L_0899EB58; case 450u: goto L_0899EB60; case 451u: goto L_0899EB6C; case 452u: goto L_0899EBB0; case 453u: goto L_0899EBB8; case 454u: goto L_0899EBE0; case 455u: goto L_0899EBE4; case 456u: goto L_0899EBF8; case 457u: goto L_0899EC00; case 458u: goto L_0899EC14; case 459u: goto L_0899EC18; case 460u: goto L_0899EC1C; case 461u: goto L_0899EC40; case 462u: goto L_0899EC54; case 463u: goto L_0899EC6C; case 464u: goto L_0899EC7C; case 465u: goto L_0899EC98; case 466u: goto L_0899ECA0; case 467u: goto L_0899ECA8; case 468u: goto L_0899ECC8; case 469u: goto L_0899ECD8; case 470u: goto L_0899ED18; case 471u: goto L_0899ED44; case 472u: goto L_0899ED74; case 473u: goto L_0899EDD0; case 474u: goto L_0899EDE4; case 475u: goto L_0899EDF8; case 476u: goto L_0899EE08; case 477u: goto L_0899EE14; case 478u: goto L_0899EE24; case 479u: goto L_0899EE38; case 480u: goto L_0899EE5C; case 481u: goto L_0899EE64; case 482u: goto L_0899EE78; case 483u: goto L_0899EE7C; case 484u: goto L_0899EE80; case 485u: goto L_0899EE9C; case 486u: goto L_0899EEA4; case 487u: goto L_0899EEBC; case 488u: goto L_0899EEC0; case 489u: goto L_0899EF14; case 490u: goto L_0899EF1C; case 491u: goto L_0899EF30; case 492u: goto L_0899EF34; case 493u: goto L_0899EF3C; case 494u: goto L_0899EF50; case 495u: goto L_0899EF5C; case 496u: goto L_0899EF64; case 497u: goto L_0899EF6C; case 498u: goto L_0899F01C; case 499u: goto L_0899F024; case 500u: goto L_0899F038; case 501u: goto L_0899F03C; case 502u: goto L_0899F040; case 503u: goto L_0899F070; case 504u: goto L_0899F078; case 505u: goto L_0899F080; case 506u: goto L_0899F088; case 507u: goto L_0899F0A0; case 508u: goto L_0899F0A8; case 509u: goto L_0899F0BC; case 510u: goto L_0899F0D4; case 511u: goto L_0899F0F4; case 512u: goto L_0899F0FC; case 513u: goto L_0899F114; case 514u: goto L_0899F118; case 515u: goto L_0899F13C; case 516u: goto L_0899F144; case 517u: goto L_0899F16C; case 518u: goto L_0899F178; case 519u: goto L_0899F194; case 520u: goto L_0899F19C; case 521u: goto L_0899F1BC; case 522u: goto L_0899F1C8; case 523u: goto L_0899F1F0; case 524u: goto L_0899F200; case 525u: goto L_0899F210; case 526u: goto L_0899F21C; case 527u: goto L_0899F22C; case 528u: goto L_0899F238; case 529u: goto L_0899F248; case 530u: goto L_0899F264; case 531u: goto L_0899F2B8; case 532u: goto L_0899F2C4; case 533u: goto L_0899F2D4; case 534u: goto L_0899F2E0; case 535u: goto L_0899F2F0; case 536u: goto L_0899F338; case 537u: goto L_0899F344; case 538u: goto L_0899F354; case 539u: goto L_0899F360; case 540u: goto L_0899F370; case 541u: goto L_0899F3D8; case 542u: goto L_0899F41C; case 543u: goto L_0899F424; case 544u: goto L_0899F434; case 545u: goto L_0899F498; case 546u: goto L_0899F500; case 547u: goto L_0899F514; case 548u: goto L_0899F56C; case 549u: goto L_0899F574; case 550u: goto L_0899F640; case 551u: goto L_0899F65C; case 552u: goto L_0899F688; case 553u: goto L_0899F690; case 554u: goto L_0899F698; case 555u: goto L_0899F6C4; case 556u: goto L_0899F6CC; case 557u: goto L_0899F6D4; case 558u: goto L_0899F764; case 559u: goto L_0899F780; case 560u: goto L_0899F7AC; case 561u: goto L_0899F7B4; case 562u: goto L_0899F86C; case 563u: goto L_0899F874; case 564u: goto L_0899F87C; case 565u: goto L_0899F884; case 566u: goto L_0899F88C; case 567u: goto L_0899F894; case 568u: goto L_0899F8A0; case 569u: goto L_0899F8C0; case 570u: goto L_0899F914; case 571u: goto L_0899F918; case 572u: goto L_0899F930; case 573u: goto L_0899F940; case 574u: goto L_0899F954; case 575u: goto L_0899F964; case 576u: goto L_0899F974; case 577u: goto L_0899F984; case 578u: goto L_0899F98C; case 579u: goto L_0899F994; case 580u: goto L_0899F99C; case 581u: goto L_0899F9A4; case 582u: goto L_0899F9EC; case 583u: goto L_0899FA54; case 584u: goto L_0899FA74; case 585u: goto L_0899FAFC; case 586u: goto L_0899FB04; case 587u: goto L_0899FB0C; case 588u: goto L_0899FB1C; case 589u: goto L_0899FB30; case 590u: goto L_0899FB40; case 591u: goto L_0899FB48; case 592u: goto L_0899FB58; case 593u: goto L_0899FB68; case 594u: goto L_0899FB70; case 595u: goto L_0899FB80; case 596u: goto L_0899FB90; case 597u: goto L_0899FB98; case 598u: goto L_0899FBA8; case 599u: goto L_0899FBB0; case 600u: goto L_0899FBC0; case 601u: goto L_0899FBC4; case 602u: goto L_0899FBF4; case 603u: goto L_0899FC04; case 604u: goto L_0899FC18; case 605u: goto L_0899FC3C; case 606u: goto L_0899FC54; case 607u: goto L_0899FC78; case 608u: goto L_0899FC8C; case 609u: goto L_0899FCB0; case 610u: goto L_0899FCCC; case 611u: goto L_0899FCEC; case 612u: goto L_0899FD18; case 613u: goto L_0899FD24; case 614u: goto L_0899FD34; case 615u: goto L_0899FD48; case 616u: goto L_0899FD54; case 617u: goto L_0899FD64; case 618u: goto L_0899FDA4; case 619u: goto L_0899FDAC; case 620u: goto L_0899FDC8; case 621u: goto L_0899FDF0; case 622u: goto L_0899FE10; case 623u: goto L_0899FE18; case 624u: goto L_0899FE20; case 625u: goto L_0899FE30; case 626u: goto L_0899FE40; case 627u: goto L_0899FE60; case 628u: goto L_0899FE68; case 629u: goto L_0899FE78; case 630u: goto L_0899FE88; case 631u: goto L_0899FEB4; case 632u: goto L_0899FEE8; case 633u: goto L_0899FEF8; case 634u: goto L_0899FF24; case 635u: goto L_0899FF64; case 636u: goto L_0899FF78; case 637u: goto L_0899FFB8; case 638u: goto L_0899FFCC; case 639u: goto L_0899FFD4; case 640u: goto L_0899FFE8; case 641u: goto L_0899FFEC; case 642u: goto L_0899FFF8; default: if (local_transfers == 0u) rt.unsupported(ctx.pc, 0u, "invalid internal function entry"); else ctx.pc = local_pc; return; } } L_0899C000: ctx.gpr[31] = (0x0899C008u); ctx.gpr[5] = (0u | 0u); if (rt.invoke_chained_direct<&recomp_unit_0135_entry, 135u, 91u, 0x08A20B34u>(ctx, &aot_mem) && ctx.pc == 0x0899C008u) goto L_0899C008; return; L_0899C008: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899C0CC; } goto L_0899C010; } L_0899C010: ctx.gpr[4] = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x0899C01Cu); ctx.gpr[5] = (0u | 0u); if (rt.invoke_chained_direct<&recomp_unit_0133_entry, 133u, 485u, 0x08A1B280u>(ctx, &aot_mem) && ctx.pc == 0x0899C01Cu) goto L_0899C01C; return; L_0899C01C: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899C0CC; } goto L_0899C024; } L_0899C024: ctx.gpr[4] = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x0899C030u); ctx.gpr[5] = (0u | 0u); if (rt.invoke_chained_direct<&recomp_unit_0133_entry, 133u, 486u, 0x08A1B294u>(ctx, &aot_mem) && ctx.pc == 0x0899C030u) goto L_0899C030; return; L_0899C030: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899C0CC; } goto L_0899C038; } L_0899C038: ctx.gpr[4] = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x0899C044u); ctx.gpr[5] = (0u | 0u); if (rt.invoke_chained_direct<&recomp_unit_0135_entry, 135u, 144u, 0x08A211D8u>(ctx, &aot_mem) && ctx.pc == 0x0899C044u) goto L_0899C044; return; L_0899C044: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899C0CC; } goto L_0899C04C; } L_0899C04C: ctx.gpr[4] = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x0899C058u); ctx.gpr[5] = (0u | 0u); if (rt.invoke_chained_direct<&recomp_unit_0135_entry, 135u, 195u, 0x08A217FCu>(ctx, &aot_mem) && ctx.pc == 0x0899C058u) goto L_0899C058; return; L_0899C058: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899C0CC; } goto L_0899C060; } L_0899C060: ctx.gpr[4] = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x0899C06Cu); ctx.gpr[5] = (0u | 0u); if (rt.invoke_chained_direct<&recomp_unit_0133_entry, 133u, 487u, 0x08A1B2A8u>(ctx, &aot_mem) && ctx.pc == 0x0899C06Cu) goto L_0899C06C; return; L_0899C06C: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899C0CC; } goto L_0899C074; } L_0899C074: ctx.fpr[12] = std::bit_cast(0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(80), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(84), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(88), std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (ctx.gpr[29] + static_cast(80)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[5] = (ctx.gpr[16] + static_cast(32)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } aot_mem.aot_store32(ctx.gpr[29] + static_cast(80), std::bit_cast(ctx.fpr[12])); ctx.gpr[5] = (16256u << 16u); ctx.fpr[13] = std::bit_cast(ctx.gpr[5]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(84), std::bit_cast(ctx.fpr[13])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(88), std::bit_cast(ctx.fpr[12])); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[5] = (ctx.gpr[16] + static_cast(16)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } aot_mem.aot_store32(ctx.gpr[29] + static_cast(80), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(84), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(88), std::bit_cast(ctx.fpr[13])); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[16] + static_cast(96)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } goto L_0899C0CC; L_0899C0CC: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0899C0E0; } goto L_0899C0D8; } L_0899C0D8: ctx.gpr[31] = (0x0899C0E0u); // nop if (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 351u, 0x08B657E8u>(ctx, &aot_mem) && ctx.pc == 0x0899C0E0u) goto L_0899C0E0; return; L_0899C0E0: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = ctx.gpr[4] != 0u; ctx.fpr[20] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(11248))); if (branch_taken) { goto L_0899C0F4; } goto L_0899C0EC; } L_0899C0EC: ctx.gpr[31] = (0x0899C0F4u); // nop if (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 351u, 0x08B657E8u>(ctx, &aot_mem) && ctx.pc == 0x0899C0F4u) goto L_0899C0F4; return; L_0899C0F4: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(5848))); ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast(11244))); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899C1C0; } goto L_0899C104; } L_0899C104: ctx.fpr[12] = std::bit_cast(0u); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[20]) || std::isnan(ctx.fpr[12])) && ctx.fpr[20] == ctx.fpr[12])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899C1C0; } goto L_0899C118; } L_0899C118: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(296))); ctx.set_fpu_condition((ctx.fpr[20] < ctx.fpr[12])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899C170; } goto L_0899C12C; } L_0899C12C: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); ctx.gpr[4] = (17279u << 16u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.gpr[4] = (17948u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 16384u); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[14]; ctx.fpr[12] = ctx.fpr[12] / ctx.fpr[14]; ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(296))); ctx.fpr[12] = ctx.fpr[15] / ctx.fpr[12]; ctx.set_fpu_condition((ctx.fpr[20] <= ctx.fpr[12])); // nop { const bool branch_taken = ctx.fpu_condition(); aot_mem.aot_store32(ctx.gpr[16] + static_cast(296), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899C1C0; } goto L_0899C168; } L_0899C168: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899C1C0; } goto L_0899C170; } L_0899C170: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(296))); ctx.set_fpu_condition((ctx.fpr[20] <= ctx.fpr[12])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899C1C0; } goto L_0899C184; } L_0899C184: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); ctx.gpr[4] = (17279u << 16u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.gpr[4] = (17948u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 16384u); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[14]; ctx.fpr[12] = ctx.fpr[12] / ctx.fpr[14]; ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(296))); { const float fs = ctx.fpr[15]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.set_fpu_condition((ctx.fpr[20] < ctx.fpr[12])); // nop { const bool branch_taken = !ctx.fpu_condition(); aot_mem.aot_store32(ctx.gpr[16] + static_cast(296), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899C1C0; } goto L_0899C1C0; } L_0899C1C0: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(128))); ctx.fpr[13] = std::bit_cast(0u); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[13])) && ctx.fpr[12] == ctx.fpr[13])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899C1E0; } goto L_0899C1D8; } L_0899C1D8: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(128))); aot_mem.aot_store32(ctx.gpr[16] + static_cast(296), std::bit_cast(ctx.fpr[12])); goto L_0899C1E0; L_0899C1E0: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(0)))))); ctx.gpr[4] = (static_cast(ctx.gpr[4]) < 48 ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0899C200; } goto L_0899C1F0; } L_0899C1F0: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(0)))))); ctx.gpr[4] = (static_cast(ctx.gpr[4]) < 57 ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0899C208; } goto L_0899C200; } L_0899C200: ctx.gpr[4] = (0u + static_cast(-1)); aot_mem.aot_store32(ctx.gpr[28] + static_cast(-7584), ctx.gpr[4]); goto L_0899C208; L_0899C208: ctx.gpr[4] = (ctx.gpr[16] + static_cast(32)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[16] + static_cast(400)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(16)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(16))); { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(20))); { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast(0x7FC00000u); else ctx.fpr[15] = fs * ft; } ctx.fpr[20] = ctx.fpr[12] + ctx.fpr[15]; ctx.fpr[20] = std::sqrt(ctx.fpr[20]); ctx.gpr[31] = (0x0899C244u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[14])); if (rt.invoke_chained_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem) && ctx.pc == 0x0899C244u) goto L_0899C244; return; L_0899C244: ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fpr[13] = std::bit_cast(0u); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13])); // nop { const bool branch_taken = !ctx.fpu_condition(); ctx.gpr[4] = (16585u << 16u); if (branch_taken) { goto L_0899C268; } goto L_0899C25C; } L_0899C25C: ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; goto L_0899C268; L_0899C268: ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(24))); ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_mem.aot_store32(ctx.gpr[16] + static_cast(280), std::bit_cast(ctx.fpr[12])); ctx.gpr[31] = (0x0899C27Cu); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[14])); if (rt.invoke_chained_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem) && ctx.pc == 0x0899C27Cu) goto L_0899C27C; return; L_0899C27C: ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fpr[12] = std::bit_cast(0u); ctx.set_fpu_condition((ctx.fpr[20] < ctx.fpr[12])); // nop { const bool branch_taken = !ctx.fpu_condition(); ctx.gpr[4] = (16585u << 16u); if (branch_taken) { goto L_0899C2A0; } goto L_0899C294; } L_0899C294: ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[20] = ctx.fpr[20] + ctx.fpr[12]; goto L_0899C2A0; L_0899C2A0: ctx.gpr[4] = (2236u << 16u); aot_mem.aot_store32(ctx.gpr[16] + static_cast(284), std::bit_cast(ctx.fpr[20])); ctx.gpr[4] = (ctx.gpr[4] + static_cast(32304)); ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast(2092))); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0899C2D8; } goto L_0899C2B8; } L_0899C2B8: ctx.gpr[5] = (ctx.gpr[16] + static_cast(32)); ctx.gpr[6] = (ctx.gpr[16] + static_cast(400)); ctx.gpr[7] = (ctx.gpr[16] + static_cast(96)); ctx.gpr[8] = (ctx.gpr[16] + static_cast(284)); ctx.gpr[9] = (ctx.gpr[16] + static_cast(280)); ctx.gpr[10] = (ctx.gpr[16] + static_cast(296)); ctx.gpr[31] = (0x0899C2D8u); ctx.gpr[4] = (ctx.gpr[16] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 201u, 0x08999940u>(ctx, &aot_mem) && ctx.pc == 0x0899C2D8u) goto L_0899C2D8; return; L_0899C2D8: aot_mem.aot_store8(ctx.gpr[16] + static_cast(132), static_cast(0u)); aot_mem.aot_store8(ctx.gpr[16] + static_cast(133), static_cast(0u)); aot_mem.aot_store8(ctx.gpr[16] + static_cast(134), static_cast(0u)); ctx.gpr[4] = (ctx.gpr[16] + static_cast(32)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[16] + static_cast(80)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[4] = (2236u << 16u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(32304)); ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast(80))); ctx.gpr[5] = (ctx.gpr[5] << 5u); ctx.gpr[6] = (0u - ctx.gpr[5]); ctx.gpr[5] = (ctx.gpr[5] << 2u); ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[5]); ctx.gpr[5] = (ctx.gpr[5] << 2u); ctx.gpr[5] = (ctx.gpr[6] + ctx.gpr[5]); ctx.gpr[4] = (ctx.gpr[4] + static_cast(112)); ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]); { const bool branch_taken = ctx.gpr[4] != ctx.gpr[16]; // nop if (branch_taken) { goto L_0899C5F8; } goto L_0899C328; } L_0899C328: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(0)))))); ctx.gpr[17] = (0u | 0u); ctx.gpr[5] = (0u | 18u); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[5]; ctx.gpr[18] = (0u | 0u); if (branch_taken) { goto L_0899C36C; } goto L_0899C33C; } L_0899C33C: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(0)))))); ctx.gpr[5] = (0u | 16u); if (ctx.gpr[4] == ctx.gpr[5]) { ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(112))); goto L_0899C370; } goto L_0899C34C; L_0899C34C: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(0)))))); ctx.gpr[5] = (0u | 22u); if (ctx.gpr[4] == ctx.gpr[5]) { ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(112))); goto L_0899C370; } goto L_0899C35C; L_0899C35C: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(0)))))); ctx.gpr[5] = (0u | 3u); { const bool branch_taken = ctx.gpr[4] != ctx.gpr[5]; // nop if (branch_taken) { goto L_0899C564; } goto L_0899C36C; } L_0899C36C: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(112))); goto L_0899C370; L_0899C370: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(72))); ctx.gpr[4] = (ctx.gpr[4] & 14u); ctx.gpr[4] = (ctx.gpr[4] ^ 4u); ctx.gpr[4] = (ctx.gpr[4] < static_cast(1) ? 1u : 0u); ctx.gpr[4] = (ctx.gpr[4] & 255u); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899C564; } goto L_0899C38C; } L_0899C38C: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(112))); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899C410; } goto L_0899C398; } L_0899C398: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(112))); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(72))); ctx.gpr[4] = (ctx.gpr[4] & 14u); ctx.gpr[4] = (ctx.gpr[4] ^ 4u); ctx.gpr[4] = (ctx.gpr[4] < static_cast(1) ? 1u : 0u); ctx.gpr[4] = (ctx.gpr[4] & 255u); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899C410; } goto L_0899C3B8; } L_0899C3B8: ctx.gpr[31] = (0x0899C3C0u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(112))); if (rt.invoke_chained_direct<&recomp_unit_0191_entry, 191u, 504u, 0x08B01E00u>(ctx, &aot_mem) && ctx.pc == 0x0899C3C0u) goto L_0899C3C0; return; L_0899C3C0: ctx.gpr[4] = (0u | 3u); { const bool branch_taken = ctx.gpr[2] == ctx.gpr[4]; // nop if (branch_taken) { goto L_0899C3E0; } goto L_0899C3CC; } L_0899C3CC: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(112))); ctx.gpr[5] = (0u + static_cast(-984)); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(86)))))); { const bool branch_taken = ctx.gpr[4] != ctx.gpr[5]; // nop if (branch_taken) { goto L_0899C3E4; } goto L_0899C3E0; } L_0899C3E0: ctx.gpr[17] = (0u | 1u); goto L_0899C3E4; L_0899C3E4: ctx.gpr[31] = (0x0899C3ECu); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(112))); if (rt.invoke_chained_direct<&recomp_unit_0191_entry, 191u, 504u, 0x08B01E00u>(ctx, &aot_mem) && ctx.pc == 0x0899C3ECu) goto L_0899C3EC; return; L_0899C3EC: ctx.gpr[4] = (0u | 5u); { const bool branch_taken = ctx.gpr[2] != ctx.gpr[4]; // nop if (branch_taken) { goto L_0899C410; } goto L_0899C3F8; } L_0899C3F8: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(112))); ctx.gpr[5] = (0u | 198u); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(86)))))); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[5]; // nop if (branch_taken) { goto L_0899C410; } goto L_0899C40C; } L_0899C40C: ctx.gpr[18] = (0u | 1u); goto L_0899C410; L_0899C410: ctx.gpr[31] = (0x0899C418u); ctx.gpr[4] = (0u | 0u); if (rt.invoke_chained_direct<&recomp_unit_0097_entry, 97u, 828u, 0x0898B428u>(ctx, &aot_mem) && ctx.pc == 0x0899C418u) goto L_0899C418; return; L_0899C418: ctx.gpr[31] = (0x0899C420u); ctx.gpr[4] = (ctx.gpr[2] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0098_entry, 98u, 252u, 0x0898CB7Cu>(ctx, &aot_mem) && ctx.pc == 0x0899C420u) goto L_0899C420; return; L_0899C420: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0899C454; } goto L_0899C428; } L_0899C428: ctx.gpr[31] = (0x0899C430u); ctx.gpr[4] = (ctx.gpr[16] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0104_entry, 104u, 404u, 0x089A7200u>(ctx, &aot_mem) && ctx.pc == 0x0899C430u) goto L_0899C430; return; L_0899C430: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(116))); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899C44C; } goto L_0899C43C; } L_0899C43C: ctx.gpr[5] = (2236u << 16u); ctx.gpr[4] = (0u | 1u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(32304)); aot_mem.aot_store8(ctx.gpr[5] + static_cast(2068), static_cast(ctx.gpr[4])); goto L_0899C44C; L_0899C44C: { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[16] + static_cast(116), 0u); if (branch_taken) { goto L_0899C564; } goto L_0899C454; } L_0899C454: ctx.gpr[4] = (ctx.gpr[17] | ctx.gpr[18]); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899C48C; } goto L_0899C460; } L_0899C460: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(116))); ctx.gpr[5] = (0u | 3u); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[5]; // nop if (branch_taken) { goto L_0899C480; } goto L_0899C470; } L_0899C470: ctx.gpr[5] = (2236u << 16u); ctx.gpr[4] = (0u | 1u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(32304)); aot_mem.aot_store8(ctx.gpr[5] + static_cast(2068), static_cast(ctx.gpr[4])); goto L_0899C480; L_0899C480: ctx.gpr[4] = (0u | 3u); { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[16] + static_cast(116), ctx.gpr[4]); if (branch_taken) { goto L_0899C564; } goto L_0899C48C; } L_0899C48C: ctx.gpr[31] = (0x0899C494u); ctx.gpr[4] = (0u | 0u); if (rt.invoke_chained_direct<&recomp_unit_0097_entry, 97u, 828u, 0x0898B428u>(ctx, &aot_mem) && ctx.pc == 0x0899C494u) goto L_0899C494; return; L_0899C494: ctx.gpr[31] = (0x0899C49Cu); ctx.gpr[4] = (ctx.gpr[2] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0098_entry, 98u, 148u, 0x0898C6D0u>(ctx, &aot_mem) && ctx.pc == 0x0899C49Cu) goto L_0899C49C; return; L_0899C49C: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0899C4E4; } goto L_0899C4A4; } L_0899C4A4: { const bool branch_taken = ctx.gpr[17] != 0u; // nop if (branch_taken) { goto L_0899C4E4; } goto L_0899C4AC; } L_0899C4AC: ctx.gpr[4] = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x0899C4B8u); ctx.gpr[5] = (0u | 0u); if (rt.invoke_chained_direct<&recomp_unit_0104_entry, 104u, 455u, 0x089A788Cu>(ctx, &aot_mem) && ctx.pc == 0x0899C4B8u) goto L_0899C4B8; return; L_0899C4B8: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(116))); ctx.gpr[5] = (0u | 1u); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[5]; // nop if (branch_taken) { goto L_0899C4D8; } goto L_0899C4C8; } L_0899C4C8: ctx.gpr[5] = (2236u << 16u); ctx.gpr[4] = (0u | 1u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(32304)); aot_mem.aot_store8(ctx.gpr[5] + static_cast(2068), static_cast(ctx.gpr[4])); goto L_0899C4D8; L_0899C4D8: ctx.gpr[4] = (0u | 1u); { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[16] + static_cast(116), ctx.gpr[4]); if (branch_taken) { goto L_0899C564; } goto L_0899C4E4; } L_0899C4E4: ctx.gpr[31] = (0x0899C4ECu); ctx.gpr[4] = (0u | 0u); if (rt.invoke_chained_direct<&recomp_unit_0097_entry, 97u, 828u, 0x0898B428u>(ctx, &aot_mem) && ctx.pc == 0x0899C4ECu) goto L_0899C4EC; return; L_0899C4EC: ctx.gpr[31] = (0x0899C4F4u); ctx.gpr[4] = (ctx.gpr[2] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0098_entry, 98u, 200u, 0x0898C924u>(ctx, &aot_mem) && ctx.pc == 0x0899C4F4u) goto L_0899C4F4; return; L_0899C4F4: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0899C53C; } goto L_0899C4FC; } L_0899C4FC: { const bool branch_taken = ctx.gpr[17] != 0u; // nop if (branch_taken) { goto L_0899C53C; } goto L_0899C504; } L_0899C504: ctx.gpr[4] = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x0899C510u); ctx.gpr[5] = (0u | 1u); if (rt.invoke_chained_direct<&recomp_unit_0104_entry, 104u, 455u, 0x089A788Cu>(ctx, &aot_mem) && ctx.pc == 0x0899C510u) goto L_0899C510; return; L_0899C510: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(116))); ctx.gpr[5] = (0u | 2u); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[5]; // nop if (branch_taken) { goto L_0899C530; } goto L_0899C520; } L_0899C520: ctx.gpr[5] = (2236u << 16u); ctx.gpr[4] = (0u | 1u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(32304)); aot_mem.aot_store8(ctx.gpr[5] + static_cast(2068), static_cast(ctx.gpr[4])); goto L_0899C530; L_0899C530: ctx.gpr[4] = (0u | 2u); { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[16] + static_cast(116), ctx.gpr[4]); if (branch_taken) { goto L_0899C564; } goto L_0899C53C; } L_0899C53C: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(116))); ctx.gpr[5] = (0u | 3u); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[5]; // nop if (branch_taken) { goto L_0899C55C; } goto L_0899C54C; } L_0899C54C: ctx.gpr[5] = (2236u << 16u); ctx.gpr[4] = (0u | 1u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(32304)); aot_mem.aot_store8(ctx.gpr[5] + static_cast(2068), static_cast(ctx.gpr[4])); goto L_0899C55C; L_0899C55C: ctx.gpr[4] = (0u | 3u); aot_mem.aot_store32(ctx.gpr[16] + static_cast(116), ctx.gpr[4]); goto L_0899C564; L_0899C564: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(0)))))); ctx.gpr[5] = (0u | 4u); { const bool branch_taken = ctx.gpr[4] != ctx.gpr[5]; // nop if (branch_taken) { goto L_0899C5F8; } goto L_0899C574; } L_0899C574: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(112))); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(72))); ctx.gpr[4] = (ctx.gpr[4] & 14u); ctx.gpr[4] = (ctx.gpr[4] ^ 6u); ctx.gpr[4] = (ctx.gpr[4] < static_cast(1) ? 1u : 0u); ctx.gpr[4] = (ctx.gpr[4] & 255u); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899C5F8; } goto L_0899C594; } L_0899C594: ctx.gpr[31] = (0x0899C59Cu); ctx.gpr[4] = (0u | 0u); if (rt.invoke_chained_direct<&recomp_unit_0097_entry, 97u, 828u, 0x0898B428u>(ctx, &aot_mem) && ctx.pc == 0x0899C59Cu) goto L_0899C59C; return; L_0899C59C: ctx.gpr[31] = (0x0899C5A4u); ctx.gpr[4] = (ctx.gpr[2] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0098_entry, 98u, 309u, 0x0898CE14u>(ctx, &aot_mem) && ctx.pc == 0x0899C5A4u) goto L_0899C5A4; return; L_0899C5A4: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0899C5F0; } goto L_0899C5AC; } L_0899C5AC: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(112))); ctx.gpr[5] = (0u | 17u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(2228)); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[5]; // nop if (branch_taken) { goto L_0899C5F0; } goto L_0899C5C4; } L_0899C5C4: ctx.gpr[31] = (0x0899C5CCu); ctx.gpr[4] = (ctx.gpr[16] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0104_entry, 104u, 404u, 0x089A7200u>(ctx, &aot_mem) && ctx.pc == 0x0899C5CCu) goto L_0899C5CC; return; L_0899C5CC: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(116))); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899C5E8; } goto L_0899C5D8; } L_0899C5D8: ctx.gpr[5] = (2236u << 16u); ctx.gpr[4] = (0u | 1u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(32304)); aot_mem.aot_store8(ctx.gpr[5] + static_cast(2068), static_cast(ctx.gpr[4])); goto L_0899C5E8; L_0899C5E8: { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[16] + static_cast(116), 0u); if (branch_taken) { goto L_0899C5F8; } goto L_0899C5F0; } L_0899C5F0: ctx.gpr[4] = (0u | 3u); aot_mem.aot_store32(ctx.gpr[16] + static_cast(116), ctx.gpr[4]); goto L_0899C5F8; L_0899C5F8: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(0)))))); ctx.gpr[5] = (0u | 7u); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[5]; // nop if (branch_taken) { goto L_0899C678; } goto L_0899C608; } L_0899C608: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(0)))))); ctx.gpr[5] = (0u | 8u); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[5]; // nop if (branch_taken) { goto L_0899C678; } goto L_0899C618; } L_0899C618: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(0)))))); ctx.gpr[5] = (0u | 34u); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[5]; // nop if (branch_taken) { goto L_0899C678; } goto L_0899C628; } L_0899C628: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(0)))))); ctx.gpr[5] = (0u | 16u); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[5]; // nop if (branch_taken) { goto L_0899C678; } goto L_0899C638; } L_0899C638: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(0)))))); ctx.gpr[5] = (0u | 45u); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[5]; // nop if (branch_taken) { goto L_0899C678; } goto L_0899C648; } L_0899C648: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(0)))))); ctx.gpr[5] = (0u | 46u); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[5]; // nop if (branch_taken) { goto L_0899C678; } goto L_0899C658; } L_0899C658: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(0)))))); ctx.gpr[5] = (0u | 47u); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[5]; // nop if (branch_taken) { goto L_0899C678; } goto L_0899C668; } L_0899C668: ctx.gpr[31] = (0x0899C670u); ctx.gpr[4] = (ctx.gpr[16] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 119u, 0x089990E0u>(ctx, &aot_mem) && ctx.pc == 0x0899C670u) goto L_0899C670; return; L_0899C670: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0899C680; } goto L_0899C678; } L_0899C678: ctx.gpr[31] = (0x0899C680u); ctx.gpr[4] = (ctx.gpr[16] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 164u, 0x08999548u>(ctx, &aot_mem) && ctx.pc == 0x0899C680u) goto L_0899C680; return; L_0899C680: ctx.fpr[20] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(112))); ctx.fpr[22] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(116))); ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(120))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(124))); ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(128))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(132))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(144)); local_pc = jump_target; if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0899C6A0: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-1264)); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(6784))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1224), ctx.gpr[16]); ctx.gpr[16] = (ctx.gpr[4] | 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1208), std::bit_cast(ctx.fpr[20])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1212), std::bit_cast(ctx.fpr[22])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1216), std::bit_cast(ctx.fpr[24])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1220), std::bit_cast(ctx.fpr[26])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1228), ctx.gpr[17]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1232), ctx.gpr[18]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1236), ctx.gpr[19]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1240), ctx.gpr[20]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1244), ctx.gpr[21]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1248), ctx.gpr[22]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1252), ctx.gpr[23]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1256), ctx.gpr[30]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1260), ctx.gpr[31]); { const bool branch_taken = ctx.gpr[6] != 0u; ctx.gpr[17] = (ctx.gpr[5] | 0u); if (branch_taken) { goto L_0899C704; } goto L_0899C6EC; } L_0899C6EC: ctx.gpr[4] = (0u | 1u); ctx.fpr[12] = std::bit_cast(0u); aot_mem.aot_store32(ctx.gpr[28] + static_cast(6784), ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[28] + static_cast(6800), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[28] + static_cast(6804), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[28] + static_cast(6808), std::bit_cast(ctx.fpr[12])); goto L_0899C704; L_0899C704: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(112))); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(72))); ctx.gpr[4] = (ctx.gpr[4] & 14u); ctx.gpr[4] = (ctx.gpr[4] ^ 6u); ctx.gpr[4] = (ctx.gpr[4] < static_cast(1) ? 1u : 0u); ctx.gpr[4] = (ctx.gpr[4] & 255u); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899C794; } goto L_0899C724; } L_0899C724: ctx.gpr[31] = (0x0899C72Cu); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(112))); if (rt.invoke_chained_direct<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem) && ctx.pc == 0x0899C72Cu) goto L_0899C72C; return; L_0899C72C: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0899C78C; } goto L_0899C734; } L_0899C734: ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(112))); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[18] + static_cast(1929)))))); ctx.gpr[5] = (ctx.gpr[4] << 5u); ctx.gpr[4] = (ctx.gpr[4] << 2u); ctx.gpr[4] = (ctx.gpr[5] - ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[18] + ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[4] + static_cast(1396)); ctx.gpr[31] = (0x0899C758u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(4))); if (rt.invoke_chained_direct<&recomp_unit_0198_entry, 198u, 733u, 0x08B1FD70u>(ctx, &aot_mem) && ctx.pc == 0x0899C758u) goto L_0899C758; return; L_0899C758: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[18] + static_cast(1929)))))); ctx.gpr[19] = (ctx.gpr[2] | 0u); ctx.gpr[5] = (ctx.gpr[4] << 5u); ctx.gpr[4] = (ctx.gpr[4] << 2u); ctx.gpr[4] = (ctx.gpr[5] - ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[18] + ctx.gpr[4]); ctx.gpr[20] = (0u | 0u); ctx.gpr[31] = (0x0899C77Cu); ctx.gpr[4] = (ctx.gpr[4] + static_cast(1396)); if (rt.invoke_chained_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem) && ctx.pc == 0x0899C77Cu) goto L_0899C77C; return; L_0899C77C: { const bool branch_taken = ctx.gpr[2] != 0u; // nop if (branch_taken) { goto L_0899C79C; } goto L_0899C784; } L_0899C784: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899C7A0; } goto L_0899C78C; } L_0899C78C: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899DFA4; } goto L_0899C794; } L_0899C794: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899DFA4; } goto L_0899C79C; } L_0899C79C: ctx.gpr[20] = (0u | 2u); goto L_0899C7A0; L_0899C7A0: ctx.gpr[31] = (0x0899C7A8u); // nop if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 47u, 0x08960424u>(ctx, &aot_mem) && ctx.pc == 0x0899C7A8u) goto L_0899C7A8; return; L_0899C7A8: if (ctx.gpr[18] != ctx.gpr[2]) { ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[18] + static_cast(1929)))))); goto L_0899C800; } goto L_0899C7B0; L_0899C7B0: ctx.gpr[31] = (0x0899C7B8u); // nop if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 47u, 0x08960424u>(ctx, &aot_mem) && ctx.pc == 0x0899C7B8u) goto L_0899C7B8; return; L_0899C7B8: ctx.gpr[4] = (ctx.gpr[2] | 0u); ctx.gpr[5] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[4] + static_cast(3262)))))); ctx.gpr[5] = (ctx.gpr[5] & 8u); { const bool branch_taken = ctx.gpr[5] == 0u; ctx.gpr[21] = (0u | 0u); if (branch_taken) { goto L_0899C7EC; } goto L_0899C7CC; } L_0899C7CC: ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(1152))); if (ctx.gpr[5] == 0u) { ctx.gpr[4] = (ctx.gpr[21] & 255u); goto L_0899C7F0; } goto L_0899C7D8; L_0899C7D8: ctx.gpr[31] = (0x0899C7E0u); // nop if (rt.invoke_chained_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem) && ctx.pc == 0x0899C7E0u) goto L_0899C7E0; return; L_0899C7E0: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.gpr[4] = (ctx.gpr[21] & 255u); if (branch_taken) { goto L_0899C7F0; } goto L_0899C7E8; } L_0899C7E8: ctx.gpr[21] = (0u | 1u); goto L_0899C7EC; L_0899C7EC: ctx.gpr[4] = (ctx.gpr[21] & 255u); goto L_0899C7F0; L_0899C7F0: if (ctx.gpr[4] == 0u) { ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[18] + static_cast(1929)))))); goto L_0899C800; } goto L_0899C7F8; L_0899C7F8: ctx.gpr[20] = (0u | 1u); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[18] + static_cast(1929)))))); goto L_0899C800; L_0899C800: ctx.gpr[5] = (ctx.gpr[4] << 5u); ctx.gpr[4] = (ctx.gpr[4] << 2u); ctx.gpr[4] = (ctx.gpr[5] - ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[18] + ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[4] + static_cast(1396)); ctx.gpr[5] = (17036u << 16u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(4))); ctx.fpr[12] = std::bit_cast(ctx.gpr[5]); ctx.gpr[5] = (0u | 29u); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[5]; // nop if (branch_taken) { goto L_0899C854; } goto L_0899C82C; } L_0899C82C: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[18] + static_cast(1929)))))); ctx.gpr[5] = (ctx.gpr[4] << 5u); ctx.gpr[4] = (ctx.gpr[4] << 2u); ctx.gpr[4] = (ctx.gpr[5] - ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[18] + ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[4] + static_cast(1396)); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(4))); ctx.gpr[5] = (0u | 28u); { const bool branch_taken = ctx.gpr[4] != ctx.gpr[5]; // nop if (branch_taken) { goto L_0899C858; } goto L_0899C854; } L_0899C854: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13696))); goto L_0899C858; L_0899C858: ctx.gpr[4] = (2236u << 16u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(32304)); ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast(2092))); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0899C8DC; } goto L_0899C86C; } L_0899C86C: ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[16] + static_cast(163))); if (ctx.gpr[4] == 0u) { ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13688))); goto L_0899C880; } goto L_0899C878; L_0899C878: { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[16] + static_cast(296), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899C8DC; } goto L_0899C880; } L_0899C880: ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(296))); { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } ctx.fpr[15] = ctx.fpr[15] + ctx.fpr[13]; ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[15])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899C8B0; } goto L_0899C8A0; } L_0899C8A0: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(296))); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[16] + static_cast(296), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899C8DC; } goto L_0899C8B0; } L_0899C8B0: ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(296))); ctx.fpr[14] = ctx.fpr[14] - ctx.fpr[13]; ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[14])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899C8D8; } goto L_0899C8C8; } L_0899C8C8: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(296))); ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[13]; { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[16] + static_cast(296), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899C8DC; } goto L_0899C8D8; } L_0899C8D8: aot_mem.aot_store32(ctx.gpr[16] + static_cast(296), std::bit_cast(ctx.fpr[12])); goto L_0899C8DC; L_0899C8DC: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast(4))); if (ctx.gpr[4] != 0u) { ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(296))); goto L_0899CA04; } goto L_0899C8E8; L_0899C8E8: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(6816))); if (ctx.gpr[4] != 0u) { ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(6820))); goto L_0899C908; } goto L_0899C8F4; L_0899C8F4: ctx.gpr[4] = (0u | 1u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13684))); aot_mem.aot_store32(ctx.gpr[28] + static_cast(6816), ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[28] + static_cast(6824), std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(6820))); goto L_0899C908; L_0899C908: { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0899C920; } goto L_0899C910; } L_0899C910: ctx.gpr[4] = (0u | 1u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13680))); aot_mem.aot_store32(ctx.gpr[28] + static_cast(6820), ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[28] + static_cast(6828), std::bit_cast(ctx.fpr[12])); goto L_0899C920; L_0899C920: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13684))); ctx.fpr[14] = std::bit_cast(0u); ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[16] + static_cast(163))); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13680))); if (branch_taken) { goto L_0899C948; } goto L_0899C934; } L_0899C934: aot_mem.aot_store32(ctx.gpr[28] + static_cast(6824), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(0u); aot_mem.aot_store32(ctx.gpr[28] + static_cast(6828), std::bit_cast(ctx.fpr[13])); { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[28] + static_cast(-13496), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899C9D0; } goto L_0899C948; } L_0899C948: ctx.gpr[4] = (2236u << 16u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(32304)); ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast(2092))); { const bool branch_taken = ctx.gpr[4] != 0u; ctx.gpr[4] = (16457u << 16u); if (branch_taken) { goto L_0899C9D4; } goto L_0899C95C; } L_0899C95C: ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13676))); ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); ctx.gpr[4] = (std::bit_cast(ctx.fpr[15])); ctx.gpr[5] = (std::bit_cast(ctx.fpr[16])); ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]); ctx.set_vfpu_scalar_bits_ct<32u>(ctx.gpr[5]); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::log2(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::exp2(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<32u>()); ctx.fpr[15] = std::bit_cast(ctx.gpr[4]); ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(6824))); { const float fs = ctx.fpr[16]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[16] = std::bit_cast(0x7FC00000u); else ctx.fpr[16] = fs * ft; } ctx.gpr[4] = (16256u << 16u); ctx.fpr[17] = std::bit_cast(ctx.gpr[4]); ctx.fpr[17] = ctx.fpr[17] - ctx.fpr[15]; { const float fs = ctx.fpr[17]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.fpr[12] = ctx.fpr[16] + ctx.fpr[12]; aot_mem.aot_store32(ctx.gpr[28] + static_cast(6824), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(6828))); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } { const float fs = ctx.fpr[17]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; aot_mem.aot_store32(ctx.gpr[28] + static_cast(6828), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13496))); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } { const float fs = ctx.fpr[17]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast(0x7FC00000u); else ctx.fpr[14] = fs * ft; } ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[14]; aot_mem.aot_store32(ctx.gpr[28] + static_cast(-13496), std::bit_cast(ctx.fpr[12])); goto L_0899C9D0; L_0899C9D0: ctx.gpr[4] = (16457u << 16u); goto L_0899C9D4; L_0899C9D4: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(6824))); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(6828))); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (17204u << 16u); { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } ctx.fpr[20] = std::bit_cast(ctx.gpr[4]); ctx.fpr[22] = ctx.fpr[22] / ctx.fpr[20]; { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.fpr[20] = ctx.fpr[12] / ctx.fpr[20]; { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899CB40; } goto L_0899CA04; } L_0899CA04: ctx.gpr[4] = (16128u << 16u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.gpr[4] = (16457u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (17204u << 16u); ctx.fpr[20] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.fpr[20] = ctx.fpr[12] / ctx.fpr[20]; ctx.gpr[4] = (2236u << 16u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(32304)); ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(2220))); ctx.gpr[4] = (16384u << 16u); ctx.fpr[13] = ctx.fpr[15] - ctx.fpr[13]; ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } ctx.gpr[31] = (0x0899CA50u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[20])); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 114u, 0x08998FECu>(ctx, &aot_mem) && ctx.pc == 0x0899CA50u) goto L_0899CA50; return; L_0899CA50: { const float fs = ctx.fpr[22]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } ctx.fpr[16] = std::bit_cast(0u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[22])); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[16])); // nop if (ctx.fpu_condition()) { ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[22]) ^ 0x80000000u); goto L_0899CA6C; } goto L_0899CA6C; L_0899CA6C: ctx.gpr[4] = (15897u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 39322u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899CA98; } goto L_0899CA88; } L_0899CA88: ctx.gpr[31] = (0x0899CA90u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[22])); if (rt.invoke_chained_direct<&recomp_unit_0215_entry, 215u, 36u, 0x08B6033Cu>(ctx, &aot_mem) && ctx.pc == 0x0899CA90u) goto L_0899CA90; return; L_0899CA90: { const bool branch_taken = 0u == 0u; ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); if (branch_taken) { goto L_0899CAA4; } goto L_0899CA98; } L_0899CA98: ctx.gpr[31] = (0x0899CAA0u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[22])); if (rt.invoke_chained_direct<&recomp_unit_0088_entry, 88u, 26u, 0x089644F8u>(ctx, &aot_mem) && ctx.pc == 0x0899CAA0u) goto L_0899CAA0; return; L_0899CAA0: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0899CAA4; L_0899CAA4: ctx.gpr[4] = (2236u << 16u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(32304)); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(2224))); ctx.gpr[4] = (16128u << 16u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[13] = ctx.fpr[13] - ctx.fpr[12]; ctx.gpr[4] = (16384u << 16u); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[20])); ctx.gpr[31] = (0x0899CAD0u); { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 114u, 0x08998FECu>(ctx, &aot_mem) && ctx.pc == 0x0899CAD0u) goto L_0899CAD0; return; L_0899CAD0: ctx.gpr[4] = (16256u << 16u); ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-16972))); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] / ctx.fpr[15]; ctx.fpr[16] = std::bit_cast(0u); { const float fs = ctx.fpr[24]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast(0x7FC00000u); else ctx.fpr[20] = fs * ft; } { const float fs = ctx.fpr[20]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast(0x7FC00000u); else ctx.fpr[20] = fs * ft; } ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[20])); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[16])); // nop if (ctx.fpu_condition()) { ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[20]) ^ 0x80000000u); goto L_0899CB00; } goto L_0899CB00; L_0899CB00: ctx.gpr[4] = (15897u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 39322u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899CB2C; } goto L_0899CB1C; } L_0899CB1C: ctx.gpr[31] = (0x0899CB24u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[20])); if (rt.invoke_chained_direct<&recomp_unit_0215_entry, 215u, 36u, 0x08B6033Cu>(ctx, &aot_mem) && ctx.pc == 0x0899CB24u) goto L_0899CB24; return; L_0899CB24: { const bool branch_taken = 0u == 0u; ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); if (branch_taken) { goto L_0899CB38; } goto L_0899CB2C; } L_0899CB2C: ctx.gpr[31] = (0x0899CB34u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[20])); if (rt.invoke_chained_direct<&recomp_unit_0088_entry, 88u, 26u, 0x089644F8u>(ctx, &aot_mem) && ctx.pc == 0x0899CB34u) goto L_0899CB34; return; L_0899CB34: ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0899CB38; L_0899CB38: ctx.fpr[12] = std::bit_cast(0u); aot_mem.aot_store32(ctx.gpr[28] + static_cast(-13496), std::bit_cast(ctx.fpr[12])); goto L_0899CB40; L_0899CB40: ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[16] + static_cast(163))); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899CBA8; } goto L_0899CB4C; } L_0899CB4C: aot_mem.aot_store8(ctx.gpr[16] + static_cast(164), static_cast(0u)); ctx.fpr[12] = std::bit_cast(0u); ctx.gpr[4] = (0u | 1u); aot_mem.aot_store8(ctx.gpr[16] + static_cast(161), static_cast(ctx.gpr[4])); ctx.gpr[4] = (ctx.gpr[20] << 5u); ctx.gpr[5] = (ctx.gpr[20] << 2u); ctx.gpr[4] = (ctx.gpr[4] - ctx.gpr[5]); ctx.gpr[5] = (2234u << 16u); aot_mem.aot_store32(ctx.gpr[16] + static_cast(292), std::bit_cast(ctx.fpr[12])); ctx.gpr[5] = (ctx.gpr[5] + static_cast(5240)); aot_mem.aot_store32(ctx.gpr[16] + static_cast(304), std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(12))); aot_mem.aot_store32(ctx.gpr[16] + static_cast(120), std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(2076))); { const bool branch_taken = ctx.gpr[4] != 0u; ctx.gpr[4] = (16329u << 16u); if (branch_taken) { goto L_0899CBA8; } goto L_0899CB90; } L_0899CB90: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[18] + static_cast(2256))); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[13]; ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[22]; aot_mem.aot_store32(ctx.gpr[16] + static_cast(124), std::bit_cast(ctx.fpr[12])); goto L_0899CBA8; L_0899CBA8: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[21] = (ctx.gpr[29] + static_cast(64)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.fpr[24] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(72))); ctx.fpr[12] = std::bit_cast(0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(80), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(84), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(88), std::bit_cast(ctx.fpr[12])); ctx.gpr[22] = (ctx.gpr[29] + static_cast(32)); ctx.gpr[4] = (ctx.gpr[16] | 0u); ctx.gpr[5] = (ctx.gpr[22] | 0u); ctx.gpr[31] = (0x0899CBDCu); ctx.gpr[6] = (ctx.gpr[18] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 137u, 0x089991D4u>(ctx, &aot_mem) && ctx.pc == 0x0899CBDCu) goto L_0899CBDC; return; L_0899CBDC: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[16] + static_cast(64))); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899CC04; } goto L_0899CBF0; } L_0899CBF0: ctx.gpr[4] = (ctx.gpr[29] + static_cast(64)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[16] + static_cast(48)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } aot_mem.aot_store8(ctx.gpr[16] + static_cast(64), static_cast(0u)); goto L_0899CC04; L_0899CC04: ctx.gpr[31] = (0x0899CC0Cu); // nop if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 47u, 0x08960424u>(ctx, &aot_mem) && ctx.pc == 0x0899CC0Cu) goto L_0899CC0C; return; L_0899CC0C: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0899CC40; } goto L_0899CC14; } L_0899CC14: ctx.gpr[31] = (0x0899CC1Cu); // nop if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 47u, 0x08960424u>(ctx, &aot_mem) && ctx.pc == 0x0899CC1Cu) goto L_0899CC1C; return; L_0899CC1C: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[2] + static_cast(3262)))))); ctx.gpr[4] = (ctx.gpr[4] & 32u); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899CC40; } goto L_0899CC2C; } L_0899CC2C: ctx.gpr[31] = (0x0899CC34u); // nop if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 47u, 0x08960424u>(ctx, &aot_mem) && ctx.pc == 0x0899CC34u) goto L_0899CC34; return; L_0899CC34: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[2] + static_cast(2120))); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0899CCF8; } goto L_0899CC40; } L_0899CC40: ctx.gpr[4] = (ctx.gpr[29] + static_cast(64)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[16] + static_cast(48)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(144)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i])); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (15948u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 52429u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } ctx.gpr[4] = (16256u << 16u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13])); // nop if (ctx.fpu_condition()) { ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[12])); goto L_0899CC98; } goto L_0899CC98; L_0899CC98: ctx.gpr[4] = (16256u << 16u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[13]; ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[16] + static_cast(48)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); ctx.gpr[4] = (ctx.gpr[29] + static_cast(176)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[5] = (std::bit_cast(ctx.fpr[13])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[5]); ctx.gpr[5] = (ctx.gpr[29] + static_cast(64)); { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); ctx.gpr[6] = (ctx.gpr[29] + static_cast(192)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(144)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } goto L_0899CCF8; L_0899CCF8: ctx.gpr[4] = (ctx.gpr[29] + static_cast(64)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[16] + static_cast(48)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(72))); ctx.fpr[24] = ctx.fpr[12] - ctx.fpr[24]; ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(2076))); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899D28C; } goto L_0899CD1C; } L_0899CD1C: ctx.fpr[12] = std::bit_cast(0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(224), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(228), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(232), std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(2076))); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(72))); ctx.gpr[4] = (ctx.gpr[4] & 14u); ctx.gpr[4] = (ctx.gpr[4] ^ 6u); ctx.gpr[4] = (ctx.gpr[4] < static_cast(1) ? 1u : 0u); ctx.gpr[4] = (ctx.gpr[4] & 255u); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899CD74; } goto L_0899CD4C; } L_0899CD4C: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast(4))); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899CD74; } goto L_0899CD58; } L_0899CD58: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(2076))); ctx.gpr[5] = (ctx.gpr[29] + static_cast(224)); ctx.gpr[4] = (ctx.gpr[4] + static_cast(816)); ctx.gpr[31] = (0x0899CD6Cu); ctx.gpr[6] = (0u | 1u); if (rt.invoke_chained_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem) && ctx.pc == 0x0899CD6Cu) goto L_0899CD6C; return; L_0899CD6C: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899CD88; } goto L_0899CD74; } L_0899CD74: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(2076))); ctx.gpr[4] = (ctx.gpr[4] + static_cast(48)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(224)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } goto L_0899CD88; L_0899CD88: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast(4))); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0899CDA8; } goto L_0899CD94; } L_0899CD94: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13492))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(232))); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.fpr[12] = ctx.fpr[13] + ctx.fpr[12]; aot_mem.aot_store32(ctx.gpr[29] + static_cast(232), std::bit_cast(ctx.fpr[12])); goto L_0899CDA8; L_0899CDA8: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(2228))); ctx.gpr[5] = (0u | 22u); if (ctx.gpr[4] == ctx.gpr[5]) { ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(2076))); goto L_0899CDCC; } goto L_0899CDB8; L_0899CDB8: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(2228))); ctx.gpr[5] = (0u | 50u); { const bool branch_taken = ctx.gpr[4] != ctx.gpr[5]; // nop if (branch_taken) { goto L_0899CE88; } goto L_0899CDC8; } L_0899CDC8: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(2076))); goto L_0899CDCC; L_0899CDCC: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(72))); ctx.gpr[4] = (ctx.gpr[4] & 14u); ctx.gpr[4] = (ctx.gpr[4] ^ 14u); ctx.gpr[4] = (ctx.gpr[4] < static_cast(1) ? 1u : 0u); ctx.gpr[4] = (ctx.gpr[4] & 255u); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899CE88; } goto L_0899CDE8; } L_0899CDE8: ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[16] + static_cast(163))); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0899CE88; } goto L_0899CDF4; } L_0899CDF4: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13740))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); ctx.gpr[5] = (std::bit_cast(ctx.fpr[13])); ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]); ctx.set_vfpu_scalar_bits_ct<32u>(ctx.gpr[5]); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::log2(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::exp2(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<32u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[28] + static_cast(6800)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); ctx.gpr[5] = (ctx.gpr[29] + static_cast(272)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[6] = (16256u << 16u); ctx.fpr[13] = std::bit_cast(ctx.gpr[6]); ctx.fpr[12] = ctx.fpr[13] - ctx.fpr[12]; ctx.gpr[6] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[6]); ctx.gpr[6] = (ctx.gpr[29] + static_cast(224)); { const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); ctx.gpr[6] = (ctx.gpr[29] + static_cast(288)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[5] = (ctx.gpr[29] + static_cast(256)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899CF38; } goto L_0899CE88; } L_0899CE88: ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[16] + static_cast(163))); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0899CEA4; } goto L_0899CE94; } L_0899CE94: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(2228))); ctx.gpr[5] = (0u | 17u); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[5]; // nop if (branch_taken) { goto L_0899CEBC; } goto L_0899CEA4; } L_0899CEA4: ctx.gpr[4] = (ctx.gpr[29] + static_cast(224)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[28] + static_cast(6800)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899CF38; } goto L_0899CEBC; } L_0899CEBC: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13744))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); ctx.gpr[5] = (std::bit_cast(ctx.fpr[13])); ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]); ctx.set_vfpu_scalar_bits_ct<32u>(ctx.gpr[5]); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::log2(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::exp2(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<32u>()); ctx.fpr[24] = std::bit_cast(ctx.gpr[4]); ctx.gpr[21] = (ctx.gpr[29] + static_cast(304)); ctx.gpr[22] = (ctx.gpr[29] + static_cast(320)); ctx.gpr[23] = (ctx.gpr[28] + static_cast(6800)); ctx.gpr[4] = (ctx.gpr[22] | 0u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[24])); ctx.gpr[31] = (0x0899CF04u); ctx.gpr[5] = (ctx.gpr[23] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 59u, 0x08998BE4u>(ctx, &aot_mem) && ctx.pc == 0x0899CF04u) goto L_0899CF04; return; L_0899CF04: ctx.gpr[30] = (ctx.gpr[29] + static_cast(336)); ctx.gpr[4] = (16256u << 16u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[24]; ctx.gpr[5] = (ctx.gpr[29] + static_cast(224)); ctx.gpr[31] = (0x0899CF20u); ctx.gpr[4] = (ctx.gpr[30] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 59u, 0x08998BE4u>(ctx, &aot_mem) && ctx.pc == 0x0899CF20u) goto L_0899CF20; return; L_0899CF20: ctx.gpr[4] = (ctx.gpr[21] | 0u); ctx.gpr[5] = (ctx.gpr[22] | 0u); ctx.gpr[31] = (0x0899CF30u); ctx.gpr[6] = (ctx.gpr[30] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 57u, 0x08998BB4u>(ctx, &aot_mem) && ctx.pc == 0x0899CF30u) goto L_0899CF30; return; L_0899CF30: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } goto L_0899CF38; L_0899CF38: ctx.gpr[4] = (ctx.gpr[28] + static_cast(6800)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(64)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(240)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.fpr[24] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(240))); ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[24]) ^ 0x80000000u); ctx.fpr[13] = std::bit_cast(0u); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[24]) || std::isnan(ctx.fpr[13])) && ctx.fpr[24] == ctx.fpr[13])); // nop { const bool branch_taken = !ctx.fpu_condition(); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(244))); if (branch_taken) { goto L_0899CF8C; } goto L_0899CF70; } L_0899CF70: ctx.fpr[13] = std::bit_cast(0u); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[13])) && ctx.fpr[12] == ctx.fpr[13])); // nop if (!ctx.fpu_condition()) { ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[12])); goto L_0899CF90; } goto L_0899CF84; L_0899CF84: { const bool branch_taken = 0u == 0u; ctx.fpr[24] = std::bit_cast(0u); if (branch_taken) { goto L_0899CF9C; } goto L_0899CF8C; } L_0899CF8C: ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[12])); goto L_0899CF90; L_0899CF90: ctx.gpr[31] = (0x0899CF98u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[24])); if (rt.invoke_chained_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem) && ctx.pc == 0x0899CF98u) goto L_0899CF98; return; L_0899CF98: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0899CF9C; L_0899CF9C: ctx.gpr[4] = (16329u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[24] = ctx.fpr[24] - ctx.fpr[12]; ctx.fpr[13] = std::bit_cast(0u); ctx.fpr[26] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(248))); ctx.gpr[4] = (ctx.gpr[29] + static_cast(240)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 2u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i])); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[26]) || std::isnan(ctx.fpr[13])) && ctx.fpr[26] == ctx.fpr[13])); // nop if (!ctx.fpu_condition()) { ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[12])); goto L_0899CFF8; } goto L_0899CFDC; L_0899CFDC: ctx.fpr[13] = std::bit_cast(0u); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[13])) && ctx.fpr[12] == ctx.fpr[13])); // nop if (!ctx.fpu_condition()) { ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[12])); goto L_0899CFF8; } goto L_0899CFF0; L_0899CFF0: { const bool branch_taken = 0u == 0u; ctx.fpr[26] = std::bit_cast(0u); if (branch_taken) { goto L_0899D004; } goto L_0899CFF8; } L_0899CFF8: ctx.gpr[31] = (0x0899D000u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[26])); if (rt.invoke_chained_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem) && ctx.pc == 0x0899D000u) goto L_0899D000; return; L_0899D000: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0899D004; L_0899D004: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast(4))); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0899D034; } goto L_0899D010; } L_0899D010: ctx.gpr[4] = (std::bit_cast(ctx.fpr[22])); ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]); { const float vfpu_constant = std::bit_cast(0x3F22F983u); const float vfpu_value[4]{vfpu_constant, vfpu_constant, vfpu_constant, vfpu_constant}; ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::cos(vfpu_s[i] * 1.57079632679489661923f); ctx.write_vfpu_vector_with_destination_prefix_ct<1u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); { const bool branch_taken = 0u == 0u; { const float fs = ctx.fpr[26]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } if (branch_taken) { goto L_0899D0B8; } goto L_0899D034; } L_0899D034: ctx.gpr[4] = (ctx.gpr[29] + static_cast(64)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[16] + static_cast(32)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(368)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i])); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[20] << 5u); ctx.gpr[5] = (ctx.gpr[20] << 2u); ctx.gpr[4] = (ctx.gpr[4] - ctx.gpr[5]); ctx.gpr[5] = (2234u << 16u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(5240)); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13])); // nop if (!ctx.fpu_condition()) { ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); goto L_0899D090; } goto L_0899D090; L_0899D090: ctx.gpr[4] = (ctx.gpr[29] + static_cast(240)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i])); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; ctx.fpr[12] = ctx.fpr[12] / ctx.fpr[13]; { const float fs = ctx.fpr[20]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast(0x7FC00000u); else ctx.fpr[20] = fs * ft; } { const float fs = ctx.fpr[22]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } goto L_0899D0B8; L_0899D0B8: ctx.gpr[31] = (0x0899D0C0u); // nop if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 47u, 0x08960424u>(ctx, &aot_mem) && ctx.pc == 0x0899D0C0u) goto L_0899D0C0; return; L_0899D0C0: { const bool branch_taken = ctx.gpr[18] != ctx.gpr[2]; // nop if (branch_taken) { goto L_0899D0E8; } goto L_0899D0C8; } L_0899D0C8: ctx.gpr[31] = (0x0899D0D0u); // nop if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 47u, 0x08960424u>(ctx, &aot_mem) && ctx.pc == 0x0899D0D0u) goto L_0899D0D0; return; L_0899D0D0: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[2] + static_cast(3262)))))); ctx.gpr[4] = (ctx.gpr[4] & 8u); ctx.gpr[4] = (0u < ctx.gpr[4] ? 1u : 0u); ctx.gpr[4] = (ctx.gpr[4] & 255u); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0899D0F0; } goto L_0899D0E8; } L_0899D0E8: ctx.fpr[24] = ctx.fpr[22] + ctx.fpr[24]; ctx.fpr[26] = ctx.fpr[26] - ctx.fpr[20]; goto L_0899D0F0; L_0899D0F0: ctx.gpr[4] = (49225u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[26] < ctx.fpr[12])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899D120; } goto L_0899D10C; } L_0899D10C: ctx.gpr[4] = (16585u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); { const bool branch_taken = 0u == 0u; ctx.fpr[26] = ctx.fpr[26] + ctx.fpr[12]; if (branch_taken) { goto L_0899D14C; } goto L_0899D120; } L_0899D120: ctx.gpr[4] = (16457u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[26] <= ctx.fpr[12])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899D14C; } goto L_0899D13C; } L_0899D13C: ctx.gpr[4] = (16585u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[26] = ctx.fpr[26] - ctx.fpr[12]; goto L_0899D14C; L_0899D14C: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13700))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[16] + static_cast(163))); { const bool branch_taken = ctx.gpr[4] == 0u; { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } if (branch_taken) { goto L_0899D168; } goto L_0899D160; } L_0899D160: ctx.gpr[4] = (17530u << 16u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); goto L_0899D168; L_0899D168: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(120))); ctx.fpr[13] = ctx.fpr[26] - ctx.fpr[13]; ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[13]) & 0x7FFFFFFFu); ctx.set_fpu_condition((ctx.fpr[14] < ctx.fpr[12])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899D18C; } goto L_0899D184; } L_0899D184: { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[16] + static_cast(120), std::bit_cast(ctx.fpr[26])); if (branch_taken) { goto L_0899D1BC; } goto L_0899D18C; } L_0899D18C: ctx.fpr[14] = std::bit_cast(0u); ctx.set_fpu_condition((ctx.fpr[13] < ctx.fpr[14])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899D1B0; } goto L_0899D1A0; } L_0899D1A0: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(120))); ctx.fpr[13] = ctx.fpr[13] - ctx.fpr[12]; { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[16] + static_cast(120), std::bit_cast(ctx.fpr[13])); if (branch_taken) { goto L_0899D1BC; } goto L_0899D1B0; } L_0899D1B0: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(120))); ctx.fpr[13] = ctx.fpr[13] + ctx.fpr[12]; aot_mem.aot_store32(ctx.gpr[16] + static_cast(120), std::bit_cast(ctx.fpr[13])); goto L_0899D1BC; L_0899D1BC: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(124))); ctx.gpr[4] = (16457u << 16u); ctx.fpr[13] = ctx.fpr[24] - ctx.fpr[13]; ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[13] <= ctx.fpr[14])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899D1F4; } goto L_0899D1E0; } L_0899D1E0: ctx.gpr[4] = (16585u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); { const bool branch_taken = 0u == 0u; ctx.fpr[24] = ctx.fpr[24] - ctx.fpr[13]; if (branch_taken) { goto L_0899D228; } goto L_0899D1F4; } L_0899D1F4: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(124))); ctx.gpr[4] = (49225u << 16u); ctx.fpr[13] = ctx.fpr[24] - ctx.fpr[13]; ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[13] < ctx.fpr[14])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899D228; } goto L_0899D218; } L_0899D218: ctx.gpr[4] = (16585u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[24] = ctx.fpr[24] + ctx.fpr[13]; goto L_0899D228; L_0899D228: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(124))); ctx.fpr[13] = ctx.fpr[24] - ctx.fpr[13]; ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[13]) & 0x7FFFFFFFu); ctx.set_fpu_condition((ctx.fpr[14] < ctx.fpr[12])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899D24C; } goto L_0899D244; } L_0899D244: { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[16] + static_cast(124), std::bit_cast(ctx.fpr[24])); if (branch_taken) { goto L_0899D27C; } goto L_0899D24C; } L_0899D24C: ctx.fpr[14] = std::bit_cast(0u); ctx.set_fpu_condition((ctx.fpr[13] < ctx.fpr[14])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899D270; } goto L_0899D260; } L_0899D260: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(124))); ctx.fpr[12] = ctx.fpr[13] - ctx.fpr[12]; { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[16] + static_cast(124), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899D27C; } goto L_0899D270; } L_0899D270: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(124))); ctx.fpr[12] = ctx.fpr[13] + ctx.fpr[12]; aot_mem.aot_store32(ctx.gpr[16] + static_cast(124), std::bit_cast(ctx.fpr[12])); goto L_0899D27C; L_0899D27C: ctx.fpr[12] = std::bit_cast(0u); aot_mem.aot_store32(ctx.gpr[16] + static_cast(292), std::bit_cast(ctx.fpr[12])); { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[16] + static_cast(304), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899D3D8; } goto L_0899D28C; } L_0899D28C: ctx.gpr[31] = (0x0899D294u); ctx.gpr[4] = (0u | 0u); if (rt.invoke_chained_direct<&recomp_unit_0097_entry, 97u, 828u, 0x0898B428u>(ctx, &aot_mem) && ctx.pc == 0x0899D294u) goto L_0899D294; return; L_0899D294: ctx.gpr[31] = (0x0899D29Cu); ctx.gpr[4] = (ctx.gpr[2] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0098_entry, 98u, 686u, 0x0898DE2Cu>(ctx, &aot_mem) && ctx.pc == 0x0899D29Cu) goto L_0899D29C; return; L_0899D29C: ctx.gpr[4] = (0u - ctx.gpr[2]); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (0u | 0u); ctx.gpr[31] = (0x0899D2B0u); ctx.fpr[20] = static_cast(static_cast(std::bit_cast(ctx.fpr[12]))); if (rt.invoke_chained_direct<&recomp_unit_0097_entry, 97u, 828u, 0x0898B428u>(ctx, &aot_mem) && ctx.pc == 0x0899D2B0u) goto L_0899D2B0; return; L_0899D2B0: ctx.gpr[31] = (0x0899D2B8u); ctx.gpr[4] = (ctx.gpr[2] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0098_entry, 98u, 703u, 0x0898DF58u>(ctx, &aot_mem) && ctx.pc == 0x0899D2B8u) goto L_0899D2B8; return; L_0899D2B8: ctx.fpr[12] = std::bit_cast(ctx.gpr[2]); ctx.fpr[12] = static_cast(static_cast(std::bit_cast(ctx.fpr[12]))); ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[20]) & 0x7FFFFFFFu); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13704))); ctx.gpr[4] = (17056u << 16u); ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(296))); ctx.fpr[16] = std::bit_cast(ctx.gpr[4]); ctx.fpr[15] = ctx.fpr[15] / ctx.fpr[16]; ctx.gpr[4] = (15762u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 18725u); ctx.fpr[18] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast(0x7FC00000u); else ctx.fpr[14] = fs * ft; } ctx.fpr[17] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } { const float fs = ctx.fpr[15]; const float ft = ctx.fpr[17]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[17] = std::bit_cast(0x7FC00000u); else ctx.fpr[17] = fs * ft; } { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[17]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[18]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[12]) & 0x7FFFFFFFu); { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast(0x7FC00000u); else ctx.fpr[14] = fs * ft; } ctx.gpr[4] = (15663u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 35577u); ctx.fpr[17] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[15]; const float ft = ctx.fpr[17]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast(0x7FC00000u); else ctx.fpr[15] = fs * ft; } { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast(0x7FC00000u); else ctx.fpr[14] = fs * ft; } { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast(0x7FC00000u); else ctx.fpr[14] = fs * ft; } { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[18]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast(0x7FC00000u); else ctx.fpr[14] = fs * ft; } ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13488))); ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[20]) & 0x7FFFFFFFu); ctx.gpr[4] = (16384u << 16u); ctx.fpr[17] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[16] < ctx.fpr[17])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899D364; } goto L_0899D344; } L_0899D344: ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[12]) & 0x7FFFFFFFu); ctx.gpr[4] = (16384u << 16u); ctx.fpr[16] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[16])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899D364; } goto L_0899D360; } L_0899D360: ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13484))); goto L_0899D364; L_0899D364: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); ctx.gpr[4] = (std::bit_cast(ctx.fpr[15])); ctx.gpr[5] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]); ctx.set_vfpu_scalar_bits_ct<32u>(ctx.gpr[5]); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::log2(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::exp2(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<32u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(304))); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast(0x7FC00000u); else ctx.fpr[15] = fs * ft; } ctx.gpr[4] = (16256u << 16u); ctx.fpr[16] = std::bit_cast(ctx.gpr[4]); ctx.fpr[16] = ctx.fpr[16] - ctx.fpr[12]; { const float fs = ctx.fpr[16]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } ctx.fpr[13] = ctx.fpr[15] + ctx.fpr[13]; aot_mem.aot_store32(ctx.gpr[16] + static_cast(304), std::bit_cast(ctx.fpr[13])); ctx.fpr[17] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(292))); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[17]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } { const float fs = ctx.fpr[16]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast(0x7FC00000u); else ctx.fpr[14] = fs * ft; } ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[14]; aot_mem.aot_store32(ctx.gpr[16] + static_cast(292), std::bit_cast(ctx.fpr[12])); ctx.fpr[18] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(124))); ctx.fpr[13] = ctx.fpr[18] + ctx.fpr[13]; aot_mem.aot_store32(ctx.gpr[16] + static_cast(124), std::bit_cast(ctx.fpr[13])); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(120))); ctx.fpr[12] = ctx.fpr[13] + ctx.fpr[12]; aot_mem.aot_store32(ctx.gpr[16] + static_cast(120), std::bit_cast(ctx.fpr[12])); goto L_0899D3D8; L_0899D3D8: ctx.gpr[31] = (0x0899D3E0u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(124))); if (rt.invoke_chained_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem) && ctx.pc == 0x0899D3E0u) goto L_0899D3E0; return; L_0899D3E0: ctx.fpr[12] = std::bit_cast(0u); ctx.set_fpu_condition((ctx.fpr[0] < ctx.fpr[12])); // nop { const bool branch_taken = !ctx.fpu_condition(); aot_mem.aot_store32(ctx.gpr[16] + static_cast(124), std::bit_cast(ctx.fpr[0])); if (branch_taken) { goto L_0899D40C; } goto L_0899D3F4; } L_0899D3F4: ctx.gpr[4] = (16585u << 16u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(124))); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; aot_mem.aot_store32(ctx.gpr[16] + static_cast(124), std::bit_cast(ctx.fpr[12])); goto L_0899D40C; L_0899D40C: ctx.gpr[31] = (0x0899D414u); // nop if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 47u, 0x08960424u>(ctx, &aot_mem) && ctx.pc == 0x0899D414u) goto L_0899D414; return; L_0899D414: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[2] + static_cast(3262)))))); ctx.gpr[4] = (ctx.gpr[4] & 8u); ctx.gpr[4] = (0u < ctx.gpr[4] ? 1u : 0u); ctx.gpr[4] = (ctx.gpr[4] & 255u); { const bool branch_taken = ctx.gpr[4] != 0u; ctx.gpr[4] = (ctx.gpr[20] << 5u); if (branch_taken) { goto L_0899D4D8; } goto L_0899D42C; } L_0899D42C: ctx.gpr[4] = (ctx.gpr[20] << 5u); ctx.gpr[5] = (ctx.gpr[20] << 2u); ctx.gpr[4] = (ctx.gpr[4] - ctx.gpr[5]); ctx.gpr[5] = (2234u << 16u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(5240)); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(120))); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(20))); ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13])); // nop { const bool branch_taken = ctx.fpu_condition(); ctx.gpr[4] = (ctx.gpr[20] << 5u); if (branch_taken) { goto L_0899D480; } goto L_0899D45C; } L_0899D45C: ctx.gpr[4] = (ctx.gpr[20] << 5u); ctx.gpr[5] = (ctx.gpr[20] << 2u); ctx.gpr[4] = (ctx.gpr[4] - ctx.gpr[5]); ctx.gpr[5] = (2234u << 16u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(5240)); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(20))); { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[16] + static_cast(120), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899D4D4; } goto L_0899D480; } L_0899D480: ctx.gpr[5] = (ctx.gpr[20] << 2u); ctx.gpr[4] = (ctx.gpr[4] - ctx.gpr[5]); ctx.gpr[5] = (2234u << 16u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(5240)); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(120))); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(24))); ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[13]) ^ 0x80000000u); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13])); // nop { const bool branch_taken = !ctx.fpu_condition(); ctx.gpr[4] = (ctx.gpr[20] << 5u); if (branch_taken) { goto L_0899D4D8; } goto L_0899D4B0; } L_0899D4B0: ctx.gpr[4] = (ctx.gpr[20] << 5u); ctx.gpr[5] = (ctx.gpr[20] << 2u); ctx.gpr[4] = (ctx.gpr[4] - ctx.gpr[5]); ctx.gpr[5] = (2234u << 16u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(5240)); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(24))); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[12]) ^ 0x80000000u); aot_mem.aot_store32(ctx.gpr[16] + static_cast(120), std::bit_cast(ctx.fpr[12])); goto L_0899D4D4; L_0899D4D4: ctx.gpr[4] = (ctx.gpr[20] << 5u); goto L_0899D4D8; L_0899D4D8: ctx.gpr[5] = (ctx.gpr[20] << 2u); ctx.fpr[12] = std::bit_cast(0u); ctx.gpr[4] = (ctx.gpr[4] - ctx.gpr[5]); ctx.gpr[5] = (2234u << 16u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(5240)); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(120))); ctx.set_fpu_condition((ctx.fpr[13] <= ctx.fpr[12])); // nop { const bool branch_taken = ctx.fpu_condition(); ctx.fpr[20] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); if (branch_taken) { goto L_0899D58C; } goto L_0899D504; } L_0899D504: ctx.gpr[4] = (ctx.gpr[20] << 5u); ctx.gpr[5] = (ctx.gpr[20] << 2u); ctx.gpr[4] = (ctx.gpr[4] - ctx.gpr[5]); ctx.gpr[5] = (2234u << 16u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(5240)); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(8))); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(120))); ctx.gpr[4] = (16329u << 16u); { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13])); // nop if (ctx.fpu_condition()) { ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[12])); goto L_0899D544; } goto L_0899D544; L_0899D544: ctx.gpr[4] = (std::bit_cast(ctx.fpr[13])); ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]); { const float vfpu_constant = std::bit_cast(0x3F22F983u); const float vfpu_value[4]{vfpu_constant, vfpu_constant, vfpu_constant, vfpu_constant}; ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::cos(vfpu_s[i] * 1.57079632679489661923f); ctx.write_vfpu_vector_with_destination_prefix_ct<1u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[20] << 5u); ctx.gpr[5] = (ctx.gpr[20] << 2u); ctx.gpr[4] = (ctx.gpr[4] - ctx.gpr[5]); ctx.gpr[5] = (2234u << 16u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(5240)); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(4))); { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.fpr[20] = ctx.fpr[20] + ctx.fpr[12]; { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899D5D0; } goto L_0899D58C; } L_0899D58C: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(120))); ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]); { const float vfpu_constant = std::bit_cast(0x3F22F983u); const float vfpu_value[4]{vfpu_constant, vfpu_constant, vfpu_constant, vfpu_constant}; ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::cos(vfpu_s[i] * 1.57079632679489661923f); ctx.write_vfpu_vector_with_destination_prefix_ct<1u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[20] << 5u); ctx.gpr[5] = (ctx.gpr[20] << 2u); ctx.gpr[4] = (ctx.gpr[4] - ctx.gpr[5]); ctx.gpr[5] = (2234u << 16u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(5240)); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(4))); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.fpr[20] = ctx.fpr[20] + ctx.fpr[12]; goto L_0899D5D0; L_0899D5D0: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(124))); ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]); { const float vfpu_constant = std::bit_cast(0x3F22F983u); const float vfpu_value[4]{vfpu_constant, vfpu_constant, vfpu_constant, vfpu_constant}; ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::cos(vfpu_s[i] * 1.57079632679489661923f); ctx.write_vfpu_vector_with_destination_prefix_ct<1u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(120))); ctx.gpr[4] = (std::bit_cast(ctx.fpr[14])); ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]); { const float vfpu_constant = std::bit_cast(0x3F22F983u); const float vfpu_value[4]{vfpu_constant, vfpu_constant, vfpu_constant, vfpu_constant}; ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::cos(vfpu_s[i] * 1.57079632679489661923f); ctx.write_vfpu_vector_with_destination_prefix_ct<1u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[15] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[13]) ^ 0x80000000u); ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]); { const float vfpu_constant = std::bit_cast(0x3F22F983u); const float vfpu_value[4]{vfpu_constant, vfpu_constant, vfpu_constant, vfpu_constant}; ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::sin(vfpu_s[i] * 1.57079632679489661923f); ctx.write_vfpu_vector_with_destination_prefix_ct<1u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[15] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (std::bit_cast(ctx.fpr[14])); ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]); { const float vfpu_constant = std::bit_cast(0x3F22F983u); const float vfpu_value[4]{vfpu_constant, vfpu_constant, vfpu_constant, vfpu_constant}; ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::cos(vfpu_s[i] * 1.57079632679489661923f); ctx.write_vfpu_vector_with_destination_prefix_ct<1u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[15]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[12]) ^ 0x80000000u); ctx.gpr[4] = (std::bit_cast(ctx.fpr[14])); ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]); { const float vfpu_constant = std::bit_cast(0x3F22F983u); const float vfpu_value[4]{vfpu_constant, vfpu_constant, vfpu_constant, vfpu_constant}; ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::sin(vfpu_s[i] * 1.57079632679489661923f); ctx.write_vfpu_vector_with_destination_prefix_ct<1u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[15] = std::bit_cast(ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(32), std::bit_cast(ctx.fpr[13])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(36), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(40), std::bit_cast(ctx.fpr[15])); ctx.gpr[5] = (ctx.gpr[29] + static_cast(32)); { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[16] + static_cast(16)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[6] = (std::bit_cast(ctx.fpr[20])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[6]); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); ctx.gpr[6] = (ctx.gpr[29] + static_cast(48)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(64)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[5] = (ctx.gpr[16] + static_cast(32)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[6] = (ctx.gpr[16] + static_cast(400)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } aot_mem.aot_store32(ctx.gpr[29] + static_cast(128), 0u); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(112))); aot_mem.aot_store32(ctx.gpr[28] + static_cast(8068), ctx.gpr[6]); ctx.gpr[6] = (ctx.gpr[29] + static_cast(96)); ctx.gpr[7] = (ctx.gpr[29] + static_cast(128)); ctx.gpr[2] = (0u | 1u); ctx.gpr[8] = (0u | 1u); ctx.gpr[9] = (0u | 1u); ctx.gpr[10] = (0u | 1u); ctx.gpr[11] = (0u | 1u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(0), 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(4), 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(8), ctx.gpr[2]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(12), 0u); ctx.gpr[31] = (0x0899D714u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), 0u); if (rt.invoke_chained_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem) && ctx.pc == 0x0899D714u) goto L_0899D714; return; L_0899D714: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0899DEC4; } goto L_0899D71C; } L_0899D71C: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(2228))); ctx.gpr[5] = (0u | 17u); { const bool branch_taken = ctx.gpr[4] != ctx.gpr[5]; // nop if (branch_taken) { goto L_0899DBBC; } goto L_0899D72C; } L_0899D72C: ctx.gpr[4] = (ctx.gpr[16] + static_cast(32)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(64)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(432)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i])); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[20] = std::bit_cast(ctx.gpr[4]); ctx.gpr[19] = (0u | 40u); { const bool branch_taken = ctx.gpr[19] == 0u; // nop if (branch_taken) { goto L_0899D9A0; } goto L_0899D768; } L_0899D768: ctx.gpr[4] = (15948u << 16u); goto L_0899D76C; L_0899D76C: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(40))); ctx.gpr[4] = (ctx.gpr[4] | 52429u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; ctx.gpr[4] = (static_cast(ctx.gpr[19]) < 20 ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] == 0u; aot_mem.aot_store32(ctx.gpr[16] + static_cast(40), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899D7A0; } goto L_0899D788; } L_0899D788: ctx.gpr[4] = (16025u << 16u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(40))); ctx.gpr[4] = (ctx.gpr[4] | 39322u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; aot_mem.aot_store32(ctx.gpr[16] + static_cast(40), std::bit_cast(ctx.fpr[12])); goto L_0899D7A0; L_0899D7A0: ctx.gpr[4] = (static_cast(ctx.gpr[19]) < 10 ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899D7C0; } goto L_0899D7AC; } L_0899D7AC: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(40))); ctx.gpr[4] = (16128u << 16u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; aot_mem.aot_store32(ctx.gpr[16] + static_cast(40), std::bit_cast(ctx.fpr[12])); goto L_0899D7C0; L_0899D7C0: ctx.gpr[5] = (ctx.gpr[16] + static_cast(32)); { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(64)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[6] = (ctx.gpr[29] + static_cast(496)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[7] = (ctx.gpr[29] + static_cast(432)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[7] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[7] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_value[4]{}; vfpu_value[0u] = 1.0f; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 1u, 1u, 3u>(); ctx.execute_vfpu_vcmp_ct<28u, 32u, 1u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = 1.0f / std::sqrt(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.execute_vfpu_vscl_ct<1u, 1u, 28u, 3u>(); ctx.execute_vfpu_vcmov_ct<1u, 0u, 3u, 0u, false>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<1u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[7] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[8] = (16128u << 16u); ctx.fpr[12] = std::bit_cast(ctx.gpr[8]); ctx.fpr[12] = ctx.fpr[20] + ctx.fpr[12]; ctx.gpr[8] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<1u>(ctx.gpr[8]); { const std::uint32_t vfpu_address = ctx.gpr[7] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 1u, 3u>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[7] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[7] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[6] = (ctx.gpr[29] + static_cast(96)); ctx.gpr[7] = (ctx.gpr[29] + static_cast(128)); ctx.gpr[2] = (0u | 1u); ctx.gpr[8] = (0u | 1u); ctx.gpr[9] = (0u | 1u); ctx.gpr[10] = (0u | 1u); ctx.gpr[11] = (0u | 1u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(0), 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(4), 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(8), ctx.gpr[2]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(12), 0u); ctx.gpr[31] = (0x0899D874u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), 0u); if (rt.invoke_chained_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem) && ctx.pc == 0x0899D874u) goto L_0899D874; return; L_0899D874: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0899D990; } goto L_0899D87C; } L_0899D87C: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(112))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(512), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(116))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(516), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(120))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(520), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(528), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(532), std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (49024u << 16u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(536), std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (ctx.gpr[29] + static_cast(512)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(528)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>(); ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (16221u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 45613u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899D968; } goto L_0899D8E4; } L_0899D8E4: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(560), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(564), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(568), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(112))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(592), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(116))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(596), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(120))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(600), std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (15820u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 52429u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[29] + static_cast(592)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); ctx.gpr[4] = (ctx.gpr[29] + static_cast(576)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[5] = (ctx.gpr[29] + static_cast(560)); { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(544)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[16] + static_cast(32)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899D9A0; } goto L_0899D968; } L_0899D968: ctx.gpr[19] = (ctx.gpr[19] + static_cast(-1)); ctx.gpr[4] = (static_cast(ctx.gpr[19]) < 10 ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899D988; } goto L_0899D978; } L_0899D978: ctx.gpr[4] = (16204u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 52429u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[20]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast(0x7FC00000u); else ctx.fpr[20] = fs * ft; } goto L_0899D988; L_0899D988: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899D998; } goto L_0899D990; } L_0899D990: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899D9A0; } goto L_0899D998; } L_0899D998: { const bool branch_taken = ctx.gpr[19] != 0u; ctx.gpr[4] = (15948u << 16u); if (branch_taken) { goto L_0899D76C; } goto L_0899D9A0; } L_0899D9A0: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[16] + static_cast(32)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(400)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(432)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i])); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.gpr[5] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[5]); ctx.gpr[5] = (16256u << 16u); ctx.fpr[13] = std::bit_cast(ctx.gpr[5]); ctx.fpr[13] = ctx.fpr[13] / ctx.fpr[12]; ctx.gpr[5] = (std::bit_cast(ctx.fpr[13])); ctx.set_vfpu_scalar_bits_ct<1u>(ctx.gpr[5]); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 1u, 3u>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(112))); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.gpr[5] = (ctx.gpr[5] + static_cast(16)); { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<2u, 4u>(vfpu_value); } ctx.execute_vfpu_cross_quat(0u, 1u, 2u, 3u); ctx.gpr[5] = (ctx.gpr[29] + static_cast(448)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<2u, 4u>(vfpu_value); } ctx.execute_vfpu_cross_quat(0u, 1u, 2u, 3u); ctx.gpr[4] = (ctx.gpr[29] + static_cast(464)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(296))); ctx.gpr[5] = (16457u << 16u); ctx.gpr[5] = (ctx.gpr[5] | 4059u); ctx.fpr[14] = std::bit_cast(ctx.gpr[5]); { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } ctx.gpr[5] = (17204u << 16u); ctx.fpr[15] = std::bit_cast(ctx.gpr[5]); ctx.fpr[13] = ctx.fpr[13] / ctx.fpr[15]; ctx.gpr[5] = (16128u << 16u); ctx.fpr[16] = std::bit_cast(ctx.gpr[5]); { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } ctx.gpr[5] = (16192u << 16u); ctx.fpr[14] = std::bit_cast(ctx.gpr[5]); { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } ctx.gpr[5] = (std::bit_cast(ctx.fpr[13])); ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[5]); { const float vfpu_constant = std::bit_cast(0x3F22F983u); const float vfpu_value[4]{vfpu_constant, vfpu_constant, vfpu_constant, vfpu_constant}; ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); } ctx.execute_vfpu_vrot(1u, 64u, 2u, 4u); { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<33u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] / vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 1u>(vfpu_d); } ctx.gpr[5] = (ctx.vfpu_scalar_bits_ct<0u>()); ctx.fpr[13] = std::bit_cast(ctx.gpr[5]); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.gpr[5] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[5]); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); ctx.gpr[4] = (ctx.gpr[29] + static_cast(480)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(112))); ctx.gpr[5] = (ctx.gpr[5] + static_cast(16)); { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>(); ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(2076))); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899DB04; } goto L_0899DAC4; } L_0899DAC4: ctx.gpr[4] = (ctx.gpr[28] + static_cast(6800)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(608)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i])); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (16128u << 16u); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899DB0C; } goto L_0899DB04; } L_0899DB04: ctx.gpr[4] = (16672u << 16u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); goto L_0899DB0C; L_0899DB0C: ctx.gpr[4] = (ctx.gpr[29] + static_cast(64)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(400)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i])); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (0u | 40u); { const std::int32_t dividend = static_cast(ctx.gpr[19]); const std::int32_t divisor = static_cast(ctx.gpr[4]); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast(dividend); } else if (dividend == static_cast(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast(dividend / divisor); ctx.hi = static_cast(dividend % divisor); } } ctx.gpr[4] = (ctx.lo); ctx.fpr[15] = std::bit_cast(ctx.gpr[4]); ctx.fpr[15] = static_cast(static_cast(std::bit_cast(ctx.fpr[15]))); ctx.gpr[4] = (16256u << 16u); ctx.fpr[16] = std::bit_cast(ctx.gpr[4]); ctx.fpr[16] = ctx.fpr[16] - ctx.fpr[15]; { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast(0x7FC00000u); else ctx.fpr[14] = fs * ft; } ctx.fpr[13] = ctx.fpr[13] + ctx.fpr[14]; ctx.set_fpu_condition((ctx.fpr[13] <= ctx.fpr[12])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899DB78; } goto L_0899DB74; } L_0899DB74: ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[12])); goto L_0899DB78; L_0899DB78: ctx.gpr[4] = (std::bit_cast(ctx.fpr[13])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[16] + static_cast(16)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); ctx.gpr[4] = (ctx.gpr[29] + static_cast(416)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(400)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(64)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899DEC4; } goto L_0899DBBC; } L_0899DBBC: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(640), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(644), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(648), std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (ctx.gpr[29] + static_cast(64)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(640)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(624)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i])); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[20] = ctx.fpr[20] - ctx.fpr[12]; ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(128))); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(72))); ctx.gpr[4] = (ctx.gpr[4] & 14u); ctx.gpr[4] = (ctx.gpr[4] ^ 6u); ctx.gpr[4] = (ctx.gpr[4] < static_cast(1) ? 1u : 0u); ctx.gpr[4] = (ctx.gpr[4] & 255u); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.gpr[4] = (16256u << 16u); if (branch_taken) { goto L_0899DDA0; } goto L_0899DC28; } L_0899DC28: ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[20] <= ctx.fpr[13])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899DDA0; } goto L_0899DC3C; } L_0899DC3C: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(128))); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); aot_mem.aot_store32(ctx.gpr[28] + static_cast(8068), ctx.gpr[4]); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(672), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(676), std::bit_cast(ctx.fpr[13])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(680), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(0), 0u); ctx.gpr[2] = (0u | 1u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(4), 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(8), ctx.gpr[2]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(12), 0u); ctx.gpr[4] = (ctx.gpr[29] + static_cast(672)); ctx.gpr[5] = (ctx.gpr[16] + static_cast(32)); ctx.gpr[6] = (ctx.gpr[29] + static_cast(96)); ctx.gpr[7] = (ctx.gpr[29] + static_cast(128)); ctx.gpr[8] = (0u | 1u); ctx.gpr[9] = (0u | 1u); ctx.gpr[10] = (0u | 1u); ctx.gpr[11] = (0u | 1u); ctx.gpr[31] = (0x0899DC98u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), 0u); if (rt.invoke_chained_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem) && ctx.pc == 0x0899DC98u) goto L_0899DC98; return; L_0899DC98: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.gpr[4] = (16051u << 16u); if (branch_taken) { goto L_0899DD64; } goto L_0899DCA0; } L_0899DCA0: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(704), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(708), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(712), std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (ctx.gpr[29] + static_cast(64)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(704)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[5] = (ctx.gpr[29] + static_cast(688)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i])); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.gpr[5] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[5]); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(704), std::bit_cast(ctx.fpr[13])); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(708), std::bit_cast(ctx.fpr[13])); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(712), std::bit_cast(ctx.fpr[13])); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[16] + static_cast(32)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[4] = (16281u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 39322u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13])); // nop { const bool branch_taken = !ctx.fpu_condition(); ctx.gpr[4] = (16025u << 16u); if (branch_taken) { goto L_0899DD5C; } goto L_0899DD28; } L_0899DD28: ctx.gpr[4] = (ctx.gpr[4] | 39322u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.gpr[5] = (15692u << 16u); ctx.fpr[13] = ctx.fpr[12] - ctx.fpr[13]; ctx.gpr[5] = (ctx.gpr[5] | 52429u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(8896))); ctx.fpr[12] = std::bit_cast(ctx.gpr[5]); ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13])); // nop if (!ctx.fpu_condition()) { ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[12])); goto L_0899DD54; } goto L_0899DD54; L_0899DD54: ctx.gpr[31] = (0x0899DD5Cu); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[13])); if (rt.invoke_chained_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem) && ctx.pc == 0x0899DD5Cu) goto L_0899DD5C; return; L_0899DD5C: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899DD98; } goto L_0899DD64; } L_0899DD64: ctx.gpr[4] = (ctx.gpr[4] | 13107u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.gpr[5] = (16230u << 16u); ctx.fpr[13] = ctx.fpr[20] - ctx.fpr[13]; ctx.gpr[5] = (ctx.gpr[5] | 26214u); ctx.fpr[12] = std::bit_cast(ctx.gpr[5]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(8896))); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13])); // nop if (ctx.fpu_condition()) { ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[12])); goto L_0899DD90; } goto L_0899DD90; L_0899DD90: ctx.gpr[31] = (0x0899DD98u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[13])); if (rt.invoke_chained_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem) && ctx.pc == 0x0899DD98u) goto L_0899DD98; return; L_0899DD98: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899DE18; } goto L_0899DDA0; } L_0899DDA0: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(736), std::bit_cast(ctx.fpr[13])); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(740), std::bit_cast(ctx.fpr[13])); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(744), std::bit_cast(ctx.fpr[13])); ctx.gpr[4] = (ctx.gpr[29] + static_cast(736)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[16] + static_cast(32)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[4] = (16281u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 39322u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13])); // nop { const bool branch_taken = !ctx.fpu_condition(); ctx.gpr[4] = (16025u << 16u); if (branch_taken) { goto L_0899DE18; } goto L_0899DDE4; } L_0899DDE4: ctx.gpr[4] = (ctx.gpr[4] | 39322u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.gpr[5] = (15692u << 16u); ctx.fpr[13] = ctx.fpr[12] - ctx.fpr[13]; ctx.gpr[5] = (ctx.gpr[5] | 52429u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(8896))); ctx.fpr[12] = std::bit_cast(ctx.gpr[5]); ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13])); // nop if (!ctx.fpu_condition()) { ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[12])); goto L_0899DE10; } goto L_0899DE10; L_0899DE10: ctx.gpr[31] = (0x0899DE18u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[13])); if (rt.invoke_chained_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem) && ctx.pc == 0x0899DE18u) goto L_0899DE18; return; L_0899DE18: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(112))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(656), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(116))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(660), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(120))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(664), std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (ctx.gpr[29] + static_cast(656)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_value[4]{}; vfpu_value[0u] = 1.0f; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 1u, 1u, 3u>(); ctx.execute_vfpu_vcmp_ct<28u, 32u, 1u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = 1.0f / std::sqrt(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.execute_vfpu_vscl_ct<1u, 1u, 28u, 3u>(); ctx.execute_vfpu_vcmov_ct<1u, 0u, 3u, 0u, false>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<1u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(112))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(640), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(116))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(644), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(120))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(648), std::bit_cast(ctx.fpr[12])); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(640)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>(); ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[13] = std::bit_cast(0u); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899DEC4; } goto L_0899DE98; } L_0899DE98: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13748))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13752))); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<1u>(ctx.gpr[4]); ctx.gpr[5] = (ctx.gpr[29] + static_cast(656)); { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 1u, 3u>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[31] = (0x0899DEC4u); ctx.gpr[4] = (ctx.gpr[16] + static_cast(32)); if (rt.invoke_chained_direct<&recomp_unit_0163_entry, 163u, 463u, 0x08A931B8u>(ctx, &aot_mem) && ctx.pc == 0x0899DEC4u) goto L_0899DEC4; return; L_0899DEC4: aot_mem.aot_store32(ctx.gpr[28] + static_cast(8068), 0u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(296))); ctx.gpr[4] = (16457u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.gpr[4] = (17204u << 16u); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] / ctx.fpr[14]; ctx.gpr[4] = (16128u << 16u); ctx.fpr[15] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]); { const float vfpu_constant = std::bit_cast(0x3F22F983u); const float vfpu_value[4]{vfpu_constant, vfpu_constant, vfpu_constant, vfpu_constant}; ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); } ctx.execute_vfpu_vrot(1u, 64u, 2u, 4u); { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<33u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] / vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<0u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0899DF28; } goto L_0899DF20; } L_0899DF20: ctx.gpr[31] = (0x0899DF28u); // nop if (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 466u, 0x08B65E44u>(ctx, &aot_mem) && ctx.pc == 0x0899DF28u) goto L_0899DF28; return; L_0899DF28: ctx.gpr[31] = (0x0899DF30u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(5876))); if (rt.invoke_chained_direct<&recomp_unit_0112_entry, 112u, 677u, 0x089C6F50u>(ctx, &aot_mem) && ctx.pc == 0x0899DF30u) goto L_0899DF30; return; L_0899DF30: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0899DF40; } goto L_0899DF38; } L_0899DF38: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899DF40; } goto L_0899DF40; } L_0899DF40: ctx.gpr[4] = (2236u << 16u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(32304)); aot_mem.aot_store8(ctx.gpr[4] + static_cast(88), static_cast(0u)); aot_mem.aot_store8(ctx.gpr[4] + static_cast(2057), static_cast(0u)); ctx.gpr[4] = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x0899DF5Cu); ctx.gpr[5] = (ctx.gpr[17] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 356u, 0x0899B100u>(ctx, &aot_mem) && ctx.pc == 0x0899DF5Cu) goto L_0899DF5C; return; L_0899DF5C: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13752))); ctx.gpr[31] = (0x0899DF68u); ctx.gpr[4] = (ctx.gpr[16] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 335u, 0x0899ADECu>(ctx, &aot_mem) && ctx.pc == 0x0899DF68u) goto L_0899DF68; return; L_0899DF68: ctx.gpr[4] = (ctx.gpr[29] + static_cast(64)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[16] + static_cast(32)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(48)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[16] + static_cast(16)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[31] = (0x0899DF98u); ctx.gpr[4] = (ctx.gpr[16] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem) && ctx.pc == 0x0899DF98u) goto L_0899DF98; return; L_0899DF98: ctx.gpr[31] = (0x0899DFA0u); ctx.gpr[4] = (ctx.gpr[16] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 345u, 0x0899AF94u>(ctx, &aot_mem) && ctx.pc == 0x0899DFA0u) goto L_0899DFA0; return; L_0899DFA0: aot_mem.aot_store8(ctx.gpr[16] + static_cast(163), static_cast(0u)); goto L_0899DFA4; L_0899DFA4: ctx.fpr[20] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(1208))); ctx.fpr[22] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(1212))); ctx.fpr[24] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(1216))); ctx.fpr[26] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(1220))); ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1224))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1228))); ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1232))); ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1236))); ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1240))); ctx.gpr[21] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1244))); ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1248))); ctx.gpr[23] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1252))); ctx.gpr[30] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1256))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1260))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(1264)); local_pc = jump_target; if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0899DFE4: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-1184)); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(112))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1156), ctx.gpr[20]); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast(72))); ctx.gpr[20] = (ctx.gpr[4] | 0u); ctx.gpr[4] = (ctx.gpr[6] & 14u); ctx.gpr[4] = (ctx.gpr[4] ^ 6u); ctx.gpr[4] = (ctx.gpr[4] < static_cast(1) ? 1u : 0u); ctx.gpr[4] = (ctx.gpr[4] & 255u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1116), std::bit_cast(ctx.fpr[20])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1120), std::bit_cast(ctx.fpr[22])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1124), std::bit_cast(ctx.fpr[24])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1128), std::bit_cast(ctx.fpr[26])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1132), std::bit_cast(ctx.fpr[28])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1136), std::bit_cast(ctx.fpr[30])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1140), ctx.gpr[16]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1144), ctx.gpr[17]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1148), ctx.gpr[18]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1152), ctx.gpr[19]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1160), ctx.gpr[21]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1164), ctx.gpr[22]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1168), ctx.gpr[23]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1172), ctx.gpr[30]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1176), ctx.gpr[31]); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.gpr[17] = (ctx.gpr[5] | 0u); if (branch_taken) { goto L_0899E0BC; } goto L_0899E04C; } L_0899E04C: ctx.gpr[31] = (0x0899E054u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast(112))); if (rt.invoke_chained_direct<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem) && ctx.pc == 0x0899E054u) goto L_0899E054; return; L_0899E054: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0899E0B4; } goto L_0899E05C; } L_0899E05C: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(-1044))); ctx.gpr[5] = (ctx.gpr[20] + static_cast(32)); ctx.gpr[6] = (2234u << 16u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1044), ctx.gpr[5]); ctx.gpr[6] = (ctx.gpr[6] + static_cast(5324)); ctx.gpr[5] = (2236u << 16u); ctx.fpr[28] = std::bit_cast(0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1060), ctx.gpr[6]); ctx.gpr[5] = (ctx.gpr[5] + static_cast(32304)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1056), ctx.gpr[5]); ctx.gpr[5] = (16329u << 16u); ctx.gpr[5] = (ctx.gpr[5] | 4059u); ctx.fpr[26] = std::bit_cast(ctx.gpr[5]); ctx.gpr[21] = (ctx.gpr[29] + static_cast(144)); ctx.gpr[5] = (16256u << 16u); ctx.gpr[30] = (ctx.gpr[20] + static_cast(16)); ctx.fpr[24] = std::bit_cast(ctx.gpr[5]); ctx.gpr[16] = (ctx.gpr[20] + static_cast(528)); { const bool branch_taken = ctx.gpr[4] != 0u; ctx.gpr[22] = (ctx.gpr[20] + static_cast(544)); if (branch_taken) { goto L_0899E0C4; } goto L_0899E0AC; } L_0899E0AC: { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[29] + static_cast(1112), ctx.gpr[17]); if (branch_taken) { goto L_0899E0FC; } goto L_0899E0B4; } L_0899E0B4: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899F9A4; } goto L_0899E0BC; } L_0899E0BC: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899F9A4; } goto L_0899E0C4; } L_0899E0C4: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(-1044))); ctx.gpr[5] = (0u | 4u); if (ctx.gpr[4] == ctx.gpr[5]) { aot_mem.aot_store32(ctx.gpr[29] + static_cast(1112), ctx.gpr[17]); goto L_0899E0FC; } goto L_0899E0D4; L_0899E0D4: ctx.gpr[5] = (16025u << 16u); ctx.gpr[5] = (ctx.gpr[5] | 39322u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(8896))); ctx.gpr[31] = (0x0899E0E8u); ctx.fpr[12] = std::bit_cast(ctx.gpr[5]); if (rt.invoke_chained_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem) && ctx.pc == 0x0899E0E8u) goto L_0899E0E8; return; L_0899E0E8: ctx.gpr[5] = (17530u << 16u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(8896))); ctx.gpr[31] = (0x0899E0F8u); ctx.fpr[12] = std::bit_cast(ctx.gpr[5]); if (rt.invoke_chained_direct<&recomp_unit_0035_entry, 35u, 117u, 0x088907E8u>(ctx, &aot_mem) && ctx.pc == 0x0899E0F8u) goto L_0899E0F8; return; L_0899E0F8: aot_mem.aot_store32(ctx.gpr[29] + static_cast(1112), ctx.gpr[17]); goto L_0899E0FC; L_0899E0FC: ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast(112))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(128), 0u); { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[31] = (0x0899E114u); ctx.gpr[4] = (0u | 0u); if (rt.invoke_chained_direct<&recomp_unit_0097_entry, 97u, 828u, 0x0898B428u>(ctx, &aot_mem) && ctx.pc == 0x0899E114u) goto L_0899E114; return; L_0899E114: ctx.gpr[6] = (ctx.gpr[2] | 0u); ctx.gpr[4] = (0u | 0u); ctx.gpr[7] = (aot_mem.aot_load8(ctx.gpr[28] + static_cast(-13531))); aot_mem.aot_store8(ctx.gpr[29] + static_cast(1088), static_cast(ctx.gpr[4])); { const bool branch_taken = ctx.gpr[7] == 0u; ctx.gpr[5] = (ctx.gpr[18] + static_cast(320)); if (branch_taken) { goto L_0899E134; } goto L_0899E12C; } L_0899E12C: aot_mem.aot_store8(ctx.gpr[28] + static_cast(-13531), static_cast(0u)); aot_mem.aot_store32(ctx.gpr[28] + static_cast(-13480), std::bit_cast(ctx.fpr[28])); goto L_0899E134; L_0899E134: aot_mem.aot_store32(ctx.gpr[29] + static_cast(1084), ctx.gpr[6]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1076), ctx.gpr[5]); ctx.gpr[7] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[6] + static_cast(10)))))); ctx.gpr[7] = (0u < ctx.gpr[7] ? 1u : 0u); ctx.gpr[4] = (0u | 0u); { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i])); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.gpr[5] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[5]); ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[28])); // nop if (!ctx.fpu_condition()) { ctx.gpr[4] = (0u | 1u); goto L_0899E16C; } goto L_0899E16C; L_0899E16C: aot_mem.aot_store32(ctx.gpr[29] + static_cast(1108), ctx.gpr[7]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1100), ctx.gpr[16]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1096), ctx.gpr[22]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1068), ctx.gpr[30]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1028), ctx.gpr[18]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1040), ctx.gpr[20]); ctx.gpr[4] = (ctx.gpr[4] & 255u); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13476))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1036), ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[7] | ctx.gpr[5]); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0899E38C; } goto L_0899E19C; } L_0899E19C: ctx.gpr[19] = (0u | 0u); ctx.gpr[4] = (ctx.gpr[29] + static_cast(144)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[17] = (ctx.gpr[29] + static_cast(208)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[4] = (16025u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 39322u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]); ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1068))); { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); ctx.gpr[18] = (ctx.gpr[29] + static_cast(192)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[4] = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x0899E1E4u); ctx.gpr[5] = (ctx.gpr[18] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem) && ctx.pc == 0x0899E1E4u) goto L_0899E1E4; return; L_0899E1E4: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1040))); ctx.gpr[4] = (ctx.gpr[4] + static_cast(96)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<2u, 4u>(vfpu_value); } ctx.execute_vfpu_cross_quat(0u, 1u, 2u, 3u); ctx.gpr[20] = (ctx.gpr[29] + static_cast(224)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_value[4]{}; vfpu_value[0u] = 1.0f; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 1u, 1u, 3u>(); ctx.execute_vfpu_vcmp_ct<28u, 32u, 1u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = 1.0f / std::sqrt(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.execute_vfpu_vscl_ct<1u, 1u, 28u, 3u>(); ctx.execute_vfpu_vcmov_ct<1u, 0u, 3u, 0u, false>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<1u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[4] = (15918u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 5243u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<1u>(ctx.gpr[4]); { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 1u, 3u>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[4] = (16384u << 16u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (std::bit_cast(ctx.fpr[13])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]); { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[4] = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x0899E268u); ctx.gpr[5] = (ctx.gpr[18] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem) && ctx.pc == 0x0899E268u) goto L_0899E268; return; L_0899E268: ctx.gpr[16] = (0u | 0u); ctx.gpr[30] = (0u | 5u); ctx.gpr[23] = (ctx.gpr[29] + static_cast(96)); ctx.gpr[22] = (ctx.gpr[29] + static_cast(128)); ctx.gpr[21] = (ctx.gpr[29] + static_cast(256)); ctx.gpr[18] = (ctx.gpr[29] + static_cast(240)); ctx.gpr[4] = (15605u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 49807u); ctx.fpr[20] = std::bit_cast(ctx.gpr[4]); goto L_0899E28C; L_0899E28C: ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1044))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(0), 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(4), 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(8), 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(12), 0u); ctx.gpr[4] = (ctx.gpr[17] | 0u); ctx.gpr[6] = (ctx.gpr[23] | 0u); ctx.gpr[7] = (ctx.gpr[22] | 0u); ctx.gpr[8] = (0u | 1u); ctx.gpr[9] = (0u | 0u); ctx.gpr[10] = (0u | 0u); ctx.gpr[11] = (0u | 0u); ctx.gpr[31] = (0x0899E2C4u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), 0u); if (rt.invoke_chained_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem) && ctx.pc == 0x0899E2C4u) goto L_0899E2C4; return; L_0899E2C4: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0899E34C; } goto L_0899E2CC; } L_0899E2CC: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(256), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(260), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(264), std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1044))); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i])); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[22] = std::bit_cast(ctx.gpr[4]); ctx.gpr[31] = (0x0899E314u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(8896))); if (rt.invoke_chained_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem) && ctx.pc == 0x0899E314u) goto L_0899E314; return; L_0899E314: ctx.set_fpu_condition((ctx.fpr[22] <= ctx.fpr[0])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899E34C; } goto L_0899E324; } L_0899E324: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1036))); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.gpr[4] = (ctx.gpr[16] + static_cast(-2)); if (branch_taken) { goto L_0899E348; } goto L_0899E330; } L_0899E330: ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13480))); ctx.fpr[12] = static_cast(static_cast(std::bit_cast(ctx.fpr[12]))); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.fpr[12] = ctx.fpr[13] + ctx.fpr[12]; aot_mem.aot_store32(ctx.gpr[28] + static_cast(-13480), std::bit_cast(ctx.fpr[12])); goto L_0899E348; L_0899E348: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); goto L_0899E34C; L_0899E34C: ctx.gpr[4] = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x0899E358u); ctx.gpr[5] = (ctx.gpr[20] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0163_entry, 163u, 463u, 0x08A931B8u>(ctx, &aot_mem) && ctx.pc == 0x0899E358u) goto L_0899E358; return; L_0899E358: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); { const bool branch_taken = ctx.gpr[16] != ctx.gpr[30]; // nop if (branch_taken) { goto L_0899E28C; } goto L_0899E364; } L_0899E364: ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1040))); ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1028))); ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1096))); ctx.gpr[21] = (ctx.gpr[29] + static_cast(144)); { const bool branch_taken = ctx.gpr[19] != ctx.gpr[30]; ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1100))); if (branch_taken) { goto L_0899E384; } goto L_0899E37C; } L_0899E37C: ctx.gpr[4] = (0u | 1u); aot_mem.aot_store8(ctx.gpr[29] + static_cast(1088), static_cast(ctx.gpr[4])); goto L_0899E384; L_0899E384: { const bool branch_taken = 0u == 0u; ctx.gpr[30] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1068))); if (branch_taken) { goto L_0899E394; } goto L_0899E38C; } L_0899E38C: ctx.gpr[4] = (0u | 1u); aot_mem.aot_store8(ctx.gpr[29] + static_cast(1088), static_cast(ctx.gpr[4])); goto L_0899E394; L_0899E394: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13476))); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899E3AC; } goto L_0899E3A0; } L_0899E3A0: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13476))); ctx.gpr[4] = (ctx.gpr[4] + static_cast(-1)); aot_mem.aot_store32(ctx.gpr[28] + static_cast(-13476), ctx.gpr[4]); goto L_0899E3AC; L_0899E3AC: ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[29] + static_cast(1088))); if (ctx.gpr[4] == 0u) { ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(124))); goto L_0899E3C0; } goto L_0899E3B8; L_0899E3B8: { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[28] + static_cast(-13480), std::bit_cast(ctx.fpr[28])); if (branch_taken) { goto L_0899E3E4; } goto L_0899E3C0; } L_0899E3C0: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13480))); ctx.gpr[4] = (16243u << 16u); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; ctx.gpr[4] = (ctx.gpr[4] | 13107u); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[20] + static_cast(124), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13480))); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } aot_mem.aot_store32(ctx.gpr[28] + static_cast(-13480), std::bit_cast(ctx.fpr[12])); goto L_0899E3E4; L_0899E3E4: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(-1044))); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.gpr[17] = (0u | 0u); if (branch_taken) { goto L_0899E404; } goto L_0899E3F0; } L_0899E3F0: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(-1044))); ctx.gpr[5] = (0u | 4u); if (ctx.gpr[4] == ctx.gpr[5]) { ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1060))); goto L_0899E408; } goto L_0899E400; L_0899E400: ctx.gpr[17] = (0u | 1u); goto L_0899E404; L_0899E404: ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1060))); goto L_0899E408; L_0899E408: ctx.gpr[4] = (ctx.gpr[17] << 6u); ctx.gpr[6] = (ctx.gpr[17] << 2u); ctx.gpr[17] = (ctx.gpr[4] - ctx.gpr[6]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1056))); ctx.gpr[17] = (ctx.gpr[17] + ctx.gpr[5]); ctx.fpr[30] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(4))); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(2192))); ctx.fpr[22] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(12))); ctx.fpr[20] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(16))); ctx.fpr[30] = ctx.fpr[12] + ctx.fpr[30]; ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(52))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(56))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13540))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1080), std::bit_cast(ctx.fpr[13])); ctx.set_fpu_condition((ctx.fpr[30] <= ctx.fpr[15])); // nop { const bool branch_taken = ctx.fpu_condition(); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1104), std::bit_cast(ctx.fpr[14])); if (branch_taken) { goto L_0899E454; } goto L_0899E450; } L_0899E450: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[30])); goto L_0899E454; L_0899E454: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(8))); aot_mem.aot_store32(ctx.gpr[28] + static_cast(-13540), std::bit_cast(ctx.fpr[30])); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(1972))); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[13]) || std::isnan(ctx.fpr[24])) && ctx.fpr[13] == ctx.fpr[24])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899E480; } goto L_0899E470; } L_0899E470: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(320))); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[29] + static_cast(1064), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899E4D4; } goto L_0899E480; } L_0899E480: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(1972))); ctx.gpr[5] = (16384u << 16u); ctx.fpr[14] = std::bit_cast(ctx.gpr[5]); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[13]) || std::isnan(ctx.fpr[14])) && ctx.fpr[13] == ctx.fpr[14])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899E4AC; } goto L_0899E49C; } L_0899E49C: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(324))); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[29] + static_cast(1064), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899E4D4; } goto L_0899E4AC; } L_0899E4AC: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(1972))); ctx.gpr[5] = (16448u << 16u); ctx.fpr[14] = std::bit_cast(ctx.gpr[5]); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[13]) || std::isnan(ctx.fpr[14])) && ctx.fpr[13] == ctx.fpr[14])); // nop { const bool branch_taken = !ctx.fpu_condition(); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1064), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899E4D4; } goto L_0899E4C8; } L_0899E4C8: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(328))); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; aot_mem.aot_store32(ctx.gpr[29] + static_cast(1064), std::bit_cast(ctx.fpr[12])); goto L_0899E4D4; L_0899E4D4: ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast(2092))); { const bool branch_taken = ctx.gpr[5] != 0u; aot_mem.aot_store32(ctx.gpr[29] + static_cast(1048), std::bit_cast(ctx.fpr[28])); if (branch_taken) { goto L_0899E558; } goto L_0899E4E0; } L_0899E4E0: ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[20] + static_cast(163))); ctx.gpr[6] = (17036u << 16u); { const bool branch_taken = ctx.gpr[5] == 0u; ctx.fpr[12] = std::bit_cast(ctx.gpr[6]); if (branch_taken) { goto L_0899E4F8; } goto L_0899E4F0; } L_0899E4F0: { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[20] + static_cast(296), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899E558; } goto L_0899E4F8; } L_0899E4F8: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13688))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(296))); { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } ctx.fpr[15] = ctx.fpr[15] + ctx.fpr[13]; ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[15])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899E52C; } goto L_0899E51C; } L_0899E51C: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(296))); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[20] + static_cast(296), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899E558; } goto L_0899E52C; } L_0899E52C: ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(296))); ctx.fpr[14] = ctx.fpr[14] - ctx.fpr[13]; ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[14])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899E554; } goto L_0899E544; } L_0899E544: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(296))); ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[13]; { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[20] + static_cast(296), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899E558; } goto L_0899E554; } L_0899E554: aot_mem.aot_store32(ctx.gpr[20] + static_cast(296), std::bit_cast(ctx.fpr[12])); goto L_0899E558; L_0899E558: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(152))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(0))); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast(112))); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; { const bool branch_taken = ctx.gpr[5] == 0u; aot_mem.aot_store32(ctx.gpr[29] + static_cast(152), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899E5F0; } goto L_0899E570; } L_0899E570: ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast(112))); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast(72))); ctx.gpr[5] = (ctx.gpr[5] & 14u); ctx.gpr[5] = (ctx.gpr[5] ^ 6u); ctx.gpr[5] = (ctx.gpr[5] < static_cast(1) ? 1u : 0u); ctx.gpr[5] = (ctx.gpr[5] & 255u); { const bool branch_taken = ctx.gpr[5] == 0u; // nop if (branch_taken) { goto L_0899E5F0; } goto L_0899E590; } L_0899E590: ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast(112))); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast(236))); ctx.gpr[5] = (ctx.gpr[5] & 256u); { const bool branch_taken = ctx.gpr[5] == 0u; // nop if (branch_taken) { goto L_0899E5F0; } goto L_0899E5A4; } L_0899E5A4: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(144))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(148))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(152))); ctx.gpr[31] = (0x0899E5B8u); ctx.gpr[4] = (ctx.gpr[29] + static_cast(272)); if (rt.invoke_chained_direct<&recomp_unit_0189_entry, 189u, 138u, 0x08AF8918u>(ctx, &aot_mem) && ctx.pc == 0x0899E5B8u) goto L_0899E5B8; return; L_0899E5B8: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0899E5EC; } goto L_0899E5C0; } L_0899E5C0: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(272))); ctx.gpr[4] = (16128u << 16u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(152))); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[14])); // nop { const bool branch_taken = ctx.fpu_condition(); aot_mem.aot_store32(ctx.gpr[29] + static_cast(272), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899E5EC; } goto L_0899E5E4; } L_0899E5E4: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(272))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(152), std::bit_cast(ctx.fpr[12])); goto L_0899E5EC; L_0899E5EC: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1056))); goto L_0899E5F0; L_0899E5F0: ctx.set_fpu_condition((ctx.fpr[30] <= ctx.fpr[20])); // nop if (!ctx.fpu_condition()) { ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[30])); goto L_0899E600; } goto L_0899E600; L_0899E600: ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[20] + static_cast(163))); { const bool branch_taken = ctx.gpr[5] != 0u; ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[20])); if (branch_taken) { goto L_0899E624; } goto L_0899E60C; } L_0899E60C: ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast(88))); { const bool branch_taken = ctx.gpr[5] != 0u; // nop if (branch_taken) { goto L_0899E624; } goto L_0899E618; } L_0899E618: ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast(2057))); { const bool branch_taken = ctx.gpr[5] == 0u; aot_mem.aot_store32(ctx.gpr[29] + static_cast(1092), std::bit_cast(ctx.fpr[24])); if (branch_taken) { goto L_0899E7A8; } goto L_0899E624; } L_0899E624: aot_mem.aot_store8(ctx.gpr[20] + static_cast(164), static_cast(0u)); ctx.gpr[5] = (17530u << 16u); aot_mem.aot_store8(ctx.gpr[28] + static_cast(-13532), static_cast(0u)); ctx.fpr[20] = std::bit_cast(ctx.gpr[5]); ctx.gpr[5] = (0u | 1u); aot_mem.aot_store32(ctx.gpr[28] + static_cast(-13536), std::bit_cast(ctx.fpr[20])); aot_mem.aot_store8(ctx.gpr[20] + static_cast(161), static_cast(ctx.gpr[5])); ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast(2066))); { const bool branch_taken = ctx.gpr[5] != 0u; // nop if (branch_taken) { goto L_0899E6B0; } goto L_0899E64C; } L_0899E64C: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[18] + static_cast(16))); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[12]) ^ 0x80000000u); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[28])) && ctx.fpr[12] == ctx.fpr[28])); // nop { const bool branch_taken = !ctx.fpu_condition(); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[18] + static_cast(20))); if (branch_taken) { goto L_0899E67C; } goto L_0899E664; } L_0899E664: ctx.set_fpu_condition((!(std::isnan(ctx.fpr[13]) || std::isnan(ctx.fpr[28])) && ctx.fpr[13] == ctx.fpr[28])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899E67C; } goto L_0899E674; } L_0899E674: { const bool branch_taken = 0u == 0u; ctx.fpr[12] = ctx.fpr[28] - ctx.fpr[26]; if (branch_taken) { goto L_0899E688; } goto L_0899E67C; } L_0899E67C: ctx.gpr[31] = (0x0899E684u); // nop if (rt.invoke_chained_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem) && ctx.pc == 0x0899E684u) goto L_0899E684; return; L_0899E684: ctx.fpr[12] = ctx.fpr[0] - ctx.fpr[26]; goto L_0899E688; L_0899E688: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1056))); aot_mem.aot_store32(ctx.gpr[20] + static_cast(124), std::bit_cast(ctx.fpr[12])); ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast(2057))); { const bool branch_taken = ctx.gpr[5] == 0u; ctx.gpr[5] = (16457u << 16u); if (branch_taken) { goto L_0899E6B0; } goto L_0899E69C; } L_0899E69C: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(124))); ctx.gpr[5] = (ctx.gpr[5] | 4059u); ctx.fpr[13] = std::bit_cast(ctx.gpr[5]); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; aot_mem.aot_store32(ctx.gpr[20] + static_cast(124), std::bit_cast(ctx.fpr[12])); goto L_0899E6B0; L_0899E6B0: aot_mem.aot_store32(ctx.gpr[20] + static_cast(304), std::bit_cast(ctx.fpr[28])); aot_mem.aot_store32(ctx.gpr[20] + static_cast(292), std::bit_cast(ctx.fpr[28])); aot_mem.aot_store32(ctx.gpr[20] + static_cast(4), std::bit_cast(ctx.fpr[20])); ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast(2066))); if (ctx.gpr[4] != 0u) { aot_mem.aot_store32(ctx.gpr[29] + static_cast(1092), std::bit_cast(ctx.fpr[24])); goto L_0899E6D0; } goto L_0899E6C8; L_0899E6C8: aot_mem.aot_store32(ctx.gpr[20] + static_cast(120), std::bit_cast(ctx.fpr[28])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1092), std::bit_cast(ctx.fpr[24])); goto L_0899E6D0; L_0899E6D0: ctx.gpr[31] = (0x0899E6D8u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(124))); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem) && ctx.pc == 0x0899E6D8u) goto L_0899E6D8; return; L_0899E6D8: ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[31] = (0x0899E6E4u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(120))); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem) && ctx.pc == 0x0899E6E4u) goto L_0899E6E4; return; L_0899E6E4: { const float fs = ctx.fpr[20]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[12]) ^ 0x80000000u); ctx.gpr[31] = (0x0899E6F4u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(124))); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem) && ctx.pc == 0x0899E6F4u) goto L_0899E6F4; return; L_0899E6F4: ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[31] = (0x0899E700u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(120))); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem) && ctx.pc == 0x0899E700u) goto L_0899E700; return; L_0899E700: { const float fs = ctx.fpr[20]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[13]) ^ 0x80000000u); ctx.gpr[31] = (0x0899E710u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(120))); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem) && ctx.pc == 0x0899E710u) goto L_0899E710; return; L_0899E710: aot_mem.aot_store32(ctx.gpr[29] + static_cast(288), std::bit_cast(ctx.fpr[26])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(292), std::bit_cast(ctx.fpr[20])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(296), std::bit_cast(ctx.fpr[0])); ctx.gpr[4] = (ctx.gpr[29] + static_cast(288)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[5] = (std::bit_cast(ctx.fpr[24])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[5]); { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); ctx.gpr[5] = (ctx.gpr[29] + static_cast(304)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(7660))); aot_mem.aot_store32(ctx.gpr[20] + static_cast(592), ctx.gpr[6]); ctx.gpr[6] = (std::bit_cast(ctx.fpr[30])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[6]); { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1056))); ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast(2066))); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0899E7A8; } goto L_0899E79C; } L_0899E79C: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(1064))); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[12]) ^ 0x80000000u); aot_mem.aot_store32(ctx.gpr[20] + static_cast(120), std::bit_cast(ctx.fpr[12])); goto L_0899E7A8; L_0899E7A8: aot_mem.aot_store32(ctx.gpr[29] + static_cast(160), std::bit_cast(ctx.fpr[30])); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[23] = (ctx.gpr[29] + static_cast(32)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_value[4]{}; vfpu_value[0u] = 1.0f; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 1u, 1u, 3u>(); ctx.execute_vfpu_vcmp_ct<28u, 32u, 1u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = 1.0f / std::sqrt(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.execute_vfpu_vscl_ct<1u, 1u, 28u, 3u>(); ctx.execute_vfpu_vcmov_ct<1u, 0u, 3u, 0u, false>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<1u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i])); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[30] <= ctx.fpr[12])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899E844; } goto L_0899E81C; } L_0899E81C: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(12))); ctx.set_fpu_condition((ctx.fpr[30] <= ctx.fpr[13])); // nop { const bool branch_taken = ctx.fpu_condition(); aot_mem.aot_store32(ctx.gpr[29] + static_cast(160), std::bit_cast(ctx.fpr[30])); if (branch_taken) { goto L_0899E844; } goto L_0899E830; } L_0899E830: ctx.set_fpu_condition((ctx.fpr[22] <= ctx.fpr[12])); // nop if (!ctx.fpu_condition()) { ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[22])); goto L_0899E840; } goto L_0899E840; L_0899E840: aot_mem.aot_store32(ctx.gpr[29] + static_cast(160), std::bit_cast(ctx.fpr[12])); goto L_0899E844; L_0899E844: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[28])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(16))); ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[24])); ctx.gpr[4] = (16329u << 16u); ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[30])); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[12]) ^ 0x80000000u); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(20))); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[26])) && ctx.fpr[12] == ctx.fpr[26])); // nop { const bool branch_taken = !ctx.fpu_condition(); ctx.fpr[22] = std::bit_cast(ctx.gpr[4]); if (branch_taken) { goto L_0899E88C; } goto L_0899E874; } L_0899E874: ctx.set_fpu_condition((!(std::isnan(ctx.fpr[13]) || std::isnan(ctx.fpr[28])) && ctx.fpr[13] == ctx.fpr[28])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899E88C; } goto L_0899E884; } L_0899E884: { const bool branch_taken = 0u == 0u; ctx.fpr[12] = ctx.fpr[28] - ctx.fpr[22]; if (branch_taken) { goto L_0899E898; } goto L_0899E88C; } L_0899E88C: ctx.gpr[31] = (0x0899E894u); // nop if (rt.invoke_chained_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem) && ctx.pc == 0x0899E894u) goto L_0899E894; return; L_0899E894: ctx.fpr[12] = ctx.fpr[0] - ctx.fpr[22]; goto L_0899E898; L_0899E898: ctx.gpr[4] = (49225u << 16u); ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[20] < ctx.fpr[13])); // nop { const bool branch_taken = !ctx.fpu_condition(); ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1076))); if (branch_taken) { goto L_0899E8C8; } goto L_0899E8B8; } L_0899E8B8: ctx.gpr[4] = (16585u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[20] = std::bit_cast(ctx.gpr[4]); ctx.fpr[20] = ctx.fpr[12] + ctx.fpr[20]; goto L_0899E8C8; L_0899E8C8: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[18] + static_cast(16))); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[12]) ^ 0x80000000u); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[28])) && ctx.fpr[12] == ctx.fpr[28])); // nop { const bool branch_taken = !ctx.fpu_condition(); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[18] + static_cast(20))); if (branch_taken) { goto L_0899E8F8; } goto L_0899E8E0; } L_0899E8E0: ctx.set_fpu_condition((!(std::isnan(ctx.fpr[13]) || std::isnan(ctx.fpr[28])) && ctx.fpr[13] == ctx.fpr[28])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899E8F8; } goto L_0899E8F0; } L_0899E8F0: { const bool branch_taken = 0u == 0u; ctx.fpr[12] = ctx.fpr[28] - ctx.fpr[22]; if (branch_taken) { goto L_0899E904; } goto L_0899E8F8; } L_0899E8F8: ctx.gpr[31] = (0x0899E900u); // nop if (rt.invoke_chained_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem) && ctx.pc == 0x0899E900u) goto L_0899E900; return; L_0899E900: ctx.fpr[12] = ctx.fpr[0] - ctx.fpr[22]; goto L_0899E904; L_0899E904: ctx.fpr[28] = std::bit_cast(std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (16457u << 16u); ctx.fpr[22] = ctx.fpr[28] - ctx.fpr[20]; ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[22] <= ctx.fpr[13])); // nop { const bool branch_taken = ctx.fpu_condition(); ctx.gpr[4] = (16585u << 16u); if (branch_taken) { goto L_0899E940; } goto L_0899E928; } L_0899E928: ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[28] = std::bit_cast(ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1100), ctx.gpr[16]); ctx.fpr[28] = ctx.fpr[12] - ctx.fpr[28]; { const bool branch_taken = 0u == 0u; ctx.fpr[22] = ctx.fpr[28] - ctx.fpr[20]; if (branch_taken) { goto L_0899E974; } goto L_0899E940; } L_0899E940: ctx.gpr[4] = (49225u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[22] < ctx.fpr[13])); // nop { const bool branch_taken = !ctx.fpu_condition(); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1100), ctx.gpr[16]); if (branch_taken) { goto L_0899E974; } goto L_0899E95C; } L_0899E95C: ctx.gpr[4] = (16585u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[28] = std::bit_cast(ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1100), ctx.gpr[16]); ctx.fpr[28] = ctx.fpr[12] + ctx.fpr[28]; ctx.fpr[22] = ctx.fpr[28] - ctx.fpr[20]; goto L_0899E974; L_0899E974: ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast(112))); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[16] + static_cast(1929)))))); ctx.gpr[5] = (ctx.gpr[4] << 5u); ctx.gpr[4] = (ctx.gpr[4] << 2u); ctx.gpr[4] = (ctx.gpr[5] - ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[16] + ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[4] + static_cast(1396)); ctx.gpr[31] = (0x0899E998u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(4))); if (rt.invoke_chained_direct<&recomp_unit_0198_entry, 198u, 733u, 0x08B1FD70u>(ctx, &aot_mem) && ctx.pc == 0x0899E998u) goto L_0899E998; return; L_0899E998: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[2] + static_cast(4))); ctx.gpr[5] = (0u | 1u); if (ctx.gpr[4] == ctx.gpr[5]) { ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[16] + static_cast(1929)))))); goto L_0899E9D4; } goto L_0899E9A8; L_0899E9A8: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[16] + static_cast(1929)))))); ctx.gpr[5] = (ctx.gpr[4] << 5u); ctx.gpr[4] = (ctx.gpr[4] << 2u); ctx.gpr[4] = (ctx.gpr[5] - ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[16] + ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[4] + static_cast(1396)); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(4))); ctx.gpr[5] = (0u | 33u); { const bool branch_taken = ctx.gpr[4] != ctx.gpr[5]; // nop if (branch_taken) { goto L_0899EA20; } goto L_0899E9D0; } L_0899E9D0: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[16] + static_cast(1929)))))); goto L_0899E9D4; L_0899E9D4: ctx.gpr[5] = (ctx.gpr[4] << 5u); ctx.gpr[4] = (ctx.gpr[4] << 2u); ctx.gpr[4] = (ctx.gpr[5] - ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[16] + ctx.gpr[4]); ctx.gpr[31] = (0x0899E9ECu); ctx.gpr[4] = (ctx.gpr[4] + static_cast(1396)); if (rt.invoke_chained_direct<&recomp_unit_0143_entry, 143u, 161u, 0x08A40D58u>(ctx, &aot_mem) && ctx.pc == 0x0899E9ECu) goto L_0899E9EC; return; L_0899E9EC: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0899EA20; } goto L_0899E9F4; } L_0899E9F4: ctx.gpr[31] = (0x0899E9FCu); ctx.gpr[4] = (0u | 0u); if (rt.invoke_chained_direct<&recomp_unit_0097_entry, 97u, 828u, 0x0898B428u>(ctx, &aot_mem) && ctx.pc == 0x0899E9FCu) goto L_0899E9FC; return; L_0899E9FC: ctx.gpr[31] = (0x0899EA04u); ctx.gpr[4] = (ctx.gpr[2] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0098_entry, 98u, 412u, 0x0898D22Cu>(ctx, &aot_mem) && ctx.pc == 0x0899EA04u) goto L_0899EA04; return; L_0899EA04: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0899EA20; } goto L_0899EA0C; } L_0899EA0C: ctx.gpr[4] = (0u | 1u); aot_mem.aot_store8(ctx.gpr[28] + static_cast(-13532), static_cast(ctx.gpr[4])); ctx.gpr[4] = (16416u << 16u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1048), std::bit_cast(ctx.fpr[12])); goto L_0899EA20; L_0899EA20: ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1084))); ctx.gpr[31] = (0x0899EA2Cu); ctx.gpr[4] = (ctx.gpr[16] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0098_entry, 98u, 613u, 0x0898DAFCu>(ctx, &aot_mem) && ctx.pc == 0x0899EA2Cu) goto L_0899EA2C; return; L_0899EA2C: ctx.gpr[4] = (16256u << 16u); ctx.fpr[16] = std::bit_cast(0u); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(1048))); { const bool branch_taken = ctx.gpr[2] != 0u; ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); if (branch_taken) { goto L_0899EA50; } goto L_0899EA40; } L_0899EA40: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(2228))); ctx.gpr[5] = (0u | 63u); { const bool branch_taken = ctx.gpr[4] != ctx.gpr[5]; // nop if (branch_taken) { goto L_0899EA5C; } goto L_0899EA50; } L_0899EA50: ctx.gpr[4] = (0u | 1u); { const bool branch_taken = 0u == 0u; aot_mem.aot_store8(ctx.gpr[28] + static_cast(-13532), static_cast(ctx.gpr[4])); if (branch_taken) { goto L_0899EAB8; } goto L_0899EA5C; } L_0899EA5C: ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[28] + static_cast(-13532))); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899EAB8; } goto L_0899EA68; } L_0899EA68: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (14979u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 4719u); ctx.fpr[15] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[15])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899EAB4; } goto L_0899EA94; } L_0899EA94: ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[22]) & 0x7FFFFFFFu); ctx.gpr[4] = (15395u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 55050u); ctx.fpr[15] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[15])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899EAB8; } goto L_0899EAB4; } L_0899EAB4: aot_mem.aot_store8(ctx.gpr[28] + static_cast(-13532), static_cast(0u)); goto L_0899EAB8; L_0899EAB8: ctx.gpr[4] = (16445u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 58446u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[22]) & 0x7FFFFFFFu); ctx.set_fpu_condition((ctx.fpr[15] < ctx.fpr[12])); // nop if (ctx.fpu_condition()) { ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(40))); goto L_0899EAF8; } goto L_0899EAD8; L_0899EAD8: ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[28] + static_cast(-13532))); if (ctx.gpr[4] != 0u) { ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(40))); goto L_0899EAF8; } goto L_0899EAE4; L_0899EAE4: ctx.set_fpu_condition((!(std::isnan(ctx.fpr[13]) || std::isnan(ctx.fpr[16])) && ctx.fpr[13] == ctx.fpr[16])); // nop { const bool branch_taken = ctx.fpu_condition(); ctx.gpr[4] = (16457u << 16u); if (branch_taken) { goto L_0899EC1C; } goto L_0899EAF4; } L_0899EAF4: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(40))); goto L_0899EAF8; L_0899EAF8: ctx.fpr[26] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(44))); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[28] + static_cast(-13532))); { const bool branch_taken = ctx.gpr[4] != 0u; { const float fs = ctx.fpr[15]; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } if (branch_taken) { goto L_0899EB20; } goto L_0899EB10; } L_0899EB10: ctx.set_fpu_condition((!(std::isnan(ctx.fpr[13]) || std::isnan(ctx.fpr[16])) && ctx.fpr[13] == ctx.fpr[16])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899EB60; } goto L_0899EB20; } L_0899EB20: ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13464))); { const float fs = ctx.fpr[15]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.set_fpu_condition((ctx.fpr[14] < ctx.fpr[12])); // nop if (ctx.fpu_condition()) { ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[14])); goto L_0899EB38; } goto L_0899EB38; L_0899EB38: ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13460))); ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[12])); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[13]) || std::isnan(ctx.fpr[16])) && ctx.fpr[13] == ctx.fpr[16])); // nop { const bool branch_taken = ctx.fpu_condition(); { const float fs = ctx.fpr[15]; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } if (branch_taken) { goto L_0899EB58; } goto L_0899EB50; } L_0899EB50: { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[30] = std::bit_cast(0x7FC00000u); else ctx.fpr[30] = fs * ft; } { const float fs = ctx.fpr[26]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } goto L_0899EB58; L_0899EB58: { const bool branch_taken = 0u == 0u; { const float fs = ctx.fpr[30]; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } if (branch_taken) { goto L_0899EBE4; } goto L_0899EB60; } L_0899EB60: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(1300))); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899EBB8; } goto L_0899EB6C; } L_0899EB6C: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(1300))); { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[4] + static_cast(320)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(336)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i])); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[30] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[30]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[30] = std::bit_cast(0x7FC00000u); else ctx.fpr[30] = fs * ft; } ctx.set_fpu_condition((ctx.fpr[14] < ctx.fpr[30])); // nop if (ctx.fpu_condition()) { ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[14])); goto L_0899EBB0; } goto L_0899EBB0; L_0899EBB0: { const bool branch_taken = 0u == 0u; { const float fs = ctx.fpr[30]; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } if (branch_taken) { goto L_0899EBE4; } goto L_0899EBB8; } L_0899EBB8: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i])); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[30] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[30]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[30] = std::bit_cast(0x7FC00000u); else ctx.fpr[30] = fs * ft; } ctx.set_fpu_condition((ctx.fpr[14] < ctx.fpr[30])); // nop if (ctx.fpu_condition()) { ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[14])); goto L_0899EBE0; } goto L_0899EBE0; L_0899EBE0: { const float fs = ctx.fpr[30]; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } goto L_0899EBE4; L_0899EBE4: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[22])); ctx.set_fpu_condition((ctx.fpr[26] < ctx.fpr[24])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899EC00; } goto L_0899EBF8; } L_0899EBF8: { const bool branch_taken = 0u == 0u; ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[26])); if (branch_taken) { goto L_0899EC18; } goto L_0899EC00; } L_0899EC00: ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[26]) ^ 0x80000000u); ctx.set_fpu_condition((ctx.fpr[22] < ctx.fpr[12])); // nop { const bool branch_taken = !ctx.fpu_condition(); ctx.gpr[4] = (16457u << 16u); if (branch_taken) { goto L_0899EC1C; } goto L_0899EC14; } L_0899EC14: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[12])); goto L_0899EC18; L_0899EC18: ctx.gpr[4] = (16457u << 16u); goto L_0899EC1C; L_0899EC1C: ctx.fpr[20] = ctx.fpr[20] + ctx.fpr[24]; ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(124))); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[15] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[15]; ctx.set_fpu_condition((ctx.fpr[20] <= ctx.fpr[12])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899EC54; } goto L_0899EC40; } L_0899EC40: ctx.gpr[4] = (16585u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); { const bool branch_taken = 0u == 0u; ctx.fpr[20] = ctx.fpr[20] - ctx.fpr[12]; if (branch_taken) { goto L_0899EC7C; } goto L_0899EC54; } L_0899EC54: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(124))); ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[15]; ctx.set_fpu_condition((ctx.fpr[20] < ctx.fpr[12])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899EC7C; } goto L_0899EC6C; } L_0899EC6C: ctx.gpr[4] = (16585u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[20] = ctx.fpr[20] + ctx.fpr[12]; goto L_0899EC7C; L_0899EC7C: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(124))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); ctx.fpr[12] = ctx.fpr[20] - ctx.fpr[12]; ctx.set_fpu_condition((ctx.fpr[13] < ctx.fpr[14])); ctx.fpr[20] = ctx.fpr[28] - ctx.fpr[20]; { const bool branch_taken = !ctx.fpu_condition(); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1072), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899ECA0; } goto L_0899EC98; } L_0899EC98: { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[29] + static_cast(1052), std::bit_cast(ctx.fpr[14])); if (branch_taken) { goto L_0899ECA8; } goto L_0899ECA0; } L_0899ECA0: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1052), std::bit_cast(ctx.fpr[12])); goto L_0899ECA8; L_0899ECA8: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(24))); ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[14])); ctx.gpr[4] = (49024u << 16u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[24] < ctx.fpr[13])); // nop if (!ctx.fpu_condition()) { ctx.fpr[24] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(24))); goto L_0899ECC8; } goto L_0899ECC8; L_0899ECC8: ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[24])); // nop if (!ctx.fpu_condition()) { ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[12])); goto L_0899ECD8; } goto L_0899ECD8; L_0899ECD8: ctx.gpr[4] = (std::bit_cast(ctx.fpr[24])); ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]); { const float vfpu_constant = std::bit_cast(0x3FC90FDBu); const float vfpu_value[4]{vfpu_constant, vfpu_constant, vfpu_constant, vfpu_constant}; ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] < -1.0f ? -1.0f : (vfpu_s[i] > 1.0f ? 1.0f : vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::asin(vfpu_s[i]) * 0.63661977236758134308f; ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<0u>()); ctx.fpr[24] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[20]) & 0x7FFFFFFFu); ctx.gpr[4] = (16329u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899EE08; } goto L_0899ED18; } L_0899ED18: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (15107u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 4719u); ctx.fpr[17] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[17])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899EE08; } goto L_0899ED44; } L_0899ED44: ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[20]) & 0x7FFFFFFFu); ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[13]; ctx.gpr[4] = (16281u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 39322u); ctx.fpr[15] = ctx.fpr[15] - ctx.fpr[13]; ctx.fpr[17] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[17]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast(0x7FC00000u); else ctx.fpr[20] = fs * ft; } ctx.fpr[20] = ctx.fpr[20] / ctx.fpr[15]; ctx.set_fpu_condition((ctx.fpr[20] <= ctx.fpr[14])); // nop if (!ctx.fpu_condition()) { ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[14])); goto L_0899ED74; } goto L_0899ED74; L_0899ED74: ctx.gpr[4] = (16050u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 47299u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[13] - ctx.fpr[12]; { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast(0x7FC00000u); else ctx.fpr[20] = fs * ft; } ctx.fpr[20] = ctx.fpr[13] - ctx.fpr[20]; ctx.gpr[4] = (16230u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 26214u); ctx.fpr[15] = std::bit_cast(ctx.gpr[4]); ctx.fpr[17] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); ctx.gpr[4] = (std::bit_cast(ctx.fpr[15])); ctx.gpr[5] = (std::bit_cast(ctx.fpr[17])); ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]); ctx.set_vfpu_scalar_bits_ct<32u>(ctx.gpr[5]); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::log2(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::exp2(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<32u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[20] < ctx.fpr[24])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899EDE4; } goto L_0899EDD0; } L_0899EDD0: ctx.fpr[13] = ctx.fpr[14] - ctx.fpr[12]; { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } { const bool branch_taken = 0u == 0u; ctx.fpr[24] = ctx.fpr[24] + ctx.fpr[13]; if (branch_taken) { goto L_0899EE08; } goto L_0899EDE4; } L_0899EDE4: ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[20]) ^ 0x80000000u); ctx.set_fpu_condition((ctx.fpr[24] < ctx.fpr[13])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899EE08; } goto L_0899EDF8; } L_0899EDF8: ctx.fpr[13] = ctx.fpr[14] - ctx.fpr[12]; { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } ctx.fpr[24] = ctx.fpr[24] - ctx.fpr[13]; goto L_0899EE08; L_0899EE08: ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[28] + static_cast(-13532))); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[16])); if (branch_taken) { goto L_0899EE7C; } goto L_0899EE14; } L_0899EE14: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(456))); ctx.gpr[4] = (ctx.gpr[4] & 1u); if (ctx.gpr[4] == 0u) { ctx.fpr[24] = ctx.fpr[24] + ctx.fpr[12]; goto L_0899EE80; } goto L_0899EE24; L_0899EE24: { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[30]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[30] = std::bit_cast(0x7FC00000u); else ctx.fpr[30] = fs * ft; } ctx.set_fpu_condition((ctx.fpr[14] < ctx.fpr[30])); // nop if (ctx.fpu_condition()) { ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[14])); goto L_0899EE38; } goto L_0899EE38; L_0899EE38: ctx.fpr[12] = ctx.fpr[16] - ctx.fpr[24]; ctx.gpr[4] = (16512u << 16u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } { const float fs = ctx.fpr[30]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.set_fpu_condition((ctx.fpr[26] < ctx.fpr[12])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899EE64; } goto L_0899EE5C; } L_0899EE5C: { const bool branch_taken = 0u == 0u; ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[26])); if (branch_taken) { goto L_0899EE7C; } goto L_0899EE64; } L_0899EE64: ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[26]) ^ 0x80000000u); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899EE7C; } goto L_0899EE78; } L_0899EE78: ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[13])); goto L_0899EE7C; L_0899EE7C: ctx.fpr[24] = ctx.fpr[24] + ctx.fpr[12]; goto L_0899EE80; L_0899EE80: ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(1064))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(1080))); ctx.fpr[24] = ctx.fpr[24] - ctx.fpr[15]; ctx.set_fpu_condition((ctx.fpr[24] <= ctx.fpr[13])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899EEA4; } goto L_0899EE9C; } L_0899EE9C: { const bool branch_taken = 0u == 0u; ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[13])); if (branch_taken) { goto L_0899EEC0; } goto L_0899EEA4; } L_0899EEA4: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(1104))); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[12]) ^ 0x80000000u); ctx.set_fpu_condition((ctx.fpr[24] < ctx.fpr[12])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899EEC0; } goto L_0899EEBC; } L_0899EEBC: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[12])); goto L_0899EEC0; L_0899EEC0: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(20))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); ctx.gpr[5] = (std::bit_cast(ctx.fpr[13])); ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]); ctx.set_vfpu_scalar_bits_ct<32u>(ctx.gpr[5]); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::log2(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::exp2(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<32u>()); ctx.fpr[15] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(24))); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.fpr[28] = ctx.fpr[14] - ctx.fpr[15]; ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(120))); ctx.fpr[16] = ctx.fpr[24] - ctx.fpr[16]; { const float fs = ctx.fpr[28]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[28] = std::bit_cast(0x7FC00000u); else ctx.fpr[28] = fs * ft; } ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[28])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899EF1C; } goto L_0899EF14; } L_0899EF14: { const bool branch_taken = 0u == 0u; ctx.fpr[28] = std::bit_cast(std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899EF34; } goto L_0899EF1C; } L_0899EF1C: ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[12]) ^ 0x80000000u); ctx.set_fpu_condition((ctx.fpr[28] < ctx.fpr[12])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899EF34; } goto L_0899EF30; } L_0899EF30: ctx.fpr[28] = std::bit_cast(std::bit_cast(ctx.fpr[12])); goto L_0899EF34; L_0899EF34: ctx.gpr[31] = (0x0899EF3Cu); ctx.gpr[4] = (ctx.gpr[16] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0098_entry, 98u, 722u, 0x0898E080u>(ctx, &aot_mem) && ctx.pc == 0x0899EF3Cu) goto L_0899EF3C; return; L_0899EF3C: ctx.gpr[4] = (0u - ctx.gpr[2]); ctx.fpr[22] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x0899EF50u); ctx.fpr[22] = static_cast(static_cast(std::bit_cast(ctx.fpr[22]))); if (rt.invoke_chained_direct<&recomp_unit_0098_entry, 98u, 742u, 0x0898E188u>(ctx, &aot_mem) && ctx.pc == 0x0899EF50u) goto L_0899EF50; return; L_0899EF50: ctx.fpr[20] = std::bit_cast(ctx.gpr[2]); ctx.gpr[31] = (0x0899EF5Cu); ctx.fpr[20] = static_cast(static_cast(std::bit_cast(ctx.fpr[20]))); if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 39u, 0x089603D4u>(ctx, &aot_mem) && ctx.pc == 0x0899EF5Cu) goto L_0899EF5C; return; L_0899EF5C: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0899EF6C; } goto L_0899EF64; } L_0899EF64: ctx.fpr[20] = std::bit_cast(0u); ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[20])); goto L_0899EF6C; L_0899EF6C: // Do not move the game's own +45-degree clamp. Stop only upward input // before it, leaving X/yaw and downward recovery untouched. Clearing the // accumulated pitch speed prevents one last frame of momentum from carrying // the camera into the stock endpoint. if (std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + 1104u)) > 1.0f && ctx.fpr[20] > 0.0f && std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + 120u)) >= vcs::vcs_ped_camera_up_limit_radians()) { ctx.fpr[20] = 0.0f; aot_mem.aot_store32(ctx.gpr[20] + 292u, 0u); } ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[22]) & 0x7FFFFFFFu); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13704))); { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(296))); ctx.gpr[4] = (17056u << 16u); ctx.fpr[15] = std::bit_cast(ctx.gpr[4]); ctx.fpr[14] = ctx.fpr[14] / ctx.fpr[15]; ctx.gpr[4] = (15762u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 18725u); ctx.fpr[16] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[16] = std::bit_cast(0x7FC00000u); else ctx.fpr[16] = fs * ft; } { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[20]) & 0x7FFFFFFFu); { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[17]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[30] = std::bit_cast(0x7FC00000u); else ctx.fpr[30] = fs * ft; } ctx.gpr[4] = (15663u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 35577u); ctx.fpr[15] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast(0x7FC00000u); else ctx.fpr[14] = fs * ft; } { const float fs = ctx.fpr[30]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[30] = std::bit_cast(0x7FC00000u); else ctx.fpr[30] = fs * ft; } ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(32))); ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); ctx.gpr[4] = (std::bit_cast(ctx.fpr[13])); ctx.gpr[5] = (std::bit_cast(ctx.fpr[16])); ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]); ctx.set_vfpu_scalar_bits_ct<32u>(ctx.gpr[5]); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::log2(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::exp2(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<32u>()); ctx.fpr[20] = std::bit_cast(ctx.gpr[4]); ctx.fpr[22] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(36))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(1052))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(1072))); ctx.fpr[13] = ctx.fpr[14] / ctx.fpr[13]; ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; ctx.gpr[4] = (16256u << 16u); ctx.fpr[26] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[22])); // nop { const bool branch_taken = ctx.fpu_condition(); ctx.fpr[26] = ctx.fpr[26] - ctx.fpr[20]; if (branch_taken) { goto L_0899F024; } goto L_0899F01C; } L_0899F01C: { const bool branch_taken = 0u == 0u; ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[22])); if (branch_taken) { goto L_0899F03C; } goto L_0899F024; } L_0899F024: ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[22]) ^ 0x80000000u); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13])); // nop if (!ctx.fpu_condition()) { ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(304))); goto L_0899F040; } goto L_0899F038; L_0899F038: ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[13])); goto L_0899F03C; L_0899F03C: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(304))); goto L_0899F040; L_0899F040: { const float fs = ctx.fpr[26]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } { const float fs = ctx.fpr[20]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } ctx.fpr[12] = ctx.fpr[13] + ctx.fpr[12]; aot_mem.aot_store32(ctx.gpr[20] + static_cast(304), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[12]) & 0x7FFFFFFFu); ctx.gpr[4] = (14545u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 46871u); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[14])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899F078; } goto L_0899F070; } L_0899F070: ctx.fpr[12] = std::bit_cast(0u); aot_mem.aot_store32(ctx.gpr[20] + static_cast(304), std::bit_cast(ctx.fpr[12])); goto L_0899F078; L_0899F078: ctx.gpr[31] = (0x0899F080u); ctx.gpr[4] = (ctx.gpr[20] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 124u, 0x08999134u>(ctx, &aot_mem) && ctx.pc == 0x0899F080u) goto L_0899F080; return; L_0899F080: { const bool branch_taken = ctx.gpr[2] != 0u; // nop if (branch_taken) { goto L_0899F0A0; } goto L_0899F088; } L_0899F088: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(304))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(124))); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.fpr[12] = ctx.fpr[14] + ctx.fpr[12]; aot_mem.aot_store32(ctx.gpr[20] + static_cast(124), std::bit_cast(ctx.fpr[12])); goto L_0899F0A0; L_0899F0A0: ctx.gpr[31] = (0x0899F0A8u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(124))); if (rt.invoke_chained_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem) && ctx.pc == 0x0899F0A8u) goto L_0899F0A8; return; L_0899F0A8: ctx.fpr[13] = std::bit_cast(0u); ctx.set_fpu_condition((ctx.fpr[0] < ctx.fpr[13])); // nop { const bool branch_taken = !ctx.fpu_condition(); aot_mem.aot_store32(ctx.gpr[20] + static_cast(124), std::bit_cast(ctx.fpr[0])); if (branch_taken) { goto L_0899F0D4; } goto L_0899F0BC; } L_0899F0BC: ctx.gpr[4] = (16585u << 16u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(124))); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[14]; aot_mem.aot_store32(ctx.gpr[20] + static_cast(124), std::bit_cast(ctx.fpr[12])); goto L_0899F0D4; L_0899F0D4: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(292))); { const float fs = ctx.fpr[30]; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast(0x7FC00000u); else ctx.fpr[14] = fs * ft; } { const float fs = ctx.fpr[26]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.fpr[12] = ctx.fpr[14] + ctx.fpr[12]; ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[22])); // nop { const bool branch_taken = ctx.fpu_condition(); aot_mem.aot_store32(ctx.gpr[20] + static_cast(292), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899F0FC; } goto L_0899F0F4; } L_0899F0F4: { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[20] + static_cast(292), std::bit_cast(ctx.fpr[22])); if (branch_taken) { goto L_0899F118; } goto L_0899F0FC; } L_0899F0FC: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(292))); ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[22]) ^ 0x80000000u); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[22])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899F118; } goto L_0899F114; } L_0899F114: aot_mem.aot_store32(ctx.gpr[20] + static_cast(292), std::bit_cast(ctx.fpr[22])); goto L_0899F118; L_0899F118: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(292))); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[12]) & 0x7FFFFFFFu); ctx.gpr[4] = (14545u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 46871u); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[14])); // nop if (!ctx.fpu_condition()) { ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(292))); goto L_0899F144; } goto L_0899F13C; L_0899F13C: aot_mem.aot_store32(ctx.gpr[20] + static_cast(292), std::bit_cast(ctx.fpr[13])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(292))); goto L_0899F144; L_0899F144: ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(120))); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast(0x7FC00000u); else ctx.fpr[15] = fs * ft; } ctx.fpr[16] = ctx.fpr[16] + ctx.fpr[28]; ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(1080))); ctx.fpr[24] = ctx.fpr[24] + ctx.fpr[15]; ctx.set_fpu_condition((ctx.fpr[16] <= ctx.fpr[12])); // nop { const bool branch_taken = ctx.fpu_condition(); aot_mem.aot_store32(ctx.gpr[20] + static_cast(120), std::bit_cast(ctx.fpr[16])); if (branch_taken) { goto L_0899F178; } goto L_0899F16C; } L_0899F16C: aot_mem.aot_store32(ctx.gpr[20] + static_cast(120), std::bit_cast(ctx.fpr[12])); { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[20] + static_cast(292), std::bit_cast(ctx.fpr[13])); if (branch_taken) { goto L_0899F19C; } goto L_0899F178; } L_0899F178: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(1104))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(120))); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[12]) ^ 0x80000000u); ctx.set_fpu_condition((ctx.fpr[15] < ctx.fpr[12])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899F19C; } goto L_0899F194; } L_0899F194: aot_mem.aot_store32(ctx.gpr[20] + static_cast(120), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[20] + static_cast(292), std::bit_cast(ctx.fpr[13])); goto L_0899F19C; L_0899F19C: // Keep both the persistent pitch and the history target on the safe side // without executing the game's stock upper-clamp branch. This is the // distinction between moving the freeze to 40 degrees and never entering // the problematic 45-degree endpoint at all. if (std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + 1104u)) > 1.0f) { const float safe_limit = vcs::vcs_ped_camera_up_limit_radians(); if (ctx.fpr[24] > safe_limit) ctx.fpr[24] = safe_limit; const float pitch = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + 120u)); if (pitch > safe_limit) { aot_mem.aot_store32(ctx.gpr[20] + 120u, std::bit_cast(safe_limit)); aot_mem.aot_store32(ctx.gpr[20] + 292u, 0u); } } ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(120))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13472))); ctx.fpr[12] = ctx.fpr[13] - ctx.fpr[12]; ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[12]) & 0x7FFFFFFFu); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[14])); // nop if (!ctx.fpu_condition()) { ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(120))); goto L_0899F1C8; } goto L_0899F1BC; L_0899F1BC: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13472))); aot_mem.aot_store32(ctx.gpr[20] + static_cast(120), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(120))); goto L_0899F1C8; L_0899F1C8: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13468))); aot_mem.aot_store32(ctx.gpr[28] + static_cast(-13472), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(124))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1096), ctx.gpr[22]); ctx.fpr[12] = ctx.fpr[13] - ctx.fpr[12]; ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[12]) & 0x7FFFFFFFu); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[14])); // nop { const bool branch_taken = !ctx.fpu_condition(); ctx.gpr[16] = (ctx.gpr[29] + static_cast(80)); if (branch_taken) { goto L_0899F200; } goto L_0899F1F0; } L_0899F1F0: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13468))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1096), ctx.gpr[22]); aot_mem.aot_store32(ctx.gpr[20] + static_cast(124), std::bit_cast(ctx.fpr[12])); ctx.gpr[16] = (ctx.gpr[29] + static_cast(80)); goto L_0899F200; L_0899F200: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(124))); aot_mem.aot_store32(ctx.gpr[28] + static_cast(-13468), std::bit_cast(ctx.fpr[12])); ctx.gpr[31] = (0x0899F210u); // nop if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem) && ctx.pc == 0x0899F210u) goto L_0899F210; return; L_0899F210: ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[31] = (0x0899F21Cu); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(120))); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem) && ctx.pc == 0x0899F21Cu) goto L_0899F21C; return; L_0899F21C: { const float fs = ctx.fpr[20]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[12]) ^ 0x80000000u); ctx.gpr[31] = (0x0899F22Cu); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(124))); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem) && ctx.pc == 0x0899F22Cu) goto L_0899F22C; return; L_0899F22C: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[31] = (0x0899F238u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(120))); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem) && ctx.pc == 0x0899F238u) goto L_0899F238; return; L_0899F238: { const float fs = ctx.fpr[26]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[13]) ^ 0x80000000u); ctx.gpr[31] = (0x0899F248u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(120))); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem) && ctx.pc == 0x0899F248u) goto L_0899F248; return; L_0899F248: aot_mem.aot_store32(ctx.gpr[29] + static_cast(32), std::bit_cast(ctx.fpr[22])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(36), std::bit_cast(ctx.fpr[20])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(40), std::bit_cast(ctx.fpr[0])); { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[31] = (0x0899F264u); ctx.gpr[4] = (ctx.gpr[20] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem) && ctx.pc == 0x0899F264u) goto L_0899F264; return; L_0899F264: ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1056))); aot_mem.aot_store8(ctx.gpr[22] + static_cast(88), static_cast(0u)); ctx.fpr[26] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(160))); aot_mem.aot_store8(ctx.gpr[22] + static_cast(2057), static_cast(0u)); ctx.gpr[4] = (std::bit_cast(ctx.fpr[26])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]); { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); ctx.gpr[17] = (ctx.gpr[29] + static_cast(64)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1044))); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(1064))); ctx.fpr[20] = ctx.fpr[12] + ctx.fpr[24]; ctx.gpr[31] = (0x0899F2B8u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(124))); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem) && ctx.pc == 0x0899F2B8u) goto L_0899F2B8; return; L_0899F2B8: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[31] = (0x0899F2C4u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[20])); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem) && ctx.pc == 0x0899F2C4u) goto L_0899F2C4; return; L_0899F2C4: { const float fs = ctx.fpr[22]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[12]) ^ 0x80000000u); ctx.gpr[31] = (0x0899F2D4u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(124))); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem) && ctx.pc == 0x0899F2D4u) goto L_0899F2D4; return; L_0899F2D4: ctx.fpr[28] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[31] = (0x0899F2E0u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[20])); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem) && ctx.pc == 0x0899F2E0u) goto L_0899F2E0; return; L_0899F2E0: { const float fs = ctx.fpr[28]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[13]) ^ 0x80000000u); ctx.gpr[31] = (0x0899F2F0u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[20])); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem) && ctx.pc == 0x0899F2F0u) goto L_0899F2F0; return; L_0899F2F0: aot_mem.aot_store32(ctx.gpr[29] + static_cast(80), std::bit_cast(ctx.fpr[24])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(84), std::bit_cast(ctx.fpr[22])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(88), std::bit_cast(ctx.fpr[0])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(1092))); ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]); { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1100))); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[31] = (0x0899F338u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(124))); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem) && ctx.pc == 0x0899F338u) goto L_0899F338; return; L_0899F338: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[31] = (0x0899F344u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[20])); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem) && ctx.pc == 0x0899F344u) goto L_0899F344; return; L_0899F344: { const float fs = ctx.fpr[22]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[12]) ^ 0x80000000u); ctx.gpr[31] = (0x0899F354u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(124))); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem) && ctx.pc == 0x0899F354u) goto L_0899F354; return; L_0899F354: ctx.fpr[28] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[31] = (0x0899F360u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[20])); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem) && ctx.pc == 0x0899F360u) goto L_0899F360; return; L_0899F360: { const float fs = ctx.fpr[28]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[13]) ^ 0x80000000u); ctx.gpr[31] = (0x0899F370u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[20])); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem) && ctx.pc == 0x0899F370u) goto L_0899F370; return; L_0899F370: aot_mem.aot_store32(ctx.gpr[29] + static_cast(32), std::bit_cast(ctx.fpr[24])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(36), std::bit_cast(ctx.fpr[22])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(40), std::bit_cast(ctx.fpr[0])); ctx.gpr[4] = (std::bit_cast(ctx.fpr[26])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]); { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1096))); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[20] + static_cast(400)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[4] = (15235u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 4719u); ctx.fpr[24] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast(112))); aot_mem.aot_store32(ctx.gpr[28] + static_cast(8068), ctx.gpr[4]); ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[29] + static_cast(1088))); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899F7B4; } goto L_0899F3D8; } L_0899F3D8: aot_mem.aot_store32(ctx.gpr[29] + static_cast(0), 0u); ctx.gpr[16] = (0u | 1u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(4), 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(8), ctx.gpr[16]); ctx.gpr[18] = (ctx.gpr[29] + static_cast(96)); ctx.gpr[17] = (ctx.gpr[29] + static_cast(128)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(12), 0u); ctx.gpr[4] = (ctx.gpr[21] | 0u); ctx.gpr[5] = (ctx.gpr[19] | 0u); ctx.gpr[6] = (ctx.gpr[18] | 0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); ctx.gpr[8] = (0u | 1u); ctx.gpr[9] = (0u | 1u); ctx.gpr[10] = (0u | 1u); ctx.gpr[11] = (0u | 1u); ctx.gpr[31] = (0x0899F41Cu); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), 0u); if (rt.invoke_chained_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem) && ctx.pc == 0x0899F41Cu) goto L_0899F41C; return; L_0899F41C: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0899F7B4; } goto L_0899F424; } L_0899F424: ctx.gpr[4] = (0u | 2u); aot_mem.aot_store32(ctx.gpr[28] + static_cast(-13476), ctx.gpr[4]); ctx.gpr[31] = (0x0899F434u); ctx.gpr[4] = (ctx.gpr[20] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 162u, 0x089994CCu>(ctx, &aot_mem) && ctx.pc == 0x0899F434u) goto L_0899F434; return; L_0899F434: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(400), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(404), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(408), std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (ctx.gpr[29] + static_cast(400)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(112))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(400), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(116))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(404), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(120))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(408), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13748))); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[0]; ctx.gpr[5] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[5]); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); ctx.gpr[5] = (ctx.gpr[29] + static_cast(416)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[31] = (0x0899F498u); ctx.gpr[4] = (ctx.gpr[19] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0163_entry, 163u, 463u, 0x08A931B8u>(ctx, &aot_mem) && ctx.pc == 0x0899F498u) goto L_0899F498; return; L_0899F498: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(384), std::bit_cast(ctx.fpr[13])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(388), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(392), std::bit_cast(ctx.fpr[12])); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(384)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(368)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i])); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[20] = std::bit_cast(ctx.gpr[4]); ctx.fpr[22] = ctx.fpr[26] - ctx.fpr[20]; ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(128))); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(72))); ctx.gpr[4] = (ctx.gpr[4] & 14u); ctx.gpr[4] = (ctx.gpr[4] ^ 6u); ctx.gpr[4] = (ctx.gpr[4] < static_cast(1) ? 1u : 0u); ctx.gpr[4] = (ctx.gpr[4] & 255u); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.gpr[4] = (16256u << 16u); if (branch_taken) { goto L_0899F6D4; } goto L_0899F500; } L_0899F500: ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[22] <= ctx.fpr[12])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899F6D4; } goto L_0899F514; } L_0899F514: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(128))); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); aot_mem.aot_store32(ctx.gpr[28] + static_cast(8068), ctx.gpr[4]); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(432), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(436), std::bit_cast(ctx.fpr[13])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(440), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(0), 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(4), 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(8), ctx.gpr[16]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(12), 0u); ctx.gpr[4] = (ctx.gpr[29] + static_cast(432)); ctx.gpr[5] = (ctx.gpr[19] | 0u); ctx.gpr[6] = (ctx.gpr[18] | 0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); ctx.gpr[8] = (0u | 1u); ctx.gpr[9] = (0u | 1u); ctx.gpr[10] = (0u | 1u); ctx.gpr[11] = (0u | 1u); ctx.gpr[31] = (0x0899F56Cu); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), 0u); if (rt.invoke_chained_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem) && ctx.pc == 0x0899F56Cu) goto L_0899F56C; return; L_0899F56C: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.gpr[4] = (16051u << 16u); if (branch_taken) { goto L_0899F698; } goto L_0899F574; } L_0899F574: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(448), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(452), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(456), std::bit_cast(ctx.fpr[12])); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(448)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[6] = (ctx.gpr[29] + static_cast(480)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_value[4]{}; vfpu_value[0u] = 1.0f; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 1u, 1u, 3u>(); ctx.execute_vfpu_vcmp_ct<28u, 32u, 1u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = 1.0f / std::sqrt(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.execute_vfpu_vscl_ct<1u, 1u, 28u, 3u>(); ctx.execute_vfpu_vcmov_ct<1u, 0u, 3u, 0u, false>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<1u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(448), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(452), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(456), std::bit_cast(ctx.fpr[12])); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[5] = (ctx.gpr[29] + static_cast(464)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i])); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.gpr[7] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[20] = std::bit_cast(ctx.gpr[7]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(448), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(452), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(456), std::bit_cast(ctx.fpr[12])); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[4] = (std::bit_cast(ctx.fpr[24])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]); { const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[31] = (0x0899F640u); ctx.gpr[4] = (ctx.gpr[19] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0163_entry, 163u, 463u, 0x08A931B8u>(ctx, &aot_mem) && ctx.pc == 0x0899F640u) goto L_0899F640; return; L_0899F640: ctx.gpr[4] = (16281u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 39322u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[20] < ctx.fpr[12])); // nop { const bool branch_taken = !ctx.fpu_condition(); ctx.gpr[4] = (16025u << 16u); if (branch_taken) { goto L_0899F690; } goto L_0899F65C; } L_0899F65C: ctx.gpr[4] = (ctx.gpr[4] | 39322u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.gpr[5] = (15692u << 16u); ctx.fpr[20] = ctx.fpr[20] - ctx.fpr[12]; ctx.gpr[5] = (ctx.gpr[5] | 52429u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(8896))); ctx.fpr[12] = std::bit_cast(ctx.gpr[5]); ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[20])); // nop if (!ctx.fpu_condition()) { ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[12])); goto L_0899F688; } goto L_0899F688; L_0899F688: ctx.gpr[31] = (0x0899F690u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[20])); if (rt.invoke_chained_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem) && ctx.pc == 0x0899F690u) goto L_0899F690; return; L_0899F690: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899F6CC; } goto L_0899F698; } L_0899F698: ctx.gpr[4] = (ctx.gpr[4] | 13107u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.gpr[5] = (16230u << 16u); ctx.fpr[13] = ctx.fpr[22] - ctx.fpr[13]; ctx.gpr[5] = (ctx.gpr[5] | 26214u); ctx.fpr[12] = std::bit_cast(ctx.gpr[5]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(8896))); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13])); // nop if (ctx.fpu_condition()) { ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[12])); goto L_0899F6C4; } goto L_0899F6C4; L_0899F6C4: ctx.gpr[31] = (0x0899F6CCu); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[13])); if (rt.invoke_chained_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem) && ctx.pc == 0x0899F6CCu) goto L_0899F6CC; return; L_0899F6CC: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899F7B4; } goto L_0899F6D4; } L_0899F6D4: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(512), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(516), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(520), std::bit_cast(ctx.fpr[12])); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(512)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[5] = (ctx.gpr[29] + static_cast(544)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_value[4]{}; vfpu_value[0u] = 1.0f; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 1u, 1u, 3u>(); ctx.execute_vfpu_vcmp_ct<28u, 32u, 1u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = 1.0f / std::sqrt(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.execute_vfpu_vscl_ct<1u, 1u, 28u, 3u>(); ctx.execute_vfpu_vcmov_ct<1u, 0u, 3u, 0u, false>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<1u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(512), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(516), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(520), std::bit_cast(ctx.fpr[12])); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[4] = (std::bit_cast(ctx.fpr[24])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]); { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); ctx.gpr[5] = (ctx.gpr[29] + static_cast(528)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[31] = (0x0899F764u); ctx.gpr[4] = (ctx.gpr[19] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0163_entry, 163u, 463u, 0x08A931B8u>(ctx, &aot_mem) && ctx.pc == 0x0899F764u) goto L_0899F764; return; L_0899F764: ctx.gpr[4] = (16281u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 39322u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[20] < ctx.fpr[12])); // nop { const bool branch_taken = !ctx.fpu_condition(); ctx.gpr[4] = (16025u << 16u); if (branch_taken) { goto L_0899F7B4; } goto L_0899F780; } L_0899F780: ctx.gpr[4] = (ctx.gpr[4] | 39322u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.gpr[5] = (15692u << 16u); ctx.fpr[13] = ctx.fpr[20] - ctx.fpr[13]; ctx.gpr[5] = (ctx.gpr[5] | 52429u); ctx.fpr[12] = std::bit_cast(ctx.gpr[5]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(8896))); ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13])); // nop if (!ctx.fpu_condition()) { ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[12])); goto L_0899F7AC; } goto L_0899F7AC; L_0899F7AC: ctx.gpr[31] = (0x0899F7B4u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[13])); if (rt.invoke_chained_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem) && ctx.pc == 0x0899F7B4u) goto L_0899F7B4; return; L_0899F7B4: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(176)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_value[4]{}; vfpu_value[0u] = 1.0f; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 1u, 1u, 3u>(); ctx.execute_vfpu_vcmp_ct<28u, 32u, 1u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = 1.0f / std::sqrt(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.execute_vfpu_vscl_ct<1u, 1u, 28u, 3u>(); ctx.execute_vfpu_vcmov_ct<1u, 0u, 3u, 0u, false>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<1u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } ctx.gpr[16] = (ctx.gpr[29] + static_cast(80)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i])); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[28] + static_cast(8068), 0u); ctx.gpr[4] = (16457u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(296))); { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.gpr[4] = (16128u << 16u); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (17204u << 16u); ctx.fpr[15] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] / ctx.fpr[15]; { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]); { const float vfpu_constant = std::bit_cast(0x3F22F983u); const float vfpu_value[4]{vfpu_constant, vfpu_constant, vfpu_constant, vfpu_constant}; ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); } ctx.execute_vfpu_vrot(1u, 64u, 2u, 4u); { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<33u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] / vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<0u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0899F874; } goto L_0899F86C; } L_0899F86C: ctx.gpr[31] = (0x0899F874u); // nop if (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 466u, 0x08B65E44u>(ctx, &aot_mem) && ctx.pc == 0x0899F874u) goto L_0899F874; return; L_0899F874: ctx.gpr[31] = (0x0899F87Cu); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(5876))); if (rt.invoke_chained_direct<&recomp_unit_0112_entry, 112u, 677u, 0x089C6F50u>(ctx, &aot_mem) && ctx.pc == 0x0899F87Cu) goto L_0899F87C; return; L_0899F87C: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0899F88C; } goto L_0899F884; } L_0899F884: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899F88C; } goto L_0899F88C; } L_0899F88C: ctx.gpr[31] = (0x0899F894u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(8896))); if (rt.invoke_chained_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem) && ctx.pc == 0x0899F894u) goto L_0899F894; return; L_0899F894: ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1112))); ctx.gpr[31] = (0x0899F8A0u); ctx.gpr[4] = (ctx.gpr[20] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 356u, 0x0899B100u>(ctx, &aot_mem) && ctx.pc == 0x0899F8A0u) goto L_0899F8A0; return; L_0899F8A0: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[31] = (0x0899F8C0u); ctx.gpr[4] = (ctx.gpr[20] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem) && ctx.pc == 0x0899F8C0u) goto L_0899F8C0; return; L_0899F8C0: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i])); ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (15395u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 55050u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[26]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13536))); ctx.fpr[13] = ctx.fpr[15] + ctx.fpr[13]; ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899F918; } goto L_0899F914; } L_0899F914: aot_mem.aot_store32(ctx.gpr[28] + static_cast(-13536), std::bit_cast(ctx.fpr[12])); goto L_0899F918; L_0899F918: aot_mem.aot_store8(ctx.gpr[22] + static_cast(88), static_cast(0u)); aot_mem.aot_store8(ctx.gpr[22] + static_cast(2057), static_cast(0u)); aot_mem.aot_store8(ctx.gpr[20] + static_cast(163), static_cast(0u)); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(-1044))); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0899F964; } goto L_0899F930; } L_0899F930: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(-1044))); ctx.gpr[5] = (0u | 4u); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[5]; // nop if (branch_taken) { goto L_0899F964; } goto L_0899F940; } L_0899F940: ctx.gpr[5] = (16025u << 16u); ctx.gpr[5] = (ctx.gpr[5] | 39322u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(8896))); ctx.gpr[31] = (0x0899F954u); ctx.fpr[12] = std::bit_cast(ctx.gpr[5]); if (rt.invoke_chained_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem) && ctx.pc == 0x0899F954u) goto L_0899F954; return; L_0899F954: ctx.gpr[5] = (17530u << 16u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(8896))); ctx.gpr[31] = (0x0899F964u); ctx.fpr[12] = std::bit_cast(ctx.gpr[5]); if (rt.invoke_chained_direct<&recomp_unit_0035_entry, 35u, 117u, 0x088907E8u>(ctx, &aot_mem) && ctx.pc == 0x0899F964u) goto L_0899F964; return; L_0899F964: ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1108))); ctx.gpr[4] = (0u | 1u); if (ctx.gpr[5] != 0u) { ctx.gpr[4] = (0u | 2u); goto L_0899F974; } goto L_0899F974; L_0899F974: ctx.gpr[6] = (ctx.gpr[4] | 0u); ctx.gpr[4] = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x0899F984u); ctx.gpr[5] = (ctx.gpr[21] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0105_entry, 105u, 31u, 0x089A8464u>(ctx, &aot_mem) && ctx.pc == 0x0899F984u) goto L_0899F984; return; L_0899F984: ctx.gpr[31] = (0x0899F98Cu); ctx.gpr[4] = (0u | 0u); if (rt.invoke_chained_direct<&recomp_unit_0097_entry, 97u, 828u, 0x0898B428u>(ctx, &aot_mem) && ctx.pc == 0x0899F98Cu) goto L_0899F98C; return; L_0899F98C: ctx.gpr[31] = (0x0899F994u); ctx.gpr[4] = (ctx.gpr[2] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0098_entry, 98u, 309u, 0x0898CE14u>(ctx, &aot_mem) && ctx.pc == 0x0899F994u) goto L_0899F994; return; L_0899F994: { const bool branch_taken = ctx.gpr[2] != 0u; // nop if (branch_taken) { goto L_0899F9A4; } goto L_0899F99C; } L_0899F99C: ctx.gpr[31] = (0x0899F9A4u); ctx.gpr[4] = (ctx.gpr[20] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0101_entry, 101u, 345u, 0x0899AF94u>(ctx, &aot_mem) && ctx.pc == 0x0899F9A4u) goto L_0899F9A4; return; L_0899F9A4: ctx.fpr[20] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(1116))); ctx.fpr[22] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(1120))); ctx.fpr[24] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(1124))); ctx.fpr[26] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(1128))); ctx.fpr[28] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(1132))); ctx.fpr[30] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(1136))); ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1140))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1144))); ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1148))); ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1152))); ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1156))); ctx.gpr[21] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1160))); ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1164))); ctx.gpr[23] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1168))); ctx.gpr[30] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1172))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(1176))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(1184)); local_pc = jump_target; if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0899F9EC: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-1040)); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(112))); ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast(72))); ctx.gpr[6] = (ctx.gpr[5] | 0u); ctx.gpr[5] = (ctx.gpr[7] & 14u); ctx.gpr[5] = (ctx.gpr[5] ^ 4u); ctx.gpr[5] = (ctx.gpr[5] < static_cast(1) ? 1u : 0u); ctx.gpr[5] = (ctx.gpr[5] & 255u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(972), std::bit_cast(ctx.fpr[20])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(976), std::bit_cast(ctx.fpr[22])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(980), std::bit_cast(ctx.fpr[24])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(984), std::bit_cast(ctx.fpr[26])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(988), std::bit_cast(ctx.fpr[28])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(992), std::bit_cast(ctx.fpr[30])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(996), ctx.gpr[16]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1000), ctx.gpr[17]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1004), ctx.gpr[18]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1008), ctx.gpr[19]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1012), ctx.gpr[20]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1016), ctx.gpr[21]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1020), ctx.gpr[22]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1024), ctx.gpr[23]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1028), ctx.gpr[30]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(1032), ctx.gpr[31]); { const bool branch_taken = ctx.gpr[5] == 0u; aot_mem.aot_store32(ctx.gpr[29] + static_cast(908), ctx.gpr[4]); if (branch_taken) { goto L_0899FB04; } goto L_0899FA54; } L_0899FA54: ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(908))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(960), ctx.gpr[6]); ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast(112))); { const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(96)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[31] = (0x0899FA74u); ctx.gpr[4] = (0u | 0u); if (rt.invoke_chained_direct<&recomp_unit_0097_entry, 97u, 828u, 0x0898B428u>(ctx, &aot_mem) && ctx.pc == 0x0899FA74u) goto L_0899FA74; return; L_0899FA74: ctx.gpr[21] = (ctx.gpr[2] | 0u); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(86)))))); ctx.gpr[20] = (0u | 0u); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(7656))); ctx.gpr[6] = (static_cast(ctx.gpr[4]) < static_cast(ctx.gpr[5]) ? 1u : 0u); ctx.gpr[5] = (2236u << 16u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(32304)); ctx.gpr[18] = (2234u << 16u); ctx.gpr[18] = (ctx.gpr[18] + static_cast(5504)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(928), ctx.gpr[5]); ctx.fpr[24] = std::bit_cast(0u); ctx.gpr[17] = (0u | 192u); ctx.gpr[5] = (16256u << 16u); ctx.fpr[20] = std::bit_cast(ctx.gpr[5]); ctx.gpr[5] = (16384u << 16u); ctx.fpr[26] = std::bit_cast(ctx.gpr[5]); ctx.gpr[5] = (17036u << 16u); ctx.fpr[28] = std::bit_cast(ctx.gpr[5]); ctx.gpr[23] = (ctx.gpr[16] + static_cast(320)); ctx.gpr[5] = (16329u << 16u); ctx.gpr[5] = (ctx.gpr[5] | 4059u); ctx.fpr[30] = std::bit_cast(ctx.gpr[5]); ctx.gpr[5] = (ctx.gpr[19] + static_cast(16)); ctx.gpr[7] = (ctx.gpr[19] + static_cast(528)); ctx.gpr[8] = (ctx.gpr[19] + static_cast(544)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(912), ctx.gpr[5]); ctx.gpr[22] = (ctx.gpr[29] + static_cast(32)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(948), ctx.gpr[7]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(952), ctx.gpr[8]); ctx.gpr[5] = (0u | 4u); ctx.gpr[30] = (ctx.gpr[29] + static_cast(64)); ctx.gpr[7] = (ctx.gpr[19] + static_cast(32)); { const bool branch_taken = ctx.gpr[6] != 0u; aot_mem.aot_store32(ctx.gpr[29] + static_cast(916), ctx.gpr[7]); if (branch_taken) { goto L_0899FB0C; } goto L_0899FAFC; } L_0899FAFC: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899FB1C; } goto L_0899FB04; } L_0899FB04: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { (void)rt.invoke_chained_direct<&recomp_unit_0103_entry, 103u, 274u, 0x089A1A6Cu>(ctx, &aot_mem); return; } goto L_0899FB0C; } L_0899FB0C: ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast(24))); ctx.gpr[4] = (ctx.gpr[4] << 2u); ctx.gpr[4] = (ctx.gpr[6] + ctx.gpr[4]); ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); goto L_0899FB1C; L_0899FB1C: ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast(20))); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(86)))))); ctx.gpr[6] = (0u + static_cast(-943)); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[6]; ctx.gpr[19] = (0u | 0u); if (branch_taken) { goto L_0899FB40; } goto L_0899FB30; } L_0899FB30: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(86)))))); ctx.gpr[6] = (0u + static_cast(-984)); { const bool branch_taken = ctx.gpr[4] != ctx.gpr[6]; // nop if (branch_taken) { goto L_0899FB48; } goto L_0899FB40; } L_0899FB40: { const bool branch_taken = 0u == 0u; ctx.gpr[19] = (0u | 6u); if (branch_taken) { goto L_0899FBC4; } goto L_0899FB48; } L_0899FB48: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(86)))))); ctx.gpr[6] = (0u + static_cast(-972)); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[6]; // nop if (branch_taken) { goto L_0899FB68; } goto L_0899FB58; } L_0899FB58: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(86)))))); ctx.gpr[6] = (0u + static_cast(-971)); { const bool branch_taken = ctx.gpr[4] != ctx.gpr[6]; // nop if (branch_taken) { goto L_0899FB70; } goto L_0899FB68; } L_0899FB68: { const bool branch_taken = 0u == 0u; ctx.gpr[19] = (0u | 7u); if (branch_taken) { goto L_0899FBC4; } goto L_0899FB70; } L_0899FB70: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(852))); ctx.gpr[6] = (0u | 6u); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[6]; // nop if (branch_taken) { goto L_0899FB90; } goto L_0899FB80; } L_0899FB80: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(86)))))); ctx.gpr[6] = (0u | 230u); { const bool branch_taken = ctx.gpr[4] != ctx.gpr[6]; // nop if (branch_taken) { goto L_0899FB98; } goto L_0899FB90; } L_0899FB90: { const bool branch_taken = 0u == 0u; ctx.gpr[19] = (0u | 1u); if (branch_taken) { goto L_0899FBC4; } goto L_0899FB98; } L_0899FB98: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(852))); ctx.gpr[6] = (0u | 1u); { const bool branch_taken = ctx.gpr[4] != ctx.gpr[6]; // nop if (branch_taken) { goto L_0899FBB0; } goto L_0899FBA8; } L_0899FBA8: { const bool branch_taken = 0u == 0u; ctx.gpr[19] = (ctx.gpr[5] | 0u); if (branch_taken) { goto L_0899FBC4; } goto L_0899FBB0; } L_0899FBB0: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(852))); ctx.gpr[5] = (0u | 2u); { const bool branch_taken = ctx.gpr[4] != ctx.gpr[5]; // nop if (branch_taken) { goto L_0899FBC4; } goto L_0899FBC0; } L_0899FBC0: ctx.gpr[19] = (0u | 5u); goto L_0899FBC4; L_0899FBC4: aot_mem.aot_store32(ctx.gpr[29] + static_cast(964), ctx.gpr[30]); ctx.gpr[4] = (ctx.gpr[19] << 6u); ctx.gpr[5] = (ctx.gpr[19] << 2u); ctx.gpr[30] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(928))); ctx.gpr[4] = (ctx.gpr[4] - ctx.gpr[5]); ctx.fpr[22] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[30] + static_cast(2132))); ctx.gpr[18] = (ctx.gpr[4] + ctx.gpr[18]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[18] + static_cast(4))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(116), 0u); ctx.fpr[22] = ctx.fpr[22] + ctx.fpr[12]; ctx.gpr[31] = (0x0899FBF4u); ctx.gpr[4] = (ctx.gpr[16] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0191_entry, 191u, 504u, 0x08B01E00u>(ctx, &aot_mem) && ctx.pc == 0x0899FBF4u) goto L_0899FBF4; return; L_0899FBF4: ctx.gpr[6] = (ctx.gpr[29] + static_cast(116)); ctx.gpr[4] = (ctx.gpr[30] | 0u); ctx.gpr[31] = (0x0899FC04u); ctx.gpr[5] = (ctx.gpr[2] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0134_entry, 134u, 283u, 0x08A1D810u>(ctx, &aot_mem) && ctx.pc == 0x0899FC04u) goto L_0899FC04; return; L_0899FC04: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(72))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(932), std::bit_cast(ctx.fpr[24])); ctx.gpr[4] = (ctx.gpr[4] & 496u); { const bool branch_taken = ctx.gpr[4] != ctx.gpr[17]; ctx.gpr[30] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(964))); if (branch_taken) { goto L_0899FC3C; } goto L_0899FC18; } L_0899FC18: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(116))); ctx.gpr[5] = (2232u << 16u); ctx.gpr[4] = (ctx.gpr[4] << 2u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(-4772)); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); ctx.fpr[12] = ctx.fpr[24] + ctx.fpr[12]; { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[29] + static_cast(932), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899FCEC; } goto L_0899FC3C; } L_0899FC3C: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(928))); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(1944))); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[20])) && ctx.fpr[12] == ctx.fpr[20])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899FC78; } goto L_0899FC54; } L_0899FC54: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(116))); ctx.gpr[5] = (2232u << 16u); ctx.gpr[4] = (ctx.gpr[4] << 2u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(-4792)); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); ctx.fpr[12] = ctx.fpr[24] + ctx.fpr[12]; { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[29] + static_cast(932), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899FCEC; } goto L_0899FC78; } L_0899FC78: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(1944))); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[26])) && ctx.fpr[12] == ctx.fpr[26])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899FCB0; } goto L_0899FC8C; } L_0899FC8C: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(116))); ctx.gpr[5] = (2232u << 16u); ctx.gpr[4] = (ctx.gpr[4] << 2u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(-4772)); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); ctx.fpr[12] = ctx.fpr[24] + ctx.fpr[12]; { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[29] + static_cast(932), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899FCEC; } goto L_0899FCB0; } L_0899FCB0: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(1944))); ctx.gpr[4] = (16448u << 16u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[13])) && ctx.fpr[12] == ctx.fpr[13])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899FCEC; } goto L_0899FCCC; } L_0899FCCC: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(116))); ctx.gpr[5] = (2232u << 16u); ctx.gpr[4] = (ctx.gpr[4] << 2u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(-4752)); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); ctx.fpr[12] = ctx.fpr[24] + ctx.fpr[12]; aot_mem.aot_store32(ctx.gpr[29] + static_cast(932), std::bit_cast(ctx.fpr[12])); goto L_0899FCEC; L_0899FCEC: ctx.fpr[20] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(40))); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[20] + static_cast(20))); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[12]) & 0x7FFFFFFFu); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(928))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(1944))); ctx.gpr[4] = (16256u << 16u); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[13]) || std::isnan(ctx.fpr[14])) && ctx.fpr[13] == ctx.fpr[14])); // nop { const bool branch_taken = !ctx.fpu_condition(); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } if (branch_taken) { goto L_0899FD34; } goto L_0899FD18; } L_0899FD18: ctx.gpr[4] = (0u | 5u); { const bool branch_taken = ctx.gpr[19] != ctx.gpr[4]; // nop if (branch_taken) { goto L_0899FD34; } goto L_0899FD24; } L_0899FD24: ctx.gpr[4] = (16320u << 16u); { const float fs = ctx.fpr[20]; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast(0x7FC00000u); else ctx.fpr[20] = fs * ft; } ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } goto L_0899FD34; L_0899FD34: ctx.fpr[26] = ctx.fpr[12] + ctx.fpr[22]; ctx.gpr[4] = (ctx.gpr[16] | 0u); ctx.fpr[22] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[18] + static_cast(12))); ctx.gpr[31] = (0x0899FD48u); { const float fs = ctx.fpr[22]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } if (rt.invoke_chained_direct<&recomp_unit_0191_entry, 191u, 504u, 0x08B01E00u>(ctx, &aot_mem) && ctx.pc == 0x0899FD48u) goto L_0899FD48; return; L_0899FD48: ctx.gpr[4] = (0u | 3u); if (ctx.gpr[2] != ctx.gpr[4]) { ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[18] + static_cast(0))); goto L_0899FDAC; } goto L_0899FD54; L_0899FD54: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(72))); ctx.gpr[4] = (ctx.gpr[4] & 496u); if (ctx.gpr[4] == ctx.gpr[17]) { ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[18] + static_cast(0))); goto L_0899FDAC; } goto L_0899FD64; L_0899FD64: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13724))); ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[16] + static_cast(32)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); ctx.gpr[4] = (ctx.gpr[29] + static_cast(224)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[5] = (std::bit_cast(ctx.fpr[20])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[5]); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); ctx.gpr[5] = (ctx.gpr[29] + static_cast(208)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(0); aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast(vfpu_value[0])); aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast(vfpu_value[1])); aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast(vfpu_value[2])); aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast(vfpu_value[3])); } ctx.gpr[31] = (0x0899FDA4u); ctx.gpr[4] = (ctx.gpr[29] + static_cast(96)); if (rt.invoke_chained_direct<&recomp_unit_0163_entry, 163u, 463u, 0x08A931B8u>(ctx, &aot_mem) && ctx.pc == 0x0899FDA4u) goto L_0899FDA4; return; L_0899FDA4: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0899FDF0; } goto L_0899FDAC; } L_0899FDAC: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[18] + static_cast(8))); { const float fs = ctx.fpr[20]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast(0x7FC00000u); else ctx.fpr[20] = fs * ft; } ctx.fpr[20] = ctx.fpr[20] - ctx.fpr[13]; ctx.set_fpu_condition((ctx.fpr[20] <= ctx.fpr[24])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899FDF0; } goto L_0899FDC8; } L_0899FDC8: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13428))); ctx.fpr[26] = ctx.fpr[26] + ctx.fpr[20]; { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } ctx.fpr[12] = ctx.fpr[12] / ctx.fpr[26]; ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(932))); ctx.fpr[13] = ctx.fpr[13] + ctx.fpr[20]; aot_mem.aot_store32(ctx.gpr[29] + static_cast(104), std::bit_cast(ctx.fpr[13])); ctx.fpr[12] = ctx.fpr[14] + ctx.fpr[12]; aot_mem.aot_store32(ctx.gpr[29] + static_cast(932), std::bit_cast(ctx.fpr[12])); goto L_0899FDF0; L_0899FDF0: ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(928))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(1944))); ctx.gpr[4] = (16256u << 16u); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[13]) || std::isnan(ctx.fpr[14])) && ctx.fpr[13] == ctx.fpr[14])); // nop { const bool branch_taken = !ctx.fpu_condition(); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[18] + static_cast(16))); if (branch_taken) { goto L_0899FE30; } goto L_0899FE10; } L_0899FE10: { const bool branch_taken = ctx.gpr[19] == 0u; ctx.gpr[4] = (0u | 1u); if (branch_taken) { goto L_0899FE20; } goto L_0899FE18; } L_0899FE18: { const bool branch_taken = ctx.gpr[19] != ctx.gpr[4]; // nop if (branch_taken) { goto L_0899FE30; } goto L_0899FE20; } L_0899FE20: ctx.gpr[4] = (16166u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 26214u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast(0x7FC00000u); else ctx.fpr[12] = fs * ft; } goto L_0899FE30; L_0899FE30: ctx.set_fpu_condition((ctx.fpr[26] <= ctx.fpr[12])); // nop if (!ctx.fpu_condition()) { ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[26])); goto L_0899FE40; } goto L_0899FE40; L_0899FE40: ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(908))); ctx.gpr[4] = (16480u << 16u); aot_mem.aot_store32(ctx.gpr[17] + static_cast(312), std::bit_cast(ctx.fpr[26])); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[17] + static_cast(308), std::bit_cast(ctx.fpr[13])); ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[17] + static_cast(163))); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899FE68; } goto L_0899FE60; } L_0899FE60: { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[17] + static_cast(296), std::bit_cast(ctx.fpr[28])); if (branch_taken) { goto L_0899FFEC; } goto L_0899FE68; } L_0899FE68: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(852))); ctx.gpr[6] = (17096u << 16u); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.fpr[12] = std::bit_cast(ctx.gpr[6]); if (branch_taken) { goto L_0899FE88; } goto L_0899FE78; } L_0899FE78: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(852))); ctx.gpr[6] = (0u | 6u); { const bool branch_taken = ctx.gpr[4] != ctx.gpr[6]; // nop if (branch_taken) { goto L_0899FEE8; } goto L_0899FE88; } L_0899FE88: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[16] + static_cast(16)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>(); ctx.gpr[6] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[13] = std::bit_cast(ctx.gpr[6]); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13672))); ctx.set_fpu_condition((ctx.fpr[13] <= ctx.fpr[14])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899FEE8; } goto L_0899FEB4; } L_0899FEB4: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(296))); { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>(); ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13672))); ctx.fpr[14] = ctx.fpr[14] - ctx.fpr[15]; ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast(0x7FC00000u); else ctx.fpr[14] = fs * ft; } ctx.fpr[13] = ctx.fpr[13] + ctx.fpr[14]; { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[17] + static_cast(296), std::bit_cast(ctx.fpr[13])); if (branch_taken) { goto L_0899FF64; } goto L_0899FEE8; } L_0899FEE8: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(852))); ctx.gpr[6] = (0u | 2u); { const bool branch_taken = ctx.gpr[4] != ctx.gpr[6]; // nop if (branch_taken) { goto L_0899FF64; } goto L_0899FEF8; } L_0899FEF8: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[4] = (ctx.gpr[16] + static_cast(16)); { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>(); ctx.gpr[6] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[13] = std::bit_cast(ctx.gpr[6]); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13664))); ctx.set_fpu_condition((ctx.fpr[13] <= ctx.fpr[14])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899FF64; } goto L_0899FF24; } L_0899FF24: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(296))); { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast(0); float vfpu_value[4]{ std::bit_cast(aot_mem.aot_load32(vfpu_address + 0u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 4u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 8u)), std::bit_cast(aot_mem.aot_load32(vfpu_address + 12u))}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>(); ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (16268u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 52429u); ctx.fpr[15] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast(0x7FC00000u); else ctx.fpr[14] = fs * ft; } ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13664))); ctx.fpr[14] = ctx.fpr[14] - ctx.fpr[16]; ctx.fpr[17] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[17]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast(0x7FC00000u); else ctx.fpr[14] = fs * ft; } ctx.fpr[13] = ctx.fpr[13] + ctx.fpr[14]; aot_mem.aot_store32(ctx.gpr[17] + static_cast(296), std::bit_cast(ctx.fpr[13])); goto L_0899FF64; L_0899FF64: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(296))); ctx.set_fpu_condition((ctx.fpr[13] <= ctx.fpr[28])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899FFB8; } goto L_0899FF78; } L_0899FF78: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(-13668))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[28] + static_cast(7676))); ctx.gpr[4] = (std::bit_cast(ctx.fpr[13])); ctx.gpr[6] = (std::bit_cast(ctx.fpr[14])); ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]); ctx.set_vfpu_scalar_bits_ct<32u>(ctx.gpr[6]); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::log2(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 0u>(vfpu_s); ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 1u>(vfpu_t); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 1u>(vfpu_d); } { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::exp2(vfpu_s[i]); ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_d); } ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<32u>()); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(296))); ctx.fpr[14] = ctx.fpr[14] - ctx.fpr[28]; { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } ctx.fpr[13] = ctx.fpr[13] + ctx.fpr[28]; aot_mem.aot_store32(ctx.gpr[17] + static_cast(296), std::bit_cast(ctx.fpr[13])); goto L_0899FFB8; L_0899FFB8: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(296))); ctx.set_fpu_condition((ctx.fpr[13] <= ctx.fpr[12])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899FFD4; } goto L_0899FFCC; } L_0899FFCC: { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[17] + static_cast(296), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0899FFEC; } goto L_0899FFD4; } L_0899FFD4: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(296))); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[28])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0899FFEC; } goto L_0899FFE8; } L_0899FFE8: aot_mem.aot_store32(ctx.gpr[17] + static_cast(296), std::bit_cast(ctx.fpr[28])); goto L_0899FFEC; L_0899FFEC: ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[17] + static_cast(163))); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { (void)rt.invoke_chained_direct<&recomp_unit_0103_entry, 103u, 5u, 0x089A002Cu>(ctx, &aot_mem); return; } goto L_0899FFF8; } L_0899FFF8: ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[5] + static_cast(88))); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { (void)rt.invoke_chained_direct<&recomp_unit_0103_entry, 103u, 5u, 0x089A002Cu>(ctx, &aot_mem); return; } (void)rt.invoke_chained_direct<&recomp_unit_0103_entry, 103u, 1u, 0x089A0004u>(ctx, &aot_mem); return; } } void recomp_unit_0102(Runtime &rt, AllegrexContext &ctx) { auto aot_mem = rt.memory().aot_fast_view(); recomp_unit_0102_entry(rt, ctx, 0u, aot_mem); } void register_generated_unit_102(Runtime &runtime) { runtime.register_generated_unit(102u, 0x0899C000u, 16384u, &recomp_unit_0102, &recomp_unit_0102_entry); runtime.register_function(0x0899C000u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C008u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C010u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C01Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C024u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C030u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C038u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C044u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C04Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C058u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C060u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C06Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C074u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C0CCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C0D8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C0E0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C0ECu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C0F4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C104u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C118u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C12Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C168u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C170u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C184u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C1C0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C1D8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C1E0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C1F0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C200u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C208u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C244u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C25Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C268u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C27Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C294u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C2A0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C2B8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C2D8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C328u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C33Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C34Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C35Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C36Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C370u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C38Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C398u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C3B8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C3C0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C3CCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C3E0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C3E4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C3ECu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C3F8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C40Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C410u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C418u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C420u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C428u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C430u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C43Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C44Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C454u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C460u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C470u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C480u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C48Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C494u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C49Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C4A4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C4ACu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C4B8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C4C8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C4D8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C4E4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C4ECu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C4F4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C4FCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C504u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C510u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C520u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C530u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C53Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C54Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C55Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C564u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C574u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C594u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C59Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C5A4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C5ACu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C5C4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C5CCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C5D8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C5E8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C5F0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C5F8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C608u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C618u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C628u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C638u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C648u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C658u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C668u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C670u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C678u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C680u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C6A0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C6ECu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C704u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C724u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C72Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C734u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C758u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C77Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C784u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C78Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C794u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C79Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C7A0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C7A8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C7B0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C7B8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C7CCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C7D8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C7E0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C7E8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C7ECu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C7F0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C7F8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C800u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C82Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C854u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C858u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C86Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C878u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C880u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C8A0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C8B0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C8C8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C8D8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C8DCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C8E8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C8F4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C908u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C910u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C920u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C934u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C948u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C95Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C9D0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899C9D4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CA04u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CA50u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CA6Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CA88u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CA90u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CA98u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CAA0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CAA4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CAD0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CB00u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CB1Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CB24u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CB2Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CB34u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CB38u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CB40u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CB4Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CB90u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CBA8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CBDCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CBF0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CC04u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CC0Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CC14u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CC1Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CC2Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CC34u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CC40u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CC98u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CCF8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CD1Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CD4Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CD58u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CD6Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CD74u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CD88u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CD94u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CDA8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CDB8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CDC8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CDCCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CDE8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CDF4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CE88u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CE94u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CEA4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CEBCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CF04u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CF20u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CF30u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CF38u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CF70u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CF84u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CF8Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CF90u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CF98u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CF9Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CFDCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CFF0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899CFF8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D000u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D004u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D010u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D034u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D090u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D0B8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D0C0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D0C8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D0D0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D0E8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D0F0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D10Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D120u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D13Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D14Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D160u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D168u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D184u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D18Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D1A0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D1B0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D1BCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D1E0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D1F4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D218u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D228u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D244u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D24Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D260u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D270u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D27Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D28Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D294u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D29Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D2B0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D2B8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D344u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D360u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D364u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D3D8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D3E0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D3F4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D40Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D414u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D42Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D45Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D480u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D4B0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D4D4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D4D8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D504u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D544u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D58Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D5D0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D714u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D71Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D72Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D768u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D76Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D788u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D7A0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D7ACu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D7C0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D874u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D87Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D8E4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D968u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D978u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D988u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D990u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D998u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899D9A0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DAC4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DB04u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DB0Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DB74u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DB78u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DBBCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DC28u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DC3Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DC98u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DCA0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DD28u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DD54u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DD5Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DD64u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DD90u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DD98u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DDA0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DDE4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DE10u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DE18u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DE98u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DEC4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DF20u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DF28u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DF30u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DF38u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DF40u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DF5Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DF68u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DF98u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DFA0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DFA4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899DFE4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E04Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E054u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E05Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E0ACu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E0B4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E0BCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E0C4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E0D4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E0E8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E0F8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E0FCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E114u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E12Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E134u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E16Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E19Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E1E4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E268u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E28Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E2C4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E2CCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E314u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E324u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E330u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E348u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E34Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E358u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E364u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E37Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E384u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E38Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E394u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E3A0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E3ACu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E3B8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E3C0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E3E4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E3F0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E400u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E404u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E408u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E450u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E454u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E470u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E480u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E49Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E4ACu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E4C8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E4D4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E4E0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E4F0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E4F8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E51Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E52Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E544u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E554u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E558u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E570u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E590u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E5A4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E5B8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E5C0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E5E4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E5ECu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E5F0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E600u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E60Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E618u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E624u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E64Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E664u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E674u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E67Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E684u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E688u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E69Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E6B0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E6C8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E6D0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E6D8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E6E4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E6F4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E700u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E710u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E79Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E7A8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E81Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E830u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E840u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E844u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E874u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E884u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E88Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E894u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E898u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E8B8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E8C8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E8E0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E8F0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E8F8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E900u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E904u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E928u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E940u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E95Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E974u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E998u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E9A8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E9D0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E9D4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E9ECu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E9F4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899E9FCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EA04u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EA0Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EA20u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EA2Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EA40u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EA50u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EA5Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EA68u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EA94u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EAB4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EAB8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EAD8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EAE4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EAF4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EAF8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EB10u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EB20u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EB38u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EB50u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EB58u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EB60u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EB6Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EBB0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EBB8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EBE0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EBE4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EBF8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EC00u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EC14u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EC18u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EC1Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EC40u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EC54u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EC6Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EC7Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EC98u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899ECA0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899ECA8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899ECC8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899ECD8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899ED18u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899ED44u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899ED74u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EDD0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EDE4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EDF8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EE08u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EE14u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EE24u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EE38u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EE5Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EE64u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EE78u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EE7Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EE80u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EE9Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EEA4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EEBCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EEC0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EF14u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EF1Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EF30u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EF34u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EF3Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EF50u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EF5Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EF64u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899EF6Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F01Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F024u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F038u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F03Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F040u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F070u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F078u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F080u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F088u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F0A0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F0A8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F0BCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F0D4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F0F4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F0FCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F114u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F118u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F13Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F144u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F16Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F178u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F194u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F19Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F1BCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F1C8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F1F0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F200u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F210u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F21Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F22Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F238u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F248u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F264u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F2B8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F2C4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F2D4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F2E0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F2F0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F338u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F344u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F354u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F360u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F370u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F3D8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F41Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F424u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F434u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F498u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F500u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F514u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F56Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F574u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F640u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F65Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F688u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F690u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F698u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F6C4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F6CCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F6D4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F764u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F780u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F7ACu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F7B4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F86Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F874u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F87Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F884u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F88Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F894u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F8A0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F8C0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F914u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F918u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F930u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F940u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F954u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F964u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F974u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F984u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F98Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F994u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F99Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F9A4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899F9ECu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FA54u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FA74u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FAFCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FB04u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FB0Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FB1Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FB30u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FB40u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FB48u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FB58u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FB68u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FB70u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FB80u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FB90u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FB98u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FBA8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FBB0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FBC0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FBC4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FBF4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FC04u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FC18u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FC3Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FC54u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FC78u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FC8Cu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FCB0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FCCCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FCECu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FD18u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FD24u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FD34u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FD48u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FD54u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FD64u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FDA4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FDACu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FDC8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FDF0u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FE10u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FE18u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FE20u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FE30u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FE40u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FE60u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FE68u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FE78u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FE88u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FEB4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FEE8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FEF8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FF24u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FF64u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FF78u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FFB8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FFCCu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FFD4u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FFE8u, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FFECu, &recomp_unit_0102, "recomp_unit_0102"); runtime.register_function(0x0899FFF8u, &recomp_unit_0102, "recomp_unit_0102"); } } // namespace psprecomp