#include "psprecomp/runtime.hpp" #include "generated_units.hpp" #include #include #include #include namespace psprecomp { static const std::uint16_t kEntryIds_recomp_unit_0001[4096] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 15, 0, 16, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 19, 0, 0, 20, 0, 0, 0, 21, 0, 0, 22, 0, 0, 0, 0, 0, 0, 23, 0, 0, 24, 0, 0, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 27, 0, 0, 28, 0, 0, 29, 0, 0, 30, 0, 0, 31, 0, 0, 0, 0, 32, 0, 0, 33, 0, 0, 34, 0, 0, 35, 0, 0, 0, 0, 0, 36, 0, 37, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 42, 0, 43, 0, 0, 0, 0, 44, 0, 45, 0, 0, 0, 0, 46, 0, 47, 0, 0, 0, 0, 0, 48, 0, 0, 49, 0, 0, 0, 0, 0, 50, 0, 0, 51, 0, 0, 0, 0, 0, 52, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 62, 0, 63, 0, 64, 0, 65, 0, 0, 0, 66, 0, 0, 0, 0, 67, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 70, 0, 0, 0, 0, 0, 71, 0, 72, 0, 0, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 77, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 83, 0, 84, 0, 85, 0, 86, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 92, 0, 0, 0, 0, 0, 93, 0, 0, 0, 94, 0, 0, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 97, 0, 0, 0, 98, 0, 99, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 104, 0, 0, 0, 105, 0, 106, 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 117, 0, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 0, 120, 121, 0, 0, 0, 0, 0, 122, 0, 123, 0, 0, 0, 124, 0, 0, 0, 0, 0, 125, 0, 126, 0, 0, 0, 0, 0, 127, 0, 128, 0, 0, 0, 129, 0, 0, 0, 0, 0, 130, 0, 131, 0, 0, 0, 0, 0, 132, 0, 133, 0, 0, 0, 134, 0, 0, 0, 0, 0, 135, 0, 136, 0, 0, 0, 0, 0, 137, 0, 138, 0, 0, 0, 139, 0, 0, 0, 0, 0, 140, 0, 141, 0, 0, 0, 0, 0, 142, 0, 143, 0, 0, 0, 144, 0, 0, 0, 0, 0, 145, 0, 146, 0, 0, 0, 0, 0, 147, 0, 148, 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, 0, 150, 0, 0, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 0, 153, 0, 0, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, 0, 160, 0, 0, 0, 0, 0, 161, 0, 162, 0, 0, 0, 0, 163, 0, 164, 0, 0, 165, 0, 0, 166, 0, 0, 0, 0, 167, 0, 168, 0, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, 172, 0, 0, 0, 173, 0, 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, 175, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 181, 0, 0, 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, 0, 0, 0, 0, 0, 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, 191, 0, 192, 0, 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 195, 0, 196, 0, 0, 197, 0, 0, 198, 0, 0, 0, 0, 0, 199, 0, 0, 0, 200, 0, 0, 0, 201, 0, 0, 0, 202, 0, 203, 0, 0, 204, 0, 0, 0, 205, 0, 206, 0, 207, 0, 0, 0, 0, 0, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, 0, 211, 0, 212, 213, 0, 0, 0, 0, 214, 0, 215, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 217, 0, 218, 219, 0, 0, 0, 0, 0, 220, 0, 221, 0, 0, 0, 222, 0, 0, 0, 0, 0, 223, 0, 224, 0, 0, 0, 0, 0, 225, 0, 226, 0, 0, 0, 227, 0, 0, 0, 0, 0, 228, 0, 229, 0, 0, 0, 0, 0, 230, 0, 231, 0, 0, 0, 232, 0, 0, 0, 0, 0, 233, 0, 234, 0, 0, 0, 0, 0, 235, 0, 236, 0, 0, 0, 237, 0, 0, 0, 0, 0, 238, 0, 239, 0, 0, 0, 0, 0, 240, 0, 241, 0, 0, 0, 242, 0, 0, 0, 0, 0, 243, 0, 244, 0, 0, 0, 0, 0, 245, 0, 246, 0, 0, 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, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 251, 0, 0, 252, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 256, 0, 0, 257, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 260, 0, 0, 0, 0, 0, 0, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 262, 263, 0, 0, 0, 0, 0, 0, 264, 0, 265, 0, 0, 266, 0, 0, 0, 0, 0, 267, 0, 0, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 269, 0, 0, 0, 0, 0, 0, 270, 0, 0, 0, 0, 0, 0, 0, 271, 0, 0, 0, 0, 0, 0, 272, 0, 0, 273, 0, 0, 274, 275, 0, 0, 0, 0, 0, 276, 0, 0, 0, 277, 278, 0, 279, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 281, 0, 0, 0, 282, 0, 0, 283, 0, 0, 284, 0, 0, 0, 0, 285, 0, 286, 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 288, 0, 0, 0, 0, 0, 0, 289, 0, 0, 0, 0, 0, 290, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 292, 0, 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 0, 295, 0, 296, 297, 0, 0, 0, 0, 0, 0, 0, 298, 0, 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, 300, 0, 0, 0, 301, 0, 0, 302, 0, 303, 304, 0, 305, 0, 306, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 0, 0, 309, 0, 0, 0, 0, 310, 0, 0, 0, 0, 311, 0, 312, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, 314, 0, 0, 315, 0, 316, 0, 317, 0, 0, 0, 0, 0, 318, 0, 319, 0, 320, 0, 321, 0, 0, 0, 0, 0, 322, 0, 0, 323, 0, 0, 0, 0, 0, 0, 324, 0, 0, 325, 0, 0, 0, 0, 326, 327, 328, 0, 329, 0, 330, 0, 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 332, 0, 0, 333, 0, 0, 334, 0, 335, 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, 337, 0, 0, 338, 0, 0, 339, 0, 340, 0, 341, 0, 0, 342, 0, 343, 0, 344, 0, 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 346, 0, 0, 0, 0, 0, 0, 0, 0, 347, 0, 0, 0, 0, 0, 0, 0, 348, 0, 0, 0, 0, 0, 0, 0, 0, 349, 0, 0, 0, 350, 0, 351, 0, 352, 0, 353, 0, 0, 0, 0, 354, 0, 0, 0, 355, 0, 0, 0, 356, 0, 0, 0, 357, 0, 0, 0, 0, 358, 0, 359, 0, 0, 360, 0, 361, 0, 362, 0, 363, 0, 0, 0, 364, 0, 0, 0, 0, 365, 366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 369, 0, 370, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 371, 0, 0, 0, 0, 0, 372, 0, 0, 373, 0, 0, 0, 374, 0, 0, 0, 0, 375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 376, 0, 0, 0, 377, 0, 0, 0, 0, 0, 0, 378, 0, 0, 0, 379, 0, 0, 0, 0, 0, 0, 380, 0, 0, 0, 0, 381, 382, 0, 0, 0, 0, 383, 0, 0, 0, 0, 384, 0, 0, 0, 385, 0, 0, 386, 0, 0, 387, 0, 0, 0, 388, 0, 0, 0, 389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 390, 0, 391, 0, 392, 0, 0, 0, 393, 0, 0, 394, 395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 396, 0, 0, 0, 0, 0, 0, 397, 0, 0, 0, 0, 0, 398, 0, 0, 399, 0, 400, 0, 0, 0, 0, 401, 0, 0, 0, 0, 0, 0, 0, 0, 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, 0, 0, 0, 0, 404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 405, 0, 406, 0, 0, 0, 0, 0, 407, 0, 0, 0, 0, 0, 0, 0, 0, 408, 0, 0, 0, 0, 0, 0, 0, 409, 0, 0, 0, 0, 0, 410, 0, 411, 0, 412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, 414, 0, 0, 415, 0, 0, 0, 416, 0, 417, 0, 418, 0, 0, 419, 0, 420, 0, 0, 0, 421, 422, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 425, 0, 0, 0, 0, 426, 0, 0, 427, 0, 428, 0, 429, 0, 0, 430, 0, 0, 0, 0, 0, 431, 432, 0, 0, 0, 433, 0, 434, 0, 0, 435, 0, 436, 0, 0, 0, 437, 0, 438, 0, 0, 439, 0, 0, 440, 441, 0, 0, 0, 442, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 445, 0, 446, 0, 447, 0, 448, 0, 0, 0, 0, 449, 0, 450, 0, 0, 451, 0, 452, 0, 453, 0, 0, 0, 0, 454, 0, 455, 0, 456, 0, 0, 0, 0, 457, 0, 0, 0, 458, 459, 0, 460, 0, 0, 0, 461, 0, 462, 0, 0, 463, 0, 464, 0, 465, 0, 0, 0, 466, 0, 467, 0, 468, 0, 0, 0, 469, 0, 470, 0, 0, 0, 471, 0, 0, 0, 472, 0, 473, 0, 0, 474, 0, 0, 0, 0, 475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 476, 0, 0, 0, 0, 0, 0, 0, 0, 477, 0, 0, 478, 0, 0, 479, 0, 0, 0, 0, 0, 0, 0, 480, 0, 0, 0, 481, 0, 0, 0, 0, 482, 0, 0, 483, 484, 0, 485, 486, 0, 0, 0, 0, 0, 487, 0, 0, 0, 488, 0, 0, 0, 0, 0, 0, 0, 489, 0, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 491, 0, 0, 492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 493, 0, 0, 0, 0, 494, 0, 0, 0, 0, 495, 0, 0, 0, 0, 496, 0, 497, 498, 0, 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 500, 0, 0, 0, 501, 0, 502, 503, 0, 0, 0, 0, 0, 0, 0, 504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 505, 0, 0, 0, 0, 506, 0, 0, 0, 0, 507, 0, 0, 0, 0, 508, 0, 509, 0, 0, 0, 510, 0, 0, 511, 0, 512, 0, 0, 0, 0, 0, 0, 513, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 514, 0, 0, 0, 515, 0, 516, 517, 0, 0, 0, 0, 0, 0, 518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 519, 0, 520, 0, 0, 0, 0, 521, 522, 0, 0, 523, 0, 524, 0, 0, 525, 0, 0, 0, 526, 0, 527, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 529, 0, 530, 0, 0, 0, 531, 0, 0, 0, 532, 0, 0, 533, 0, 0, 0, 534, 0, 535, 0, 536, 0, 537, 0, 0, 0, 0, 0, 0, 538, 0, 539, 0, 0, 0, 0, 0, 540, 541, 0, 0, 0, 0, 0, 0, 0, 0, 542, 0, 0, 0, 0, 543, 0, 544, 0, 0, 0, 545, 0, 0, 546, 0, 547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 549, 0, 550, 0, 0, 0, 0, 0, 0, 551, 0, 552, 0, 553, 0, 0, 554, 0, 0, 555, 0, 0, 556, 0, 557, 0, 0, 558, 0, 559, 0, 560, 0, 561, 0, 562, 563, 0, 0, 0, 564, 0, 565, 0, 566, 0, 0, 0, 0, 567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 568, 0, 569, 0, 0, 0, 0, 0, 0, 570, 0, 571, 0, 572, 573, 0, 0, 0, 0, 574, 0, 0, 0, 0, 0, 0, 0, 575, 0, 576, 0, 577, 578, 0, 0, 579, 0, 0, 0, 580, 0, 0, 0, 581, 0, 582, 583, 0, 0, 584, 0, 0, 0, 585, 0, 586, 0, 0, 587, 0, 0, 588, 589, 0, 590, 0, 0, 591, 0, 0, 592, 0, 593, 594, 0, 595, 596, 0, 0, 597, 598, 0, 0, 0, 599, }; void recomp_unit_0001_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 - 0x08808000u; entry_id = (entry_delta < 16384u && (entry_delta & 3u) == 0u) ? kEntryIds_recomp_unit_0001[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08808000; case 2u: goto L_0880810C; case 3u: goto L_08808130; case 4u: goto L_08808140; case 5u: goto L_08808148; case 6u: goto L_08808158; case 7u: goto L_08808190; case 8u: goto L_0880841C; case 9u: goto L_08808458; case 10u: goto L_08808524; case 11u: goto L_0880852C; case 12u: goto L_08808558; case 13u: goto L_08808560; case 14u: goto L_08808590; case 15u: goto L_088085A0; case 16u: goto L_088085A8; case 17u: goto L_088085B8; case 18u: goto L_088085C8; case 19u: goto L_088085D4; case 20u: goto L_088085E0; case 21u: goto L_088085F0; case 22u: goto L_088085FC; case 23u: goto L_08808618; case 24u: goto L_08808624; case 25u: goto L_0880863C; case 26u: goto L_0880864C; case 27u: goto L_0880865C; case 28u: goto L_08808668; case 29u: goto L_08808674; case 30u: goto L_08808680; case 31u: goto L_0880868C; case 32u: goto L_088086A0; case 33u: goto L_088086AC; case 34u: goto L_088086B8; case 35u: goto L_088086C4; case 36u: goto L_088086DC; case 37u: goto L_088086E4; case 38u: goto L_088086F0; case 39u: goto L_088088A8; case 40u: goto L_088088D0; case 41u: goto L_08808940; case 42u: goto L_08808954; case 43u: goto L_0880895C; case 44u: goto L_08808970; case 45u: goto L_08808978; case 46u: goto L_0880898C; case 47u: goto L_08808994; case 48u: goto L_088089AC; case 49u: goto L_088089B8; case 50u: goto L_088089D0; case 51u: goto L_088089DC; case 52u: goto L_088089F4; case 53u: goto L_08808A00; case 54u: goto L_08808A50; case 55u: goto L_08808A7C; case 56u: goto L_08808AA4; case 57u: goto L_08808AD0; case 58u: goto L_08808AE4; case 59u: goto L_08808B0C; case 60u: goto L_08808B28; case 61u: goto L_08808B70; case 62u: goto L_08808B7C; case 63u: goto L_08808B84; case 64u: goto L_08808B8C; case 65u: goto L_08808B94; case 66u: goto L_08808BA4; case 67u: goto L_08808BB8; case 68u: goto L_08808BC4; case 69u: goto L_08808C18; case 70u: goto L_08808C24; case 71u: goto L_08808C3C; case 72u: goto L_08808C44; case 73u: goto L_08808C60; case 74u: goto L_08808C6C; case 75u: goto L_08808C84; case 76u: goto L_08808C94; case 77u: goto L_08808CA4; case 78u: goto L_08808CB4; case 79u: goto L_08808CFC; case 80u: goto L_08808D50; case 81u: goto L_08808DA4; case 82u: goto L_08808DDC; case 83u: goto L_08808DF4; case 84u: goto L_08808DFC; case 85u: goto L_08808E04; case 86u: goto L_08808E0C; case 87u: goto L_08808E10; case 88u: goto L_08808E38; case 89u: goto L_08808E50; case 90u: goto L_08808E6C; case 91u: goto L_08808EAC; case 92u: goto L_08808EBC; case 93u: goto L_08808ED4; case 94u: goto L_08808EE4; case 95u: goto L_08808EF8; case 96u: goto L_08808F30; case 97u: goto L_08808F40; case 98u: goto L_08808F50; case 99u: goto L_08808F58; case 100u: goto L_08808F5C; case 101u: goto L_08808FC4; case 102u: goto L_0880901C; case 103u: goto L_08809094; case 104u: goto L_088090A4; case 105u: goto L_088090B4; case 106u: goto L_088090BC; case 107u: goto L_088090CC; case 108u: goto L_08809104; case 109u: goto L_08809134; case 110u: goto L_08809148; case 111u: goto L_088091DC; case 112u: goto L_08809234; case 113u: goto L_088092AC; case 114u: goto L_088092F0; case 115u: goto L_0880933C; case 116u: goto L_08809374; case 117u: goto L_0880937C; case 118u: goto L_08809384; case 119u: goto L_0880958C; case 120u: goto L_08809594; case 121u: goto L_08809598; case 122u: goto L_088095B0; case 123u: goto L_088095B8; case 124u: goto L_088095C8; case 125u: goto L_088095E0; case 126u: goto L_088095E8; case 127u: goto L_08809600; case 128u: goto L_08809608; case 129u: goto L_08809618; case 130u: goto L_08809630; case 131u: goto L_08809638; case 132u: goto L_08809650; case 133u: goto L_08809658; case 134u: goto L_08809668; case 135u: goto L_08809680; case 136u: goto L_08809688; case 137u: goto L_088096A0; case 138u: goto L_088096A8; case 139u: goto L_088096B8; case 140u: goto L_088096D0; case 141u: goto L_088096D8; case 142u: goto L_088096F0; case 143u: goto L_088096F8; case 144u: goto L_08809708; case 145u: goto L_08809720; case 146u: goto L_08809728; case 147u: goto L_08809740; case 148u: goto L_08809748; case 149u: goto L_08809758; case 150u: goto L_088097D0; case 151u: goto L_088097DC; case 152u: goto L_0880984C; case 153u: goto L_08809854; case 154u: goto L_08809860; case 155u: goto L_088098D0; case 156u: goto L_088098D4; case 157u: goto L_088098FC; case 158u: goto L_08809930; case 159u: goto L_0880998C; case 160u: goto L_08809994; case 161u: goto L_088099AC; case 162u: goto L_088099B4; case 163u: goto L_088099C8; case 164u: goto L_088099D0; case 165u: goto L_088099DC; case 166u: goto L_088099E8; case 167u: goto L_088099FC; case 168u: goto L_08809A04; case 169u: goto L_08809A0C; case 170u: goto L_08809A34; case 171u: goto L_08809B60; case 172u: goto L_08809B84; case 173u: goto L_08809B94; case 174u: goto L_08809BAC; case 175u: goto L_08809BC4; case 176u: goto L_08809BDC; case 177u: goto L_08809BF4; case 178u: goto L_08809C0C; case 179u: goto L_08809D5C; case 180u: goto L_08809D7C; case 181u: goto L_08809D8C; case 182u: goto L_08809DA0; case 183u: goto L_08809DA4; case 184u: goto L_08809DB8; case 185u: goto L_08809DBC; case 186u: goto L_08809DD4; case 187u: goto L_08809ED8; case 188u: goto L_08809EE4; case 189u: goto L_08809F14; case 190u: goto L_08809F8C; case 191u: goto L_08809FA8; case 192u: goto L_08809FB0; case 193u: goto L_08809FB8; case 194u: goto L_08809FEC; case 195u: goto L_0880A00C; case 196u: goto L_0880A014; case 197u: goto L_0880A020; case 198u: goto L_0880A02C; case 199u: goto L_0880A044; case 200u: goto L_0880A054; case 201u: goto L_0880A064; case 202u: goto L_0880A074; case 203u: goto L_0880A07C; case 204u: goto L_0880A088; case 205u: goto L_0880A098; case 206u: goto L_0880A0A0; case 207u: goto L_0880A0A8; case 208u: goto L_0880A0C0; case 209u: goto L_0880A0E8; case 210u: goto L_0880A174; case 211u: goto L_0880A188; case 212u: goto L_0880A190; case 213u: goto L_0880A194; case 214u: goto L_0880A1A8; case 215u: goto L_0880A1B0; case 216u: goto L_0880A1CC; case 217u: goto L_0880A3B0; case 218u: goto L_0880A3B8; case 219u: goto L_0880A3BC; case 220u: goto L_0880A3D4; case 221u: goto L_0880A3DC; case 222u: goto L_0880A3EC; case 223u: goto L_0880A404; case 224u: goto L_0880A40C; case 225u: goto L_0880A424; case 226u: goto L_0880A42C; case 227u: goto L_0880A43C; case 228u: goto L_0880A454; case 229u: goto L_0880A45C; case 230u: goto L_0880A474; case 231u: goto L_0880A47C; case 232u: goto L_0880A48C; case 233u: goto L_0880A4A4; case 234u: goto L_0880A4AC; case 235u: goto L_0880A4C4; case 236u: goto L_0880A4CC; case 237u: goto L_0880A4DC; case 238u: goto L_0880A4F4; case 239u: goto L_0880A4FC; case 240u: goto L_0880A514; case 241u: goto L_0880A51C; case 242u: goto L_0880A52C; case 243u: goto L_0880A544; case 244u: goto L_0880A54C; case 245u: goto L_0880A564; case 246u: goto L_0880A56C; case 247u: goto L_0880A57C; case 248u: goto L_0880A5F0; case 249u: goto L_0880A670; case 250u: goto L_0880A6A4; case 251u: goto L_0880A6B0; case 252u: goto L_0880A6BC; case 253u: goto L_0880A6DC; case 254u: goto L_0880A720; case 255u: goto L_0880A7D4; case 256u: goto L_0880A7E0; case 257u: goto L_0880A7EC; case 258u: goto L_0880A808; case 259u: goto L_0880A834; case 260u: goto L_0880A83C; case 261u: goto L_0880A85C; case 262u: goto L_0880A880; case 263u: goto L_0880A884; case 264u: goto L_0880A8A0; case 265u: goto L_0880A8A8; case 266u: goto L_0880A8B4; case 267u: goto L_0880A8CC; case 268u: goto L_0880A8E4; case 269u: goto L_0880A900; case 270u: goto L_0880A91C; case 271u: goto L_0880A93C; case 272u: goto L_0880A958; case 273u: goto L_0880A964; case 274u: goto L_0880A970; case 275u: goto L_0880A974; case 276u: goto L_0880A98C; case 277u: goto L_0880A99C; case 278u: goto L_0880A9A0; case 279u: goto L_0880A9A8; case 280u: goto L_0880A9C4; case 281u: goto L_0880A9E4; case 282u: goto L_0880A9F4; case 283u: goto L_0880AA00; case 284u: goto L_0880AA0C; case 285u: goto L_0880AA20; case 286u: goto L_0880AA28; case 287u: goto L_0880AA3C; case 288u: goto L_0880AA64; case 289u: goto L_0880AA80; case 290u: goto L_0880AA98; case 291u: goto L_0880AAA8; case 292u: goto L_0880AAC4; case 293u: goto L_0880AAE4; case 294u: goto L_0880AB10; case 295u: goto L_0880AB1C; case 296u: goto L_0880AB24; case 297u: goto L_0880AB28; case 298u: goto L_0880AB48; case 299u: goto L_0880AB60; case 300u: goto L_0880AB7C; case 301u: goto L_0880AB8C; case 302u: goto L_0880AB98; case 303u: goto L_0880ABA0; case 304u: goto L_0880ABA4; case 305u: goto L_0880ABAC; case 306u: goto L_0880ABB4; case 307u: goto L_0880ABC8; case 308u: goto L_0880ABE0; case 309u: goto L_0880ABEC; case 310u: goto L_0880AC00; case 311u: goto L_0880AC14; case 312u: goto L_0880AC1C; case 313u: goto L_0880AC38; case 314u: goto L_0880AC4C; case 315u: goto L_0880AC58; case 316u: goto L_0880AC60; case 317u: goto L_0880AC68; case 318u: goto L_0880AC80; case 319u: goto L_0880AC88; case 320u: goto L_0880AC90; case 321u: goto L_0880AC98; case 322u: goto L_0880ACB0; case 323u: goto L_0880ACBC; case 324u: goto L_0880ACD8; case 325u: goto L_0880ACE4; case 326u: goto L_0880ACF8; case 327u: goto L_0880ACFC; case 328u: goto L_0880AD00; case 329u: goto L_0880AD08; case 330u: goto L_0880AD10; case 331u: goto L_0880AD18; case 332u: goto L_0880AD48; case 333u: goto L_0880AD54; case 334u: goto L_0880AD60; case 335u: goto L_0880AD68; case 336u: goto L_0880AD8C; case 337u: goto L_0880AD98; case 338u: goto L_0880ADA4; case 339u: goto L_0880ADB0; case 340u: goto L_0880ADB8; case 341u: goto L_0880ADC0; case 342u: goto L_0880ADCC; case 343u: goto L_0880ADD4; case 344u: goto L_0880ADDC; case 345u: goto L_0880ADEC; case 346u: goto L_0880AE7C; case 347u: goto L_0880AEA0; case 348u: goto L_0880AEC0; case 349u: goto L_0880AEE4; case 350u: goto L_0880AEF4; case 351u: goto L_0880AEFC; case 352u: goto L_0880AF04; case 353u: goto L_0880AF0C; case 354u: goto L_0880AF20; case 355u: goto L_0880AF30; case 356u: goto L_0880AF40; case 357u: goto L_0880AF50; case 358u: goto L_0880AF64; case 359u: goto L_0880AF6C; case 360u: goto L_0880AF78; case 361u: goto L_0880AF80; case 362u: goto L_0880AF88; case 363u: goto L_0880AF90; case 364u: goto L_0880AFA0; case 365u: goto L_0880AFB4; case 366u: goto L_0880AFB8; case 367u: goto L_0880AFE8; case 368u: goto L_0880B058; case 369u: goto L_0880B084; case 370u: goto L_0880B08C; case 371u: goto L_0880B0CC; case 372u: goto L_0880B0E4; case 373u: goto L_0880B0F0; case 374u: goto L_0880B100; case 375u: goto L_0880B114; case 376u: goto L_0880B13C; case 377u: goto L_0880B14C; case 378u: goto L_0880B168; case 379u: goto L_0880B178; case 380u: goto L_0880B194; case 381u: goto L_0880B1A8; case 382u: goto L_0880B1AC; case 383u: goto L_0880B1C0; case 384u: goto L_0880B1D4; case 385u: goto L_0880B1E4; case 386u: goto L_0880B1F0; case 387u: goto L_0880B1FC; case 388u: goto L_0880B20C; case 389u: goto L_0880B21C; case 390u: goto L_0880B258; case 391u: goto L_0880B260; case 392u: goto L_0880B268; case 393u: goto L_0880B278; case 394u: goto L_0880B284; case 395u: goto L_0880B288; case 396u: goto L_0880B2C8; case 397u: goto L_0880B2E4; case 398u: goto L_0880B2FC; case 399u: goto L_0880B308; case 400u: goto L_0880B310; case 401u: goto L_0880B324; case 402u: goto L_0880B348; case 403u: goto L_0880B388; case 404u: goto L_0880B39C; case 405u: goto L_0880B3DC; case 406u: goto L_0880B3E4; case 407u: goto L_0880B3FC; case 408u: goto L_0880B420; case 409u: goto L_0880B440; case 410u: goto L_0880B458; case 411u: goto L_0880B460; case 412u: goto L_0880B468; case 413u: goto L_0880B498; case 414u: goto L_0880B4AC; case 415u: goto L_0880B4B8; case 416u: goto L_0880B4C8; case 417u: goto L_0880B4D0; case 418u: goto L_0880B4D8; case 419u: goto L_0880B4E4; case 420u: goto L_0880B4EC; case 421u: goto L_0880B4FC; case 422u: goto L_0880B500; case 423u: goto L_0880B510; case 424u: goto L_0880B52C; case 425u: goto L_0880B564; case 426u: goto L_0880B578; case 427u: goto L_0880B584; case 428u: goto L_0880B58C; case 429u: goto L_0880B594; case 430u: goto L_0880B5A0; case 431u: goto L_0880B5B8; case 432u: goto L_0880B5BC; case 433u: goto L_0880B5CC; case 434u: goto L_0880B5D4; case 435u: goto L_0880B5E0; case 436u: goto L_0880B5E8; case 437u: goto L_0880B5F8; case 438u: goto L_0880B600; case 439u: goto L_0880B60C; case 440u: goto L_0880B618; case 441u: goto L_0880B61C; case 442u: goto L_0880B62C; case 443u: goto L_0880B64C; case 444u: goto L_0880B694; case 445u: goto L_0880B6A8; case 446u: goto L_0880B6B0; case 447u: goto L_0880B6B8; case 448u: goto L_0880B6C0; case 449u: goto L_0880B6D4; case 450u: goto L_0880B6DC; case 451u: goto L_0880B6E8; case 452u: goto L_0880B6F0; case 453u: goto L_0880B6F8; case 454u: goto L_0880B70C; case 455u: goto L_0880B714; case 456u: goto L_0880B71C; case 457u: goto L_0880B730; case 458u: goto L_0880B740; case 459u: goto L_0880B744; case 460u: goto L_0880B74C; case 461u: goto L_0880B75C; case 462u: goto L_0880B764; case 463u: goto L_0880B770; case 464u: goto L_0880B778; case 465u: goto L_0880B780; case 466u: goto L_0880B790; case 467u: goto L_0880B798; case 468u: goto L_0880B7A0; case 469u: goto L_0880B7B0; case 470u: goto L_0880B7B8; case 471u: goto L_0880B7C8; case 472u: goto L_0880B7D8; case 473u: goto L_0880B7E0; case 474u: goto L_0880B7EC; case 475u: goto L_0880B800; case 476u: goto L_0880B82C; case 477u: goto L_0880B850; case 478u: goto L_0880B85C; case 479u: goto L_0880B868; case 480u: goto L_0880B888; case 481u: goto L_0880B898; case 482u: goto L_0880B8AC; case 483u: goto L_0880B8B8; case 484u: goto L_0880B8BC; case 485u: goto L_0880B8C4; case 486u: goto L_0880B8C8; case 487u: goto L_0880B8E0; case 488u: goto L_0880B8F0; case 489u: goto L_0880B910; case 490u: goto L_0880B918; case 491u: goto L_0880B948; case 492u: goto L_0880B954; case 493u: goto L_0880B984; case 494u: goto L_0880B998; case 495u: goto L_0880B9AC; case 496u: goto L_0880B9C0; case 497u: goto L_0880B9C8; case 498u: goto L_0880B9CC; case 499u: goto L_0880B9D4; case 500u: goto L_0880BA04; case 501u: goto L_0880BA14; case 502u: goto L_0880BA1C; case 503u: goto L_0880BA20; case 504u: goto L_0880BA40; case 505u: goto L_0880BA78; case 506u: goto L_0880BA8C; case 507u: goto L_0880BAA0; case 508u: goto L_0880BAB4; case 509u: goto L_0880BABC; case 510u: goto L_0880BACC; case 511u: goto L_0880BAD8; case 512u: goto L_0880BAE0; case 513u: goto L_0880BAFC; case 514u: goto L_0880BB6C; case 515u: goto L_0880BB7C; case 516u: goto L_0880BB84; case 517u: goto L_0880BB88; case 518u: goto L_0880BBA4; case 519u: goto L_0880BBCC; case 520u: goto L_0880BBD4; case 521u: goto L_0880BBE8; case 522u: goto L_0880BBEC; case 523u: goto L_0880BBF8; case 524u: goto L_0880BC00; case 525u: goto L_0880BC0C; case 526u: goto L_0880BC1C; case 527u: goto L_0880BC24; case 528u: goto L_0880BC38; case 529u: goto L_0880BC54; case 530u: goto L_0880BC5C; case 531u: goto L_0880BC6C; case 532u: goto L_0880BC7C; case 533u: goto L_0880BC88; case 534u: goto L_0880BC98; case 535u: goto L_0880BCA0; case 536u: goto L_0880BCA8; case 537u: goto L_0880BCB0; case 538u: goto L_0880BCCC; case 539u: goto L_0880BCD4; case 540u: goto L_0880BCEC; case 541u: goto L_0880BCF0; case 542u: goto L_0880BD14; case 543u: goto L_0880BD28; case 544u: goto L_0880BD30; case 545u: goto L_0880BD40; case 546u: goto L_0880BD4C; case 547u: goto L_0880BD54; case 548u: goto L_0880BD88; case 549u: goto L_0880BDB8; case 550u: goto L_0880BDC0; case 551u: goto L_0880BDDC; case 552u: goto L_0880BDE4; case 553u: goto L_0880BDEC; case 554u: goto L_0880BDF8; case 555u: goto L_0880BE04; case 556u: goto L_0880BE10; case 557u: goto L_0880BE18; case 558u: goto L_0880BE24; case 559u: goto L_0880BE2C; case 560u: goto L_0880BE34; case 561u: goto L_0880BE3C; case 562u: goto L_0880BE44; case 563u: goto L_0880BE48; case 564u: goto L_0880BE58; case 565u: goto L_0880BE60; case 566u: goto L_0880BE68; case 567u: goto L_0880BE7C; case 568u: goto L_0880BEAC; case 569u: goto L_0880BEB4; case 570u: goto L_0880BED0; case 571u: goto L_0880BED8; case 572u: goto L_0880BEE0; case 573u: goto L_0880BEE4; case 574u: goto L_0880BEF8; case 575u: goto L_0880BF18; case 576u: goto L_0880BF20; case 577u: goto L_0880BF28; case 578u: goto L_0880BF2C; case 579u: goto L_0880BF38; case 580u: goto L_0880BF48; case 581u: goto L_0880BF58; case 582u: goto L_0880BF60; case 583u: goto L_0880BF64; case 584u: goto L_0880BF70; case 585u: goto L_0880BF80; case 586u: goto L_0880BF88; case 587u: goto L_0880BF94; case 588u: goto L_0880BFA0; case 589u: goto L_0880BFA4; case 590u: goto L_0880BFAC; case 591u: goto L_0880BFB8; case 592u: goto L_0880BFC4; case 593u: goto L_0880BFCC; case 594u: goto L_0880BFD0; case 595u: goto L_0880BFD8; case 596u: goto L_0880BFDC; case 597u: goto L_0880BFE8; case 598u: goto L_0880BFEC; case 599u: goto L_0880BFFC; default: if (local_transfers == 0u) rt.unsupported(ctx.pc, 0u, "invalid internal function entry"); else ctx.pc = local_pc; return; } } L_08808000: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(68))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(72))); ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(148), std::bit_cast(ctx.fpr[12])); ctx.gpr[5] = (std::bit_cast(ctx.fpr[13])); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(-8176))); ctx.gpr[8] = (std::bit_cast(ctx.fpr[14])); ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(268))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(152), std::bit_cast(ctx.fpr[13])); ctx.gpr[6] = (ctx.gpr[6] << 5u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(156), std::bit_cast(ctx.fpr[14])); ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[7]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(0), ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(4), ctx.gpr[5]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(8), ctx.gpr[8]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(80))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(84))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(88))); ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(160), std::bit_cast(ctx.fpr[12])); ctx.gpr[5] = (std::bit_cast(ctx.fpr[13])); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(-8176))); ctx.gpr[8] = (std::bit_cast(ctx.fpr[14])); ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(272))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(164), std::bit_cast(ctx.fpr[13])); ctx.gpr[6] = (ctx.gpr[6] << 5u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(168), std::bit_cast(ctx.fpr[14])); ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[7]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(0), ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(4), ctx.gpr[5]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(8), ctx.gpr[8]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(-8176))); ctx.gpr[6] = (std::bit_cast(ctx.fpr[13])); ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(280))); ctx.gpr[8] = (std::bit_cast(ctx.fpr[14])); ctx.gpr[5] = (ctx.gpr[5] << 5u); ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[7]); aot_mem.aot_store32(ctx.gpr[5] + static_cast(0), ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(172), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[5] + static_cast(4), ctx.gpr[6]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(176), std::bit_cast(ctx.fpr[13])); aot_mem.aot_store32(ctx.gpr[5] + static_cast(8), ctx.gpr[8]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(180), std::bit_cast(ctx.fpr[14])); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(-8176))); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[30] + static_cast(-8180))); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(276))); ctx.gpr[7] = (ctx.gpr[5] + ctx.gpr[5]); ctx.gpr[6] = (ctx.gpr[7] + ctx.gpr[6]); aot_mem.aot_store16(ctx.gpr[6] + static_cast(0), static_cast(ctx.gpr[4])); ctx.gpr[7] = (ctx.gpr[4] + static_cast(1)); aot_mem.aot_store16(ctx.gpr[6] + static_cast(2), static_cast(ctx.gpr[7])); ctx.gpr[8] = (ctx.gpr[4] + static_cast(2)); aot_mem.aot_store16(ctx.gpr[6] + static_cast(4), static_cast(ctx.gpr[8])); aot_mem.aot_store16(ctx.gpr[6] + static_cast(6), static_cast(ctx.gpr[4])); aot_mem.aot_store16(ctx.gpr[6] + static_cast(8), static_cast(ctx.gpr[8])); aot_mem.aot_store16(ctx.gpr[6] + static_cast(10), static_cast(ctx.gpr[7])); ctx.gpr[5] = (ctx.gpr[5] + static_cast(6)); aot_mem.aot_store32(ctx.gpr[30] + static_cast(-8180), ctx.gpr[5]); ctx.gpr[4] = (ctx.gpr[4] + static_cast(3)); aot_mem.aot_store32(ctx.gpr[18] + static_cast(-8176), ctx.gpr[4]); ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[16] + static_cast(126))); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0880841C; } goto L_0880810C; } L_0880810C: ctx.gpr[18] = (2230u << 16u); ctx.gpr[5] = (16880u << 16u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(-8172))); ctx.fpr[22] = std::bit_cast(ctx.gpr[5]); ctx.gpr[5] = (16512u << 16u); ctx.gpr[4] = (static_cast(ctx.gpr[4]) < 761 ? 1u : 0u); ctx.fpr[24] = std::bit_cast(ctx.gpr[5]); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.gpr[17] = (2230u << 16u); if (branch_taken) { goto L_08808140; } goto L_08808130; } L_08808130: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(-8168))); ctx.gpr[4] = (static_cast(ctx.gpr[4]) < 380 ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_08808148; } goto L_08808140; } L_08808140: ctx.gpr[31] = (0x08808148u); // nop if (rt.invoke_chained_direct<&recomp_unit_0000_entry, 0u, 723u, 0x08807068u>(ctx, &aot_mem) && ctx.pc == 0x08808148u) goto L_08808148; return; L_08808148: ctx.set_fpu_condition((ctx.fpr[20] <= ctx.fpr[22])); // nop { const bool branch_taken = ctx.fpu_condition(); ctx.gpr[4] = (0u | 140u); if (branch_taken) { goto L_08808190; } goto L_08808158; } L_08808158: ctx.fpr[12] = ctx.fpr[20] - ctx.fpr[22]; ctx.gpr[4] = (16928u << 16u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); { 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[12] / ctx.fpr[13]; ctx.gpr[4] = (16256u << 16u); ctx.gpr[5] = (17164u << 16u); ctx.fpr[15] = std::bit_cast(ctx.gpr[4]); ctx.fpr[14] = std::bit_cast(ctx.gpr[5]); ctx.fpr[12] = ctx.fpr[15] - ctx.fpr[12]; { 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[12] = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12])); ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (ctx.gpr[4] & 255u); goto L_08808190; L_08808190: ctx.gpr[5] = (static_cast(static_cast(ctx.gpr[4]) >> 2u)); ctx.gpr[5] = (ctx.gpr[5] >> 30u); ctx.gpr[5] = (ctx.gpr[4] + ctx.gpr[5]); ctx.gpr[5] = (static_cast(static_cast(ctx.gpr[5]) >> 2u)); aot_mem.aot_store8(ctx.gpr[29] + static_cast(184), static_cast(ctx.gpr[5])); aot_mem.aot_store8(ctx.gpr[29] + static_cast(185), static_cast(ctx.gpr[5])); aot_mem.aot_store8(ctx.gpr[29] + static_cast(186), static_cast(ctx.gpr[5])); aot_mem.aot_store8(ctx.gpr[29] + static_cast(187), static_cast(ctx.gpr[4])); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(-8168))); ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(256))); ctx.gpr[6] = (ctx.gpr[6] << 5u); ctx.gpr[8] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(184))); ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[7]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(0), ctx.gpr[8]); aot_mem.aot_store8(ctx.gpr[29] + static_cast(188), static_cast(ctx.gpr[5])); aot_mem.aot_store8(ctx.gpr[29] + static_cast(189), static_cast(ctx.gpr[5])); aot_mem.aot_store8(ctx.gpr[29] + static_cast(190), static_cast(ctx.gpr[5])); aot_mem.aot_store8(ctx.gpr[29] + static_cast(191), static_cast(ctx.gpr[4])); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(-8168))); ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(260))); ctx.gpr[6] = (ctx.gpr[6] << 5u); ctx.gpr[8] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(188))); ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[7]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(0), ctx.gpr[8]); aot_mem.aot_store8(ctx.gpr[29] + static_cast(192), static_cast(ctx.gpr[5])); aot_mem.aot_store8(ctx.gpr[29] + static_cast(193), static_cast(ctx.gpr[5])); aot_mem.aot_store8(ctx.gpr[29] + static_cast(194), static_cast(ctx.gpr[5])); aot_mem.aot_store8(ctx.gpr[29] + static_cast(195), static_cast(ctx.gpr[4])); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(-8168))); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(264))); ctx.gpr[4] = (ctx.gpr[4] << 5u); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(192))); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]); aot_mem.aot_store32(ctx.gpr[4] + static_cast(0), ctx.gpr[6]); ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[16] + static_cast(124))); ctx.gpr[4] = (ctx.gpr[4] << 3u); ctx.gpr[5] = (ctx.gpr[4] + ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[21]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(120))); { 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.gpr[4] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(-8168))); ctx.gpr[4] = (ctx.gpr[4] << 5u); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[22]); { 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; } aot_mem.aot_store32(ctx.gpr[4] + static_cast(0), std::bit_cast(ctx.fpr[12])); ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[16] + static_cast(124))); ctx.gpr[5] = (ctx.gpr[5] << 3u); ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[5]); ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]); ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[21]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(4))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(120))); { 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; } { 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; } aot_mem.aot_store32(ctx.gpr[4] + static_cast(4), std::bit_cast(ctx.fpr[12])); ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[16] + static_cast(124))); ctx.gpr[5] = (ctx.gpr[5] << 3u); ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[5]); ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]); ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[21]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(8))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(120))); { 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; } { 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; } aot_mem.aot_store32(ctx.gpr[4] + static_cast(32), std::bit_cast(ctx.fpr[12])); ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[16] + static_cast(124))); ctx.gpr[5] = (ctx.gpr[5] << 3u); ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[5]); ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]); ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[21]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(12))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(120))); { 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; } { 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; } aot_mem.aot_store32(ctx.gpr[4] + static_cast(36), std::bit_cast(ctx.fpr[12])); ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[16] + static_cast(124))); ctx.gpr[5] = (ctx.gpr[5] << 3u); ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[5]); ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]); ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[21]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(16))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(120))); { 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; } { 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; } aot_mem.aot_store32(ctx.gpr[4] + static_cast(64), std::bit_cast(ctx.fpr[12])); ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[16] + static_cast(124))); ctx.gpr[5] = (ctx.gpr[5] << 3u); ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[5]); ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]); ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[21]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(20))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(120))); { 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; } { 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; } aot_mem.aot_store32(ctx.gpr[4] + static_cast(68), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(64))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(68))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(72))); ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(196), std::bit_cast(ctx.fpr[12])); ctx.gpr[5] = (std::bit_cast(ctx.fpr[13])); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(-8168))); ctx.gpr[8] = (std::bit_cast(ctx.fpr[14])); ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(268))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(200), std::bit_cast(ctx.fpr[13])); ctx.gpr[6] = (ctx.gpr[6] << 5u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(204), std::bit_cast(ctx.fpr[14])); ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[7]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(0), ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(4), ctx.gpr[5]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(8), ctx.gpr[8]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(80))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(84))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(88))); ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(208), std::bit_cast(ctx.fpr[12])); ctx.gpr[5] = (std::bit_cast(ctx.fpr[13])); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(-8168))); ctx.gpr[8] = (std::bit_cast(ctx.fpr[14])); ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(272))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(212), std::bit_cast(ctx.fpr[13])); ctx.gpr[6] = (ctx.gpr[6] << 5u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(216), std::bit_cast(ctx.fpr[14])); ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[7]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(0), ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(4), ctx.gpr[5]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(8), ctx.gpr[8]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(-8168))); ctx.gpr[6] = (std::bit_cast(ctx.fpr[13])); ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(280))); ctx.gpr[8] = (std::bit_cast(ctx.fpr[14])); ctx.gpr[5] = (ctx.gpr[5] << 5u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(220), std::bit_cast(ctx.fpr[12])); ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[7]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(224), std::bit_cast(ctx.fpr[13])); aot_mem.aot_store32(ctx.gpr[5] + static_cast(0), ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(228), std::bit_cast(ctx.fpr[14])); aot_mem.aot_store32(ctx.gpr[5] + static_cast(4), ctx.gpr[6]); aot_mem.aot_store32(ctx.gpr[5] + static_cast(8), ctx.gpr[8]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(-8168))); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(-8172))); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(276))); ctx.gpr[8] = (ctx.gpr[5] + ctx.gpr[5]); ctx.gpr[7] = (ctx.gpr[4] + static_cast(-256)); ctx.gpr[6] = (ctx.gpr[8] + ctx.gpr[6]); aot_mem.aot_store16(ctx.gpr[6] + static_cast(0), static_cast(ctx.gpr[7])); ctx.gpr[8] = (ctx.gpr[4] + static_cast(-255)); aot_mem.aot_store16(ctx.gpr[6] + static_cast(2), static_cast(ctx.gpr[8])); ctx.gpr[9] = (ctx.gpr[4] + static_cast(-254)); aot_mem.aot_store16(ctx.gpr[6] + static_cast(4), static_cast(ctx.gpr[9])); aot_mem.aot_store16(ctx.gpr[6] + static_cast(6), static_cast(ctx.gpr[7])); aot_mem.aot_store16(ctx.gpr[6] + static_cast(8), static_cast(ctx.gpr[9])); aot_mem.aot_store16(ctx.gpr[6] + static_cast(10), static_cast(ctx.gpr[8])); ctx.gpr[5] = (ctx.gpr[5] + static_cast(6)); aot_mem.aot_store32(ctx.gpr[18] + static_cast(-8172), ctx.gpr[5]); ctx.gpr[4] = (ctx.gpr[4] + static_cast(3)); aot_mem.aot_store32(ctx.gpr[17] + static_cast(-8168), ctx.gpr[4]); goto L_0880841C; L_0880841C: ctx.fpr[20] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(284))); ctx.fpr[22] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(288))); ctx.fpr[24] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(292))); ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(296))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(300))); ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(304))); ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(308))); ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(312))); ctx.gpr[21] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(316))); ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(320))); ctx.gpr[23] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(324))); ctx.gpr[30] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(328))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(332))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(336)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_08808458: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-384)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(320), std::bit_cast(ctx.fpr[20])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(324), std::bit_cast(ctx.fpr[22])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(328), std::bit_cast(ctx.fpr[24])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(332), std::bit_cast(ctx.fpr[26])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(336), std::bit_cast(ctx.fpr[28])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(340), std::bit_cast(ctx.fpr[30])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(344), ctx.gpr[16]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(348), ctx.gpr[17]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(352), ctx.gpr[18]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(356), ctx.gpr[19]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(360), ctx.gpr[20]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(364), ctx.gpr[21]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(368), ctx.gpr[22]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(372), ctx.gpr[23]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(376), ctx.gpr[30]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(380), ctx.gpr[31]); ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[12])); ctx.gpr[16] = (ctx.gpr[5] | 0u); ctx.gpr[2] = (ctx.gpr[4] | 0u); ctx.gpr[5] = (ctx.gpr[10] & 255u); ctx.gpr[4] = (ctx.gpr[11] & 255u); aot_mem.aot_store8(ctx.gpr[29] + static_cast(296), static_cast(ctx.gpr[5])); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(388))); ctx.gpr[30] = (ctx.gpr[6] | 0u); ctx.gpr[23] = (ctx.gpr[7] | 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(292), ctx.gpr[5]); ctx.gpr[18] = (ctx.gpr[9] | 0u); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(384))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(24), ctx.gpr[8]); { 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_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[6] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[20] = std::bit_cast(ctx.gpr[6]); { 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[6] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[22] = std::bit_cast(ctx.gpr[6]); ctx.gpr[6] = (0u | 1u); ctx.gpr[7] = (16192u << 16u); ctx.fpr[12] = std::bit_cast(ctx.gpr[7]); ctx.fpr[12] = ctx.fpr[20] + ctx.fpr[12]; ctx.fpr[14] = std::bit_cast(ctx.gpr[6]); ctx.fpr[14] = static_cast(static_cast(std::bit_cast(ctx.fpr[14]))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(300), ctx.gpr[2]); ctx.set_fpu_condition((ctx.fpr[14] <= ctx.fpr[12])); // nop { const bool branch_taken = ctx.fpu_condition(); aot_mem.aot_store32(ctx.gpr[29] + static_cast(288), std::bit_cast(ctx.fpr[13])); if (branch_taken) { goto L_0880852C; } goto L_08808524; } L_08808524: ctx.fpr[12] = std::bit_cast(ctx.gpr[6]); ctx.fpr[12] = static_cast(static_cast(std::bit_cast(ctx.fpr[12]))); goto L_0880852C; L_0880852C: ctx.fpr[13] = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12])); ctx.gpr[6] = (0u | 1u); ctx.gpr[7] = (16192u << 16u); ctx.fpr[14] = std::bit_cast(ctx.gpr[6]); ctx.fpr[14] = static_cast(static_cast(std::bit_cast(ctx.fpr[14]))); ctx.fpr[12] = std::bit_cast(ctx.gpr[7]); ctx.fpr[12] = ctx.fpr[22] + ctx.fpr[12]; ctx.set_fpu_condition((ctx.fpr[14] <= ctx.fpr[12])); // nop { const bool branch_taken = ctx.fpu_condition(); ctx.gpr[20] = (std::bit_cast(ctx.fpr[13])); if (branch_taken) { goto L_08808560; } goto L_08808558; } L_08808558: ctx.fpr[12] = std::bit_cast(ctx.gpr[6]); ctx.fpr[12] = static_cast(static_cast(std::bit_cast(ctx.fpr[12]))); goto L_08808560; L_08808560: ctx.fpr[12] = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12])); { const std::int64_t product = static_cast(static_cast(ctx.gpr[20])) * static_cast(static_cast(ctx.gpr[5])); ctx.lo = static_cast(product); ctx.hi = static_cast(static_cast(product) >> 32u); } ctx.gpr[6] = (std::bit_cast(ctx.fpr[12])); ctx.gpr[20] = (ctx.lo); // nop // nop { const std::int64_t product = static_cast(static_cast(ctx.gpr[6])) * static_cast(static_cast(ctx.gpr[5])); ctx.lo = static_cast(product); ctx.hi = static_cast(static_cast(product) >> 32u); } ctx.gpr[5] = (0u | 3u); ctx.gpr[6] = (ctx.gpr[5] < ctx.gpr[20] ? 1u : 0u); ctx.gpr[22] = (ctx.lo); if (ctx.gpr[6] != 0u) { ctx.gpr[20] = (ctx.gpr[5] | 0u); goto L_08808590; } goto L_08808590; L_08808590: ctx.gpr[5] = (0u | 3u); ctx.gpr[6] = (ctx.gpr[5] < ctx.gpr[22] ? 1u : 0u); if (ctx.gpr[6] != 0u) { ctx.gpr[22] = (ctx.gpr[5] | 0u); goto L_088085A0; } goto L_088085A0; L_088085A0: { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_088085C8; } goto L_088085A8; } L_088085A8: ctx.gpr[4] = (0u | 1u); ctx.gpr[5] = (ctx.gpr[4] < ctx.gpr[20] ? 1u : 0u); if (ctx.gpr[5] != 0u) { ctx.gpr[20] = (ctx.gpr[4] | 0u); goto L_088085B8; } goto L_088085B8; L_088085B8: ctx.gpr[4] = (0u | 1u); ctx.gpr[5] = (ctx.gpr[4] < ctx.gpr[22] ? 1u : 0u); if (ctx.gpr[5] != 0u) { ctx.gpr[22] = (ctx.gpr[4] | 0u); goto L_088085C8; } goto L_088085C8; L_088085C8: ctx.fpr[26] = std::bit_cast(ctx.gpr[20]); { const bool branch_taken = static_cast(ctx.gpr[20]) >= 0; ctx.fpr[26] = static_cast(static_cast(std::bit_cast(ctx.fpr[26]))); if (branch_taken) { goto L_088085E0; } goto L_088085D4; } L_088085D4: ctx.gpr[4] = (20352u << 16u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[26] = ctx.fpr[26] + ctx.fpr[12]; goto L_088085E0; L_088085E0: ctx.fpr[24] = std::bit_cast(ctx.gpr[22]); ctx.fpr[26] = ctx.fpr[20] / ctx.fpr[26]; { const bool branch_taken = static_cast(ctx.gpr[22]) >= 0; ctx.fpr[24] = static_cast(static_cast(std::bit_cast(ctx.fpr[24]))); if (branch_taken) { goto L_088085FC; } goto L_088085F0; } L_088085F0: ctx.gpr[4] = (20352u << 16u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[24] = ctx.fpr[24] + ctx.fpr[12]; goto L_088085FC; L_088085FC: aot_mem.aot_store32(ctx.gpr[29] + static_cast(280), ctx.gpr[16]); ctx.fpr[24] = ctx.fpr[22] / ctx.fpr[24]; ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(0))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(4))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(8))); ctx.gpr[31] = (0x08808618u); ctx.gpr[4] = (ctx.gpr[29] + static_cast(80)); if (rt.invoke_chained_direct<&recomp_unit_0047_entry, 47u, 453u, 0x088C2F78u>(ctx, &aot_mem) && ctx.pc == 0x08808618u) goto L_08808618; return; L_08808618: ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[29] + static_cast(80))); { const bool branch_taken = ctx.gpr[4] != 0u; aot_mem.aot_store32(ctx.gpr[29] + static_cast(284), std::bit_cast(ctx.fpr[0])); if (branch_taken) { goto L_0880863C; } goto L_08808624; } L_08808624: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(8))); ctx.gpr[4] = (16384u << 16u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(280), ctx.gpr[16]); ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[13]; aot_mem.aot_store32(ctx.gpr[29] + static_cast(284), std::bit_cast(ctx.fpr[12])); goto L_0880863C; L_0880863C: ctx.gpr[21] = (0u | 0u); ctx.gpr[4] = (ctx.gpr[21] < ctx.gpr[20] ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_08808CB4; } goto L_0880864C; } L_0880864C: ctx.gpr[19] = (0u | 0u); ctx.gpr[4] = (ctx.gpr[19] < ctx.gpr[22] ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_08808CA4; } goto L_0880865C; } L_0880865C: ctx.fpr[30] = std::bit_cast(ctx.gpr[21]); { const bool branch_taken = static_cast(ctx.gpr[21]) >= 0; ctx.fpr[30] = static_cast(static_cast(std::bit_cast(ctx.fpr[30]))); if (branch_taken) { goto L_08808674; } goto L_08808668; } L_08808668: ctx.gpr[4] = (20352u << 16u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[30] = ctx.fpr[30] + ctx.fpr[12]; goto L_08808674; L_08808674: ctx.fpr[12] = std::bit_cast(ctx.gpr[20]); { const bool branch_taken = static_cast(ctx.gpr[20]) >= 0; ctx.fpr[12] = static_cast(static_cast(std::bit_cast(ctx.fpr[12]))); if (branch_taken) { goto L_0880868C; } goto L_08808680; } L_08808680: ctx.gpr[4] = (20352u << 16u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; goto L_0880868C; L_0880868C: { 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[30] = std::bit_cast(0x7FC00000u); else ctx.fpr[30] = fs * ft; } ctx.fpr[28] = std::bit_cast(ctx.gpr[19]); ctx.fpr[30] = ctx.fpr[30] / ctx.fpr[12]; { const bool branch_taken = static_cast(ctx.gpr[19]) >= 0; ctx.fpr[28] = static_cast(static_cast(std::bit_cast(ctx.fpr[28]))); if (branch_taken) { goto L_088086AC; } goto L_088086A0; } L_088086A0: ctx.gpr[4] = (20352u << 16u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[28] = ctx.fpr[28] + ctx.fpr[12]; goto L_088086AC; L_088086AC: ctx.fpr[12] = std::bit_cast(ctx.gpr[22]); { const bool branch_taken = static_cast(ctx.gpr[22]) >= 0; ctx.fpr[12] = static_cast(static_cast(std::bit_cast(ctx.fpr[12]))); if (branch_taken) { goto L_088086C4; } goto L_088086B8; } L_088086B8: ctx.gpr[4] = (20352u << 16u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; goto L_088086C4; L_088086C4: { const float fs = ctx.fpr[28]; const float ft = ctx.fpr[22]; 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.gpr[17] = (0u | 0u); ctx.fpr[28] = ctx.fpr[28] / ctx.fpr[12]; ctx.gpr[4] = (ctx.gpr[17] < static_cast(5) ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_08808C94; } goto L_088086DC; } L_088086DC: ctx.gpr[31] = (0x088086E4u); // nop if (rt.invoke_chained_direct<&recomp_unit_0000_entry, 0u, 678u, 0x08806CB0u>(ctx, &aot_mem) && ctx.pc == 0x088086E4u) goto L_088086E4; return; L_088086E4: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; // nop if (branch_taken) { goto L_08808C84; } goto L_088086F0; } L_088086F0: aot_mem.aot_store32(ctx.gpr[29] + static_cast(304), ctx.gpr[19]); aot_mem.aot_store8(ctx.gpr[16] + static_cast(124), static_cast(ctx.gpr[17])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[23] + static_cast(0))); { 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[12] / ctx.fpr[22]; aot_mem.aot_store32(ctx.gpr[16] + static_cast(0), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[23] + static_cast(4))); { 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[12] / ctx.fpr[22]; aot_mem.aot_store32(ctx.gpr[16] + static_cast(4), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[23] + static_cast(8))); { 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[12] / ctx.fpr[22]; aot_mem.aot_store32(ctx.gpr[16] + static_cast(8), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[30] + static_cast(0))); { 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.fpr[12] = ctx.fpr[12] / ctx.fpr[20]; aot_mem.aot_store32(ctx.gpr[16] + static_cast(32), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[30] + static_cast(4))); { 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.fpr[12] = ctx.fpr[12] / ctx.fpr[20]; aot_mem.aot_store32(ctx.gpr[16] + static_cast(36), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[30] + static_cast(8))); { 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.fpr[12] = ctx.fpr[12] / ctx.fpr[20]; aot_mem.aot_store32(ctx.gpr[16] + static_cast(40), std::bit_cast(ctx.fpr[12])); { 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); } 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<2u, 4u>(vfpu_value); } ctx.execute_vfpu_cross_quat(0u, 1u, 2u, 3u); ctx.gpr[19] = (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[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])); } { 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[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<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(48))); aot_mem.aot_store32(ctx.gpr[16] + static_cast(16), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(52))); aot_mem.aot_store32(ctx.gpr[16] + static_cast(20), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(56))); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(280))); aot_mem.aot_store32(ctx.gpr[16] + static_cast(24), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); ctx.gpr[5] = (ctx.gpr[17] + ctx.gpr[17]); ctx.gpr[6] = (ctx.gpr[5] + static_cast(1)); ctx.gpr[6] = (ctx.gpr[6] << 2u); ctx.gpr[7] = (2232u << 16u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(7032)); ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[7]); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[6] + static_cast(0))); { 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[13] = ctx.fpr[30] + ctx.fpr[13]; ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[30] + static_cast(0))); ctx.fpr[14] = ctx.fpr[14] / ctx.fpr[20]; { 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[12] = ctx.fpr[12] + ctx.fpr[13]; ctx.gpr[5] = (ctx.gpr[5] << 2u); ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[7]); ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(0))); { const float fs = ctx.fpr[24]; 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[15] = ctx.fpr[28] + ctx.fpr[15]; ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[23] + static_cast(0))); ctx.fpr[13] = ctx.fpr[14] / ctx.fpr[22]; { const float fs = ctx.fpr[15]; 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[16] + static_cast(48), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(4))); ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[6] + static_cast(0))); { const float fs = ctx.fpr[26]; 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; } ctx.fpr[16] = ctx.fpr[30] + ctx.fpr[16]; ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[30] + static_cast(4))); ctx.fpr[14] = ctx.fpr[14] / ctx.fpr[20]; { 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[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(0))); { const float fs = ctx.fpr[24]; 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[15] = ctx.fpr[28] + ctx.fpr[15]; ctx.fpr[17] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[23] + static_cast(4))); ctx.fpr[16] = ctx.fpr[17] / ctx.fpr[22]; { const float fs = ctx.fpr[15]; 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[12] = ctx.fpr[12] + ctx.fpr[14]; aot_mem.aot_store32(ctx.gpr[16] + static_cast(52), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(8))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[6] + static_cast(0))); { 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[13] = ctx.fpr[30] + ctx.fpr[13]; aot_mem.aot_store32(ctx.gpr[29] + static_cast(312), std::bit_cast(ctx.fpr[30])); ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[30] + static_cast(8))); ctx.fpr[15] = ctx.fpr[15] / ctx.fpr[20]; { 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[12] = ctx.fpr[12] + ctx.fpr[13]; ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(0))); { const float fs = ctx.fpr[24]; 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[14] = ctx.fpr[28] + ctx.fpr[14]; aot_mem.aot_store32(ctx.gpr[29] + static_cast(308), std::bit_cast(ctx.fpr[28])); ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[23] + static_cast(8))); ctx.fpr[16] = ctx.fpr[16] / ctx.fpr[22]; { 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[12] = ctx.fpr[12] + ctx.fpr[14]; aot_mem.aot_store32(ctx.gpr[16] + static_cast(56), std::bit_cast(ctx.fpr[12])); ctx.gpr[31] = (0x088088A8u); // nop if (rt.invoke_chained_direct<&recomp_unit_0082_entry, 82u, 302u, 0x0894DB08u>(ctx, &aot_mem) && ctx.pc == 0x088088A8u) goto L_088088A8; return; L_088088A8: ctx.gpr[4] = (ctx.gpr[2] & 65535u); ctx.gpr[4] = (ctx.gpr[4] & 127u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(-64)); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = static_cast(static_cast(std::bit_cast(ctx.fpr[12]))); ctx.gpr[4] = (15044u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 39846u); ctx.fpr[28] = std::bit_cast(ctx.gpr[4]); ctx.gpr[31] = (0x088088D0u); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[28]; 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; } if (rt.invoke_chained_direct<&recomp_unit_0082_entry, 82u, 302u, 0x0894DB08u>(ctx, &aot_mem) && ctx.pc == 0x088088D0u) goto L_088088D0; return; L_088088D0: ctx.gpr[4] = (ctx.gpr[2] & 65535u); ctx.gpr[4] = (ctx.gpr[4] & 127u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(-64)); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[13] = static_cast(static_cast(std::bit_cast(ctx.fpr[13]))); { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[28]; 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; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(112), std::bit_cast(ctx.fpr[30])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(116), std::bit_cast(ctx.fpr[13])); ctx.fpr[12] = std::bit_cast(0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(120), std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(24))); { 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(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); } { 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[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])); } { 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[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] = (14545u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 46871u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(288))); ctx.set_fpu_condition((ctx.fpr[13] <= ctx.fpr[12])); ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(304))); ctx.fpr[28] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(308))); { const bool branch_taken = ctx.fpu_condition(); ctx.fpr[30] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(312))); if (branch_taken) { goto L_08808AD0; } goto L_08808940; } L_08808940: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[18] + static_cast(0))); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[12])) && ctx.fpr[12] == ctx.fpr[12])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0880895C; } goto L_08808954; } L_08808954: ctx.fpr[12] = std::bit_cast(0u); aot_mem.aot_store32(ctx.gpr[18] + static_cast(0), std::bit_cast(ctx.fpr[12])); goto L_0880895C; L_0880895C: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[18] + static_cast(4))); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[12])) && ctx.fpr[12] == ctx.fpr[12])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_08808978; } goto L_08808970; } L_08808970: ctx.fpr[12] = std::bit_cast(0u); aot_mem.aot_store32(ctx.gpr[18] + static_cast(4), std::bit_cast(ctx.fpr[12])); goto L_08808978; L_08808978: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[18] + static_cast(8))); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[12])) && ctx.fpr[12] == ctx.fpr[12])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_08808994; } goto L_0880898C; } L_0880898C: ctx.fpr[12] = std::bit_cast(0u); aot_mem.aot_store32(ctx.gpr[18] + static_cast(8), std::bit_cast(ctx.fpr[12])); goto L_08808994; L_08808994: ctx.gpr[4] = (ctx.gpr[16] + static_cast(48)); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[12])) && ctx.fpr[12] == ctx.fpr[12])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_088089B8; } goto L_088089AC; } L_088089AC: ctx.fpr[12] = std::bit_cast(0u); ctx.gpr[4] = (ctx.gpr[16] + static_cast(48)); aot_mem.aot_store32(ctx.gpr[4] + static_cast(0), std::bit_cast(ctx.fpr[12])); goto L_088089B8; L_088089B8: ctx.gpr[4] = (ctx.gpr[16] + static_cast(48)); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(4))); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[12])) && ctx.fpr[12] == ctx.fpr[12])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_088089DC; } goto L_088089D0; } L_088089D0: ctx.fpr[12] = std::bit_cast(0u); ctx.gpr[4] = (ctx.gpr[16] + static_cast(48)); aot_mem.aot_store32(ctx.gpr[4] + static_cast(4), std::bit_cast(ctx.fpr[12])); goto L_088089DC; L_088089DC: ctx.gpr[4] = (ctx.gpr[16] + static_cast(48)); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(8))); ctx.set_fpu_condition((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[12])) && ctx.fpr[12] == ctx.fpr[12])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_08808A00; } goto L_088089F4; } L_088089F4: ctx.fpr[12] = std::bit_cast(0u); ctx.gpr[4] = (ctx.gpr[16] + static_cast(48)); aot_mem.aot_store32(ctx.gpr[4] + static_cast(8), std::bit_cast(ctx.fpr[12])); goto L_08808A00; L_08808A00: 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); } { 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<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(128)); { 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 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>(); ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.gpr[4] = (14545u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 46871u); 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_08808A7C; } goto L_08808A50; } L_08808A50: 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_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 bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_08808AA4; } goto L_08808A7C; } L_08808A7C: ctx.gpr[4] = (16256u << 16u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(144), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(148), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(152), std::bit_cast(ctx.fpr[12])); 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[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])); } goto L_08808AA4; L_08808AA4: ctx.gpr[4] = (ctx.gpr[16] + static_cast(80)); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(288))); ctx.gpr[5] = (std::bit_cast(ctx.fpr[12])); 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[5] = (ctx.gpr[29] + static_cast(128)); { 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] = (0x08808AD0u); // nop if (rt.invoke_chained_direct<&recomp_unit_0072_entry, 72u, 565u, 0x0892753Cu>(ctx, &aot_mem) && ctx.pc == 0x08808AD0u) goto L_08808AD0; return; L_08808AD0: aot_mem.aot_store32(ctx.gpr[29] + static_cast(316), std::bit_cast(ctx.fpr[24])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(312), std::bit_cast(ctx.fpr[30])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(308), std::bit_cast(ctx.fpr[28])); ctx.gpr[31] = (0x08808AE4u); // nop if (rt.invoke_chained_direct<&recomp_unit_0082_entry, 82u, 302u, 0x0894DB08u>(ctx, &aot_mem) && ctx.pc == 0x08808AE4u) goto L_08808AE4; return; L_08808AE4: ctx.gpr[4] = (ctx.gpr[2] & 65535u); ctx.gpr[4] = (ctx.gpr[4] & 127u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(-64)); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = static_cast(static_cast(std::bit_cast(ctx.fpr[12]))); ctx.gpr[4] = (15107u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 4719u); ctx.fpr[28] = std::bit_cast(ctx.gpr[4]); ctx.gpr[31] = (0x08808B0Cu); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[28]; 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; } if (rt.invoke_chained_direct<&recomp_unit_0082_entry, 82u, 302u, 0x0894DB08u>(ctx, &aot_mem) && ctx.pc == 0x08808B0Cu) goto L_08808B0C; return; L_08808B0C: ctx.gpr[4] = (ctx.gpr[2] & 65535u); ctx.gpr[4] = (ctx.gpr[4] & 127u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(-64)); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[13] = static_cast(static_cast(std::bit_cast(ctx.fpr[13]))); ctx.gpr[31] = (0x08808B28u); { const float fs = ctx.fpr[13]; const float ft = ctx.fpr[28]; 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_0082_entry, 82u, 302u, 0x0894DB08u>(ctx, &aot_mem) && ctx.pc == 0x08808B28u) goto L_08808B28; return; L_08808B28: ctx.gpr[4] = (ctx.gpr[2] & 65535u); ctx.gpr[4] = (ctx.gpr[4] & 127u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(-64)); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = static_cast(static_cast(std::bit_cast(ctx.fpr[12]))); { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[28]; 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[29] + static_cast(112), std::bit_cast(ctx.fpr[30])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(116), std::bit_cast(ctx.fpr[24])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(120), std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (ctx.gpr[29] + 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<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])); } ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(300))); ctx.fpr[28] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(308))); ctx.fpr[30] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(312))); { const bool branch_taken = static_cast(ctx.gpr[4]) < 0; ctx.fpr[24] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(316))); if (branch_taken) { goto L_08808C44; } goto L_08808B70; } L_08808B70: ctx.gpr[5] = (static_cast(ctx.gpr[4]) < 2 ? 1u : 0u); if (ctx.gpr[5] == 0u) { ctx.gpr[4] = (static_cast(ctx.gpr[4]) < 3 ? 1u : 0u); goto L_08808B8C; } goto L_08808B7C; L_08808B7C: { const bool branch_taken = static_cast(ctx.gpr[4]) <= 0; // nop if (branch_taken) { goto L_08808B94; } goto L_08808B84; } L_08808B84: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_08808BA4; } goto L_08808B8C; } L_08808B8C: { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_08808C44; } goto L_08808B94; } L_08808B94: ctx.gpr[4] = (2230u << 16u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(-8148))); { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[16] + static_cast(112), ctx.gpr[4]); if (branch_taken) { goto L_08808C44; } goto L_08808BA4; } L_08808BA4: ctx.gpr[4] = (2230u << 16u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(-8148))); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); { const bool branch_taken = static_cast(ctx.gpr[4]) >= 0; ctx.fpr[12] = static_cast(static_cast(std::bit_cast(ctx.fpr[12]))); if (branch_taken) { goto L_08808BC4; } goto L_08808BB8; } L_08808BB8: ctx.gpr[4] = (20352u << 16u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; goto L_08808BC4; L_08808BC4: 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); } { 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<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(160)); { 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] = (17096u << 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; } ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; ctx.gpr[4] = (20224u << 16u); 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(); ctx.gpr[4] = (20224u << 16u); if (branch_taken) { goto L_08808C24; } goto L_08808C18; } L_08808C18: ctx.fpr[12] = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12])); { const bool branch_taken = 0u == 0u; ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_08808C3C; } goto L_08808C24; } L_08808C24: ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[13]; ctx.gpr[4] = (32768u << 16u); ctx.fpr[12] = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12])); ctx.gpr[5] = (std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]); goto L_08808C3C; L_08808C3C: { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[16] + static_cast(112), ctx.gpr[4]); if (branch_taken) { goto L_08808C44; } goto L_08808C44; } L_08808C44: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(284))); ctx.fpr[12] = std::bit_cast(ctx.gpr[20]); ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[29] + static_cast(296))); ctx.fpr[12] = static_cast(static_cast(std::bit_cast(ctx.fpr[12]))); aot_mem.aot_store32(ctx.gpr[16] + static_cast(116), std::bit_cast(ctx.fpr[13])); { const bool branch_taken = static_cast(ctx.gpr[20]) >= 0; aot_mem.aot_store8(ctx.gpr[16] + static_cast(126), static_cast(ctx.gpr[4])); if (branch_taken) { goto L_08808C6C; } goto L_08808C60; } L_08808C60: ctx.gpr[4] = (20352u << 16u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; goto L_08808C6C; L_08808C6C: ctx.fpr[12] = ctx.fpr[20] / ctx.fpr[12]; ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(292))); ctx.gpr[5] = (0u | 1u); aot_mem.aot_store8(ctx.gpr[16] + static_cast(127), static_cast(ctx.gpr[4])); aot_mem.aot_store8(ctx.gpr[16] + static_cast(125), static_cast(ctx.gpr[5])); aot_mem.aot_store32(ctx.gpr[16] + static_cast(120), std::bit_cast(ctx.fpr[12])); goto L_08808C84; L_08808C84: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); ctx.gpr[4] = (ctx.gpr[17] < static_cast(5) ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_088086DC; } goto L_08808C94; } L_08808C94: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); ctx.gpr[4] = (ctx.gpr[19] < ctx.gpr[22] ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0880865C; } goto L_08808CA4; } L_08808CA4: ctx.gpr[21] = (ctx.gpr[21] + static_cast(1)); ctx.gpr[4] = (ctx.gpr[21] < ctx.gpr[20] ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0880864C; } goto L_08808CB4; } L_08808CB4: ctx.fpr[20] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(320))); ctx.fpr[22] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(324))); ctx.fpr[24] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(328))); ctx.fpr[26] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(332))); ctx.fpr[28] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(336))); ctx.fpr[30] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(340))); ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(344))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(348))); ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(352))); ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(356))); ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(360))); ctx.gpr[21] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(364))); ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(368))); ctx.gpr[23] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(372))); ctx.gpr[30] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(376))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(380))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(384)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_08808CFC: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-304)); ctx.gpr[5] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[4] + static_cast(421)))))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(276), ctx.gpr[22]); ctx.gpr[22] = (ctx.gpr[4] | 0u); ctx.gpr[4] = (ctx.gpr[5] & 32u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(232), std::bit_cast(ctx.fpr[20])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(236), std::bit_cast(ctx.fpr[22])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(240), std::bit_cast(ctx.fpr[24])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(244), std::bit_cast(ctx.fpr[26])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(248), std::bit_cast(ctx.fpr[28])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(252), ctx.gpr[16]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(256), ctx.gpr[17]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(260), ctx.gpr[18]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(264), ctx.gpr[19]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(268), ctx.gpr[20]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(272), ctx.gpr[21]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(280), ctx.gpr[23]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(284), ctx.gpr[30]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(288), ctx.gpr[31]); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_08808E04; } goto L_08808D50; } L_08808D50: ctx.gpr[4] = (2232u << 16u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(12960)); ctx.gpr[5] = (ctx.gpr[4] + static_cast(48)); { 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); } aot_mem.aot_store32(ctx.gpr[29] + static_cast(224), ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[22] + 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(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 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[4] = (16928u << 16u); ctx.fpr[22] = std::bit_cast(ctx.gpr[4]); ctx.set_fpu_condition((ctx.fpr[20] <= ctx.fpr[22])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_08808DFC; } goto L_08808DA4; } L_08808DA4: ctx.gpr[4] = (ctx.gpr[22] + 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.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<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.gpr[31] = (0x08808DDCu); // nop if (rt.invoke_chained_direct<&recomp_unit_0000_entry, 0u, 712u, 0x08806ED0u>(ctx, &aot_mem) && ctx.pc == 0x08808DDCu) goto L_08808DDC; return; L_08808DDC: ctx.gpr[4] = (16880u << 16u); ctx.fpr[24] = 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_08808E0C; } goto L_08808DF4; } L_08808DF4: { const bool branch_taken = 0u == 0u; ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[22] + static_cast(88)))))); if (branch_taken) { goto L_08808E10; } goto L_08808DFC; } L_08808DFC: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_088092AC; } goto L_08808E04; } L_08808E04: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_088092AC; } goto L_08808E0C; } L_08808E0C: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[22] + static_cast(88)))))); goto L_08808E10; L_08808E10: ctx.gpr[5] = (2229u << 16u); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast(-11604))); ctx.gpr[4] = (ctx.gpr[4] << 2u); ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(20))); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[17] + static_cast(52)))))); ctx.gpr[4] = (static_cast(ctx.gpr[4]) < 2 ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_088092AC; } goto L_08808E38; } L_08808E38: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(80))); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(76))); ctx.gpr[6] = (ctx.gpr[29] + static_cast(64)); ctx.gpr[7] = (ctx.gpr[29] + static_cast(80)); ctx.gpr[31] = (0x08808E50u); ctx.gpr[8] = (ctx.gpr[29] + static_cast(96)); if (rt.invoke_chained_direct<&recomp_unit_0134_entry, 134u, 312u, 0x08A1E040u>(ctx, &aot_mem) && ctx.pc == 0x08808E50u) goto L_08808E50; return; L_08808E50: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(80))); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(76))); ctx.gpr[4] = (ctx.gpr[4] + static_cast(8)); ctx.gpr[6] = (ctx.gpr[29] + static_cast(112)); ctx.gpr[7] = (ctx.gpr[29] + static_cast(128)); ctx.gpr[31] = (0x08808E6Cu); ctx.gpr[8] = (ctx.gpr[29] + static_cast(144)); if (rt.invoke_chained_direct<&recomp_unit_0134_entry, 134u, 312u, 0x08A1E040u>(ctx, &aot_mem) && ctx.pc == 0x08808E6Cu) goto L_08808E6C; return; L_08808E6C: ctx.gpr[4] = (2233u << 16u); ctx.fpr[26] = std::bit_cast(0u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(-29008)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(228), ctx.gpr[4]); ctx.gpr[23] = (2232u << 16u); ctx.gpr[4] = (16585u << 16u); ctx.gpr[23] = (ctx.gpr[23] + static_cast(20144)); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.gpr[17] = (0u | 0u); ctx.fpr[28] = std::bit_cast(ctx.gpr[4]); ctx.gpr[18] = (ctx.gpr[29] + static_cast(160)); ctx.gpr[16] = (ctx.gpr[29] + static_cast(64)); ctx.gpr[21] = (ctx.gpr[23] + static_cast(8)); ctx.gpr[20] = (ctx.gpr[23] + static_cast(20)); ctx.gpr[30] = (2230u << 16u); ctx.gpr[19] = (2230u << 16u); goto L_08808EAC; L_08808EAC: ctx.gpr[4] = (ctx.gpr[18] | 0u); ctx.gpr[5] = (ctx.gpr[22] | 0u); ctx.gpr[31] = (0x08808EBCu); ctx.gpr[6] = (ctx.gpr[16] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0000_entry, 0u, 667u, 0x08806B70u>(ctx, &aot_mem) && ctx.pc == 0x08808EBCu) goto L_08808EBC; return; L_08808EBC: { 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); } { 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[17] = (ctx.gpr[17] + static_cast(1)); ctx.gpr[4] = (static_cast(ctx.gpr[17]) < 6 ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] != 0u; ctx.gpr[16] = (ctx.gpr[16] + static_cast(16)); if (branch_taken) { goto L_08808EAC; } goto L_08808ED4; } L_08808ED4: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[22] + static_cast(421)))))); ctx.gpr[4] = (ctx.gpr[4] & 16u); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_08809094; } goto L_08808EE4; } L_08808EE4: ctx.gpr[17] = (0u | 255u); ctx.set_fpu_condition((ctx.fpr[20] <= ctx.fpr[24])); ctx.gpr[18] = (2230u << 16u); { const bool branch_taken = ctx.fpu_condition(); ctx.gpr[16] = (2230u << 16u); if (branch_taken) { goto L_08808F30; } goto L_08808EF8; } L_08808EF8: ctx.fpr[12] = ctx.fpr[20] - ctx.fpr[24]; ctx.gpr[4] = (16512u << 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.fpr[12] = ctx.fpr[12] / ctx.fpr[22]; ctx.gpr[4] = (16256u << 16u); ctx.gpr[5] = (17279u << 16u); ctx.fpr[15] = std::bit_cast(ctx.gpr[4]); ctx.fpr[14] = std::bit_cast(ctx.gpr[5]); ctx.fpr[12] = ctx.fpr[15] - ctx.fpr[12]; { 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[12] = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12])); ctx.gpr[17] = (std::bit_cast(ctx.fpr[12])); ctx.gpr[17] = (ctx.gpr[17] & 255u); goto L_08808F30; L_08808F30: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(-8172))); ctx.gpr[4] = (static_cast(ctx.gpr[4]) < 755 ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_08808F50; } goto L_08808F40; } L_08808F40: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(-8168))); ctx.gpr[4] = (static_cast(ctx.gpr[4]) < 379 ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] != 0u; ctx.gpr[4] = (0u | 3u); if (branch_taken) { goto L_08808F5C; } goto L_08808F50; } L_08808F50: ctx.gpr[31] = (0x08808F58u); // nop if (rt.invoke_chained_direct<&recomp_unit_0000_entry, 0u, 723u, 0x08807068u>(ctx, &aot_mem) && ctx.pc == 0x08808F58u) goto L_08808F58; return; L_08808F58: ctx.gpr[4] = (0u | 3u); goto L_08808F5C; L_08808F5C: { const std::int32_t dividend = static_cast(ctx.gpr[17]); 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] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(-8168))); ctx.gpr[5] = (16640u << 16u); ctx.gpr[4] = (ctx.gpr[4] << 5u); ctx.fpr[12] = std::bit_cast(ctx.gpr[5]); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[23]); aot_mem.aot_store32(ctx.gpr[4] + static_cast(0), std::bit_cast(ctx.fpr[26])); aot_mem.aot_store32(ctx.gpr[4] + static_cast(4), std::bit_cast(ctx.fpr[26])); aot_mem.aot_store32(ctx.gpr[4] + static_cast(32), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[4] + static_cast(36), std::bit_cast(ctx.fpr[26])); aot_mem.aot_store32(ctx.gpr[4] + static_cast(64), std::bit_cast(ctx.fpr[26])); aot_mem.aot_store32(ctx.gpr[4] + static_cast(68), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[4] + static_cast(96), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[4] + static_cast(100), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[4] + static_cast(128), std::bit_cast(ctx.fpr[26])); aot_mem.aot_store32(ctx.gpr[4] + static_cast(132), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[4] + static_cast(160), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[4] + static_cast(164), std::bit_cast(ctx.fpr[26])); ctx.gpr[4] = (0u | 0u); ctx.gpr[5] = (ctx.gpr[29] | 0u); ctx.gpr[6] = (ctx.lo); aot_mem.aot_store8(ctx.gpr[29] + static_cast(176), static_cast(ctx.gpr[6])); aot_mem.aot_store8(ctx.gpr[29] + static_cast(177), static_cast(ctx.gpr[6])); aot_mem.aot_store8(ctx.gpr[29] + static_cast(178), static_cast(ctx.gpr[6])); aot_mem.aot_store8(ctx.gpr[29] + static_cast(179), static_cast(ctx.gpr[6])); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(176))); goto L_08808FC4; L_08808FC4: ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(-8168))); ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[4]); ctx.gpr[6] = (ctx.gpr[6] << 5u); ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[21]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(0), ctx.gpr[17]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(64))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(68))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(72))); ctx.gpr[7] = (std::bit_cast(ctx.fpr[12])); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(-8168))); ctx.gpr[8] = (std::bit_cast(ctx.fpr[13])); ctx.gpr[9] = (std::bit_cast(ctx.fpr[14])); ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[4]); ctx.gpr[6] = (ctx.gpr[6] << 5u); ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[20]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(0), ctx.gpr[7]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(4), ctx.gpr[8]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(8), ctx.gpr[9]); ctx.gpr[4] = (ctx.gpr[4] + static_cast(1)); ctx.gpr[6] = (static_cast(ctx.gpr[4]) < 6 ? 1u : 0u); { const bool branch_taken = ctx.gpr[6] != 0u; ctx.gpr[5] = (ctx.gpr[5] + static_cast(16)); if (branch_taken) { goto L_08808FC4; } goto L_0880901C; } L_0880901C: aot_mem.aot_store32(ctx.gpr[29] + static_cast(180), std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(-8168))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(184), std::bit_cast(ctx.fpr[13])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(188), std::bit_cast(ctx.fpr[14])); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(-8172))); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(228))); ctx.gpr[8] = (ctx.gpr[5] + ctx.gpr[5]); ctx.gpr[7] = (ctx.gpr[4] + static_cast(-256)); ctx.gpr[6] = (ctx.gpr[8] + ctx.gpr[6]); aot_mem.aot_store16(ctx.gpr[6] + static_cast(0), static_cast(ctx.gpr[7])); ctx.gpr[8] = (ctx.gpr[4] + static_cast(-255)); aot_mem.aot_store16(ctx.gpr[6] + static_cast(2), static_cast(ctx.gpr[8])); ctx.gpr[9] = (ctx.gpr[4] + static_cast(-254)); aot_mem.aot_store16(ctx.gpr[6] + static_cast(4), static_cast(ctx.gpr[9])); ctx.gpr[10] = (ctx.gpr[4] + static_cast(-253)); aot_mem.aot_store16(ctx.gpr[6] + static_cast(6), static_cast(ctx.gpr[10])); ctx.gpr[11] = (ctx.gpr[4] + static_cast(-252)); aot_mem.aot_store16(ctx.gpr[6] + static_cast(8), static_cast(ctx.gpr[11])); ctx.gpr[2] = (ctx.gpr[4] + static_cast(-251)); aot_mem.aot_store16(ctx.gpr[6] + static_cast(10), static_cast(ctx.gpr[2])); aot_mem.aot_store16(ctx.gpr[6] + static_cast(12), static_cast(ctx.gpr[7])); aot_mem.aot_store16(ctx.gpr[6] + static_cast(14), static_cast(ctx.gpr[9])); aot_mem.aot_store16(ctx.gpr[6] + static_cast(16), static_cast(ctx.gpr[8])); aot_mem.aot_store16(ctx.gpr[6] + static_cast(18), static_cast(ctx.gpr[10])); aot_mem.aot_store16(ctx.gpr[6] + static_cast(20), static_cast(ctx.gpr[2])); aot_mem.aot_store16(ctx.gpr[6] + static_cast(22), static_cast(ctx.gpr[11])); ctx.gpr[5] = (ctx.gpr[5] + static_cast(12)); aot_mem.aot_store32(ctx.gpr[18] + static_cast(-8172), ctx.gpr[5]); ctx.gpr[4] = (ctx.gpr[4] + static_cast(6)); aot_mem.aot_store32(ctx.gpr[16] + static_cast(-8168), ctx.gpr[4]); goto L_08809094; L_08809094: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[30] + static_cast(-8164))); ctx.gpr[4] = (static_cast(ctx.gpr[4]) < 1011 ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_088090B4; } goto L_088090A4; } L_088090A4: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast(-8160))); ctx.gpr[4] = (static_cast(ctx.gpr[4]) < 507 ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_088090BC; } goto L_088090B4; } L_088090B4: ctx.gpr[31] = (0x088090BCu); // nop if (rt.invoke_chained_direct<&recomp_unit_0000_entry, 0u, 733u, 0x0880712Cu>(ctx, &aot_mem) && ctx.pc == 0x088090BCu) goto L_088090BC; return; L_088090BC: ctx.set_fpu_condition((ctx.fpr[20] <= ctx.fpr[24])); // nop { const bool branch_taken = ctx.fpu_condition(); ctx.gpr[16] = (0u | 100u); if (branch_taken) { goto L_08809104; } goto L_088090CC; } L_088090CC: ctx.fpr[12] = ctx.fpr[20] - ctx.fpr[24]; ctx.gpr[4] = (16512u << 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.fpr[12] = ctx.fpr[12] / ctx.fpr[22]; ctx.gpr[4] = (16256u << 16u); ctx.gpr[5] = (17096u << 16u); ctx.fpr[15] = std::bit_cast(ctx.gpr[4]); ctx.fpr[14] = std::bit_cast(ctx.gpr[5]); ctx.fpr[12] = ctx.fpr[15] - ctx.fpr[12]; { 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[12] = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12])); ctx.gpr[16] = (std::bit_cast(ctx.fpr[12])); ctx.gpr[16] = (ctx.gpr[16] & 255u); goto L_08809104; L_08809104: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(224))); ctx.gpr[5] = (16384u << 16u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(16)); ctx.fpr[13] = std::bit_cast(ctx.gpr[5]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(8))); ctx.gpr[5] = (16544u << 16u); { 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[20] = std::bit_cast(0x7FC00000u); else ctx.fpr[20] = fs * ft; } ctx.fpr[15] = std::bit_cast(ctx.gpr[5]); ctx.fpr[20] = ctx.fpr[20] / ctx.fpr[15]; ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); ctx.gpr[31] = (0x08809134u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(4))); if (rt.invoke_chained_direct<&recomp_unit_0117_entry, 117u, 288u, 0x089D96E8u>(ctx, &aot_mem) && ctx.pc == 0x08809134u) goto L_08809134; return; L_08809134: ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[26])); // nop if (ctx.fpu_condition()) { ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[28]; goto L_08809148; } goto L_08809148; L_08809148: ctx.fpr[12] = ctx.fpr[12] / ctx.fpr[28]; ctx.gpr[4] = (aot_mem.aot_load16(ctx.gpr[22] + static_cast(86))); ctx.gpr[5] = (15523u << 16u); ctx.gpr[4] = (ctx.gpr[4] & 15u); ctx.gpr[5] = (ctx.gpr[5] | 55050u); ctx.gpr[7] = (15948u << 16u); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast(-8160))); ctx.gpr[7] = (ctx.gpr[7] | 52429u); ctx.gpr[6] = (ctx.gpr[6] << 5u); ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[23]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(4), std::bit_cast(ctx.fpr[20])); aot_mem.aot_store32(ctx.gpr[6] + static_cast(36), std::bit_cast(ctx.fpr[20])); aot_mem.aot_store32(ctx.gpr[6] + static_cast(164), std::bit_cast(ctx.fpr[20])); ctx.gpr[22] = (0u | 0u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[13] = static_cast(static_cast(std::bit_cast(ctx.fpr[13]))); ctx.fpr[14] = std::bit_cast(ctx.gpr[5]); ctx.fpr[15] = std::bit_cast(ctx.gpr[7]); ctx.fpr[16] = ctx.fpr[20] + ctx.fpr[15]; { 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] = (ctx.gpr[29] | 0u); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13]; ctx.fpr[15] = ctx.fpr[12] + ctx.fpr[15]; aot_mem.aot_store32(ctx.gpr[6] + static_cast(0), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[6] + static_cast(64), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[6] + static_cast(68), std::bit_cast(ctx.fpr[16])); aot_mem.aot_store32(ctx.gpr[6] + static_cast(32), std::bit_cast(ctx.fpr[15])); aot_mem.aot_store32(ctx.gpr[6] + static_cast(96), std::bit_cast(ctx.fpr[15])); aot_mem.aot_store32(ctx.gpr[6] + static_cast(100), std::bit_cast(ctx.fpr[16])); aot_mem.aot_store32(ctx.gpr[6] + static_cast(128), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[6] + static_cast(132), std::bit_cast(ctx.fpr[16])); aot_mem.aot_store32(ctx.gpr[6] + static_cast(160), std::bit_cast(ctx.fpr[15])); aot_mem.aot_store8(ctx.gpr[29] + static_cast(192), static_cast(ctx.gpr[16])); aot_mem.aot_store8(ctx.gpr[29] + static_cast(193), static_cast(ctx.gpr[16])); aot_mem.aot_store8(ctx.gpr[29] + static_cast(194), static_cast(ctx.gpr[16])); aot_mem.aot_store8(ctx.gpr[29] + static_cast(195), static_cast(ctx.gpr[16])); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(192))); goto L_088091DC; L_088091DC: ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast(-8160))); ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[22]); ctx.gpr[6] = (ctx.gpr[6] << 5u); ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[21]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(0), ctx.gpr[4]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(64))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(68))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(72))); ctx.gpr[7] = (std::bit_cast(ctx.fpr[12])); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast(-8160))); ctx.gpr[8] = (std::bit_cast(ctx.fpr[13])); ctx.gpr[9] = (std::bit_cast(ctx.fpr[14])); ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[22]); ctx.gpr[6] = (ctx.gpr[6] << 5u); ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[20]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(0), ctx.gpr[7]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(4), ctx.gpr[8]); aot_mem.aot_store32(ctx.gpr[6] + static_cast(8), ctx.gpr[9]); ctx.gpr[22] = (ctx.gpr[22] + static_cast(1)); ctx.gpr[6] = (static_cast(ctx.gpr[22]) < 6 ? 1u : 0u); { const bool branch_taken = ctx.gpr[6] != 0u; ctx.gpr[5] = (ctx.gpr[5] + static_cast(16)); if (branch_taken) { goto L_088091DC; } goto L_08809234; } L_08809234: aot_mem.aot_store32(ctx.gpr[29] + static_cast(196), std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast(-8160))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(200), std::bit_cast(ctx.fpr[13])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(204), std::bit_cast(ctx.fpr[14])); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[30] + static_cast(-8164))); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(228))); ctx.gpr[8] = (ctx.gpr[5] + ctx.gpr[5]); ctx.gpr[7] = (ctx.gpr[4] + static_cast(-384)); ctx.gpr[6] = (ctx.gpr[8] + ctx.gpr[6]); aot_mem.aot_store16(ctx.gpr[6] + static_cast(0), static_cast(ctx.gpr[7])); ctx.gpr[8] = (ctx.gpr[4] + static_cast(-383)); aot_mem.aot_store16(ctx.gpr[6] + static_cast(2), static_cast(ctx.gpr[8])); ctx.gpr[9] = (ctx.gpr[4] + static_cast(-382)); aot_mem.aot_store16(ctx.gpr[6] + static_cast(4), static_cast(ctx.gpr[9])); ctx.gpr[10] = (ctx.gpr[4] + static_cast(-381)); aot_mem.aot_store16(ctx.gpr[6] + static_cast(6), static_cast(ctx.gpr[10])); ctx.gpr[11] = (ctx.gpr[4] + static_cast(-380)); aot_mem.aot_store16(ctx.gpr[6] + static_cast(8), static_cast(ctx.gpr[11])); ctx.gpr[2] = (ctx.gpr[4] + static_cast(-379)); aot_mem.aot_store16(ctx.gpr[6] + static_cast(10), static_cast(ctx.gpr[2])); aot_mem.aot_store16(ctx.gpr[6] + static_cast(12), static_cast(ctx.gpr[7])); aot_mem.aot_store16(ctx.gpr[6] + static_cast(14), static_cast(ctx.gpr[9])); aot_mem.aot_store16(ctx.gpr[6] + static_cast(16), static_cast(ctx.gpr[8])); aot_mem.aot_store16(ctx.gpr[6] + static_cast(18), static_cast(ctx.gpr[10])); aot_mem.aot_store16(ctx.gpr[6] + static_cast(20), static_cast(ctx.gpr[2])); aot_mem.aot_store16(ctx.gpr[6] + static_cast(22), static_cast(ctx.gpr[11])); ctx.gpr[5] = (ctx.gpr[5] + static_cast(12)); aot_mem.aot_store32(ctx.gpr[30] + static_cast(-8164), ctx.gpr[5]); ctx.gpr[4] = (ctx.gpr[4] + static_cast(6)); aot_mem.aot_store32(ctx.gpr[19] + static_cast(-8160), ctx.gpr[4]); goto L_088092AC; L_088092AC: ctx.fpr[20] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(232))); ctx.fpr[22] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(236))); ctx.fpr[24] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(240))); ctx.fpr[26] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(244))); ctx.fpr[28] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(248))); ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(252))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(256))); ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(260))); ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(264))); ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(268))); ctx.gpr[21] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(272))); ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(276))); ctx.gpr[23] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(280))); ctx.gpr[30] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(284))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(288))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(304)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_088092F0: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-496)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(468), ctx.gpr[18]); ctx.gpr[18] = (ctx.gpr[5] | 0u); ctx.gpr[5] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[4] + static_cast(421)))))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(464), ctx.gpr[17]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(472), ctx.gpr[19]); ctx.gpr[17] = (ctx.gpr[7] & 255u); ctx.gpr[19] = (ctx.gpr[6] | 0u); ctx.gpr[5] = (ctx.gpr[5] & 32u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(448), std::bit_cast(ctx.fpr[20])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(452), std::bit_cast(ctx.fpr[22])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(456), std::bit_cast(ctx.fpr[24])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(460), ctx.gpr[16]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(476), ctx.gpr[20]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(480), ctx.gpr[21]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(484), ctx.gpr[22]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(488), ctx.gpr[31]); { const bool branch_taken = ctx.gpr[5] != 0u; ctx.gpr[16] = (ctx.gpr[4] | 0u); if (branch_taken) { goto L_0880937C; } goto L_0880933C; } L_0880933C: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[16] + static_cast(421)))))); ctx.gpr[5] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(88)))))); ctx.gpr[4] = (ctx.gpr[4] | 16u); aot_mem.aot_store8(ctx.gpr[16] + static_cast(421), static_cast(ctx.gpr[4])); ctx.gpr[4] = (ctx.gpr[5] << 2u); ctx.gpr[5] = (2229u << 16u); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast(-11604))); ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(20))); ctx.gpr[4] = (0u | 2u); ctx.gpr[5] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[20] + static_cast(52)))))); if (ctx.gpr[5] == ctx.gpr[4]) { ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast(76))); goto L_08809384; } goto L_08809374; L_08809374: { const bool branch_taken = 0u == 0u; ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[16] + static_cast(421)))))); if (branch_taken) { goto L_088098D4; } goto L_0880937C; } L_0880937C: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_088098FC; } goto L_08809384; } L_08809384: ctx.gpr[5] = (ctx.gpr[29] + static_cast(368)); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(368), static_cast(ctx.gpr[6])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(0)))))); ctx.gpr[6] = (ctx.gpr[6] << 16u); ctx.gpr[6] = (static_cast(static_cast(ctx.gpr[6]) >> 16u)); ctx.fpr[13] = std::bit_cast(ctx.gpr[6]); ctx.fpr[13] = static_cast(static_cast(std::bit_cast(ctx.fpr[13]))); ctx.gpr[6] = (15360u << 16u); ctx.fpr[14] = std::bit_cast(ctx.gpr[6]); { 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; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(64), std::bit_cast(ctx.fpr[13])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(2)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(368), static_cast(ctx.gpr[6])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(0)))))); ctx.gpr[6] = (ctx.gpr[6] << 16u); ctx.gpr[6] = (static_cast(static_cast(ctx.gpr[6]) >> 16u)); ctx.fpr[15] = std::bit_cast(ctx.gpr[6]); ctx.fpr[15] = static_cast(static_cast(std::bit_cast(ctx.fpr[15]))); { const float fs = ctx.fpr[15]; 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; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(68), std::bit_cast(ctx.fpr[15])); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(4)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(368), static_cast(ctx.gpr[4])); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(0)))))); ctx.gpr[4] = (ctx.gpr[4] << 16u); ctx.gpr[4] = (static_cast(static_cast(ctx.gpr[4]) >> 16u)); 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] = (ctx.gpr[29] + static_cast(370)); { const float fs = ctx.fpr[15]; 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; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(72), std::bit_cast(ctx.fpr[15])); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast(76))); ctx.gpr[5] = (ctx.gpr[5] + static_cast(6)); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(0)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(370), static_cast(ctx.gpr[6])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); ctx.gpr[6] = (ctx.gpr[6] << 16u); ctx.gpr[6] = (static_cast(static_cast(ctx.gpr[6]) >> 16u)); ctx.fpr[15] = std::bit_cast(ctx.gpr[6]); ctx.fpr[15] = static_cast(static_cast(std::bit_cast(ctx.fpr[15]))); { const float fs = ctx.fpr[15]; 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; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(80), std::bit_cast(ctx.fpr[15])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(2)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(370), static_cast(ctx.gpr[6])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); ctx.gpr[6] = (ctx.gpr[6] << 16u); ctx.gpr[6] = (static_cast(static_cast(ctx.gpr[6]) >> 16u)); ctx.fpr[16] = std::bit_cast(ctx.gpr[6]); ctx.fpr[16] = static_cast(static_cast(std::bit_cast(ctx.fpr[16]))); { 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[16] = std::bit_cast(0x7FC00000u); else ctx.fpr[16] = fs * ft; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(84), std::bit_cast(ctx.fpr[16])); ctx.gpr[5] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(4)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(370), static_cast(ctx.gpr[5])); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); ctx.gpr[4] = (ctx.gpr[4] << 16u); ctx.gpr[4] = (static_cast(static_cast(ctx.gpr[4]) >> 16u)); ctx.fpr[16] = std::bit_cast(ctx.gpr[4]); ctx.fpr[16] = static_cast(static_cast(std::bit_cast(ctx.fpr[16]))); ctx.gpr[4] = (ctx.gpr[29] + static_cast(372)); { 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[16] = std::bit_cast(0x7FC00000u); else ctx.fpr[16] = fs * ft; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(88), std::bit_cast(ctx.fpr[16])); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast(76))); ctx.gpr[5] = (ctx.gpr[5] + static_cast(12)); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(0)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(372), static_cast(ctx.gpr[6])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); ctx.gpr[6] = (ctx.gpr[6] << 16u); ctx.gpr[6] = (static_cast(static_cast(ctx.gpr[6]) >> 16u)); ctx.fpr[16] = std::bit_cast(ctx.gpr[6]); ctx.fpr[16] = static_cast(static_cast(std::bit_cast(ctx.fpr[16]))); { 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[16] = std::bit_cast(0x7FC00000u); else ctx.fpr[16] = fs * ft; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(96), std::bit_cast(ctx.fpr[16])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(2)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(372), static_cast(ctx.gpr[6])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); ctx.gpr[6] = (ctx.gpr[6] << 16u); ctx.gpr[6] = (static_cast(static_cast(ctx.gpr[6]) >> 16u)); ctx.fpr[16] = std::bit_cast(ctx.gpr[6]); ctx.fpr[16] = static_cast(static_cast(std::bit_cast(ctx.fpr[16]))); { 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[16] = std::bit_cast(0x7FC00000u); else ctx.fpr[16] = fs * ft; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(100), std::bit_cast(ctx.fpr[16])); ctx.gpr[5] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(4)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(372), static_cast(ctx.gpr[5])); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); ctx.gpr[4] = (ctx.gpr[4] << 16u); ctx.gpr[4] = (static_cast(static_cast(ctx.gpr[4]) >> 16u)); ctx.fpr[16] = std::bit_cast(ctx.gpr[4]); ctx.fpr[16] = static_cast(static_cast(std::bit_cast(ctx.fpr[16]))); ctx.gpr[4] = (ctx.gpr[29] + static_cast(374)); { 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[16] = std::bit_cast(0x7FC00000u); else ctx.fpr[16] = fs * ft; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(104), std::bit_cast(ctx.fpr[16])); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast(76))); ctx.gpr[5] = (ctx.gpr[5] + static_cast(18)); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(0)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(374), static_cast(ctx.gpr[6])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); ctx.gpr[6] = (ctx.gpr[6] << 16u); ctx.gpr[6] = (static_cast(static_cast(ctx.gpr[6]) >> 16u)); ctx.fpr[16] = std::bit_cast(ctx.gpr[6]); ctx.fpr[16] = static_cast(static_cast(std::bit_cast(ctx.fpr[16]))); { 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[16] = std::bit_cast(0x7FC00000u); else ctx.fpr[16] = fs * ft; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(112), std::bit_cast(ctx.fpr[16])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(2)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(374), static_cast(ctx.gpr[6])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); ctx.gpr[6] = (ctx.gpr[6] << 16u); ctx.gpr[6] = (static_cast(static_cast(ctx.gpr[6]) >> 16u)); ctx.fpr[16] = std::bit_cast(ctx.gpr[6]); ctx.fpr[16] = static_cast(static_cast(std::bit_cast(ctx.fpr[16]))); ctx.gpr[6] = (15820u << 16u); ctx.set_fpu_condition((ctx.fpr[13] < ctx.fpr[15])); { 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[16] = std::bit_cast(0x7FC00000u); else ctx.fpr[16] = fs * ft; } ctx.gpr[20] = (ctx.gpr[29] + static_cast(176)); ctx.gpr[21] = (ctx.gpr[29] + static_cast(192)); ctx.fpr[22] = std::bit_cast(0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(116), std::bit_cast(ctx.fpr[16])); ctx.gpr[5] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(4)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(374), static_cast(ctx.gpr[5])); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); ctx.gpr[4] = (ctx.gpr[4] << 16u); ctx.gpr[4] = (static_cast(static_cast(ctx.gpr[4]) >> 16u)); ctx.fpr[16] = std::bit_cast(ctx.gpr[4]); ctx.fpr[16] = static_cast(static_cast(std::bit_cast(ctx.fpr[16]))); ctx.gpr[5] = (ctx.gpr[6] | 52429u); ctx.gpr[4] = (ctx.gpr[16] + static_cast(48)); ctx.fpr[24] = std::bit_cast(ctx.gpr[5]); ctx.gpr[22] = (0u | 1u); { 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[13] = std::bit_cast(0x7FC00000u); else ctx.fpr[13] = fs * ft; } { const bool branch_taken = !ctx.fpu_condition(); aot_mem.aot_store32(ctx.gpr[29] + static_cast(120), std::bit_cast(ctx.fpr[13])); if (branch_taken) { goto L_08809594; } goto L_0880958C; } L_0880958C: { const bool branch_taken = 0u == 0u; ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(64))); if (branch_taken) { goto L_08809598; } goto L_08809594; } L_08809594: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(80))); goto L_08809598; L_08809598: ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(112))); ctx.set_fpu_condition((ctx.fpr[14] < ctx.fpr[15])); // nop if (!ctx.fpu_condition()) { ctx.fpr[20] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(112))); goto L_088095B8; } goto L_088095B0; L_088095B0: { const bool branch_taken = 0u == 0u; ctx.fpr[20] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); if (branch_taken) { goto L_088095B8; } goto L_088095B8; } L_088095B8: ctx.set_fpu_condition((ctx.fpr[13] < ctx.fpr[20])); // nop if (ctx.fpu_condition()) { ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[13])); goto L_088095C8; } goto L_088095C8; L_088095C8: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(64))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(80))); ctx.set_fpu_condition((ctx.fpr[13] <= ctx.fpr[14])); // nop if (ctx.fpu_condition()) { ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(80))); goto L_088095E8; } goto L_088095E0; L_088095E0: { const bool branch_taken = 0u == 0u; ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(64))); if (branch_taken) { goto L_088095E8; } goto L_088095E8; } L_088095E8: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(112))); ctx.set_fpu_condition((ctx.fpr[13] <= ctx.fpr[15])); // nop if (ctx.fpu_condition()) { ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(112))); goto L_08809608; } goto L_08809600; L_08809600: { const bool branch_taken = 0u == 0u; ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); if (branch_taken) { goto L_08809608; } goto L_08809608; } L_08809608: ctx.set_fpu_condition((ctx.fpr[13] < ctx.fpr[14])); // nop if (ctx.fpu_condition()) { ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[14])); goto L_08809618; } goto L_08809618; L_08809618: ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(68))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(84))); ctx.set_fpu_condition((ctx.fpr[14] < ctx.fpr[15])); // nop if (!ctx.fpu_condition()) { ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(84))); goto L_08809638; } goto L_08809630; L_08809630: { const bool branch_taken = 0u == 0u; ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(68))); if (branch_taken) { goto L_08809638; } goto L_08809638; } L_08809638: ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(116))); ctx.set_fpu_condition((ctx.fpr[14] < ctx.fpr[16])); // nop if (!ctx.fpu_condition()) { ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(116))); goto L_08809658; } goto L_08809650; L_08809650: { const bool branch_taken = 0u == 0u; ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); if (branch_taken) { goto L_08809658; } goto L_08809658; } L_08809658: ctx.set_fpu_condition((ctx.fpr[14] <= ctx.fpr[15])); // nop if (!ctx.fpu_condition()) { ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[15])); goto L_08809668; } goto L_08809668; L_08809668: ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(68))); ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(84))); ctx.set_fpu_condition((ctx.fpr[15] <= ctx.fpr[16])); // nop if (ctx.fpu_condition()) { ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(84))); goto L_08809688; } goto L_08809680; L_08809680: { const bool branch_taken = 0u == 0u; ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(68))); if (branch_taken) { goto L_08809688; } goto L_08809688; } L_08809688: ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); ctx.fpr[17] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(116))); ctx.set_fpu_condition((ctx.fpr[15] <= ctx.fpr[17])); // nop if (ctx.fpu_condition()) { ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(116))); goto L_088096A8; } goto L_088096A0; L_088096A0: { const bool branch_taken = 0u == 0u; ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); if (branch_taken) { goto L_088096A8; } goto L_088096A8; } L_088096A8: ctx.set_fpu_condition((ctx.fpr[15] < ctx.fpr[16])); // nop if (ctx.fpu_condition()) { ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[16])); goto L_088096B8; } goto L_088096B8; L_088096B8: ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(72))); ctx.fpr[17] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(88))); ctx.set_fpu_condition((ctx.fpr[16] < ctx.fpr[17])); // nop if (!ctx.fpu_condition()) { ctx.fpr[17] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(88))); goto L_088096D8; } goto L_088096D0; L_088096D0: { const bool branch_taken = 0u == 0u; ctx.fpr[17] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(72))); if (branch_taken) { goto L_088096D8; } goto L_088096D8; } L_088096D8: ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); ctx.fpr[18] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(120))); ctx.set_fpu_condition((ctx.fpr[16] < ctx.fpr[18])); // nop if (!ctx.fpu_condition()) { ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(120))); goto L_088096F8; } goto L_088096F0; L_088096F0: { const bool branch_taken = 0u == 0u; ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); if (branch_taken) { goto L_088096F8; } goto L_088096F8; } L_088096F8: ctx.set_fpu_condition((ctx.fpr[16] <= ctx.fpr[17])); // nop if (!ctx.fpu_condition()) { ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[17])); goto L_08809708; } goto L_08809708; L_08809708: ctx.fpr[17] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(72))); ctx.fpr[18] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(88))); ctx.set_fpu_condition((ctx.fpr[17] <= ctx.fpr[18])); // nop if (ctx.fpu_condition()) { ctx.fpr[18] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(88))); goto L_08809728; } goto L_08809720; L_08809720: { const bool branch_taken = 0u == 0u; ctx.fpr[18] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(72))); if (branch_taken) { goto L_08809728; } goto L_08809728; } L_08809728: ctx.fpr[17] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); ctx.fpr[19] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(120))); ctx.set_fpu_condition((ctx.fpr[17] <= ctx.fpr[19])); // nop if (ctx.fpu_condition()) { ctx.fpr[17] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(120))); goto L_08809748; } goto L_08809740; L_08809740: { const bool branch_taken = 0u == 0u; ctx.fpr[17] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); if (branch_taken) { goto L_08809748; } goto L_08809748; } L_08809748: ctx.set_fpu_condition((ctx.fpr[17] < ctx.fpr[18])); // nop if (ctx.fpu_condition()) { ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[18])); goto L_08809758; } goto L_08809758; L_08809758: aot_mem.aot_store32(ctx.gpr[29] + static_cast(144), std::bit_cast(ctx.fpr[20])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(148), std::bit_cast(ctx.fpr[14])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(152), std::bit_cast(ctx.fpr[16])); ctx.gpr[5] = (ctx.gpr[29] + static_cast(144)); { 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[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<4u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(16); 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<5u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(32); 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<6u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(48); 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<7u, 4u>(vfpu_value); } { float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{}; ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u); ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw); constexpr std::uint32_t vfpu_side = 3u; constexpr std::uint32_t vfpu_input_length = 3u; for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f; if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f; for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) { float sum = 0.0f; for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column]; vfpu_result[row] = sum; } float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u], vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]}; ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row); ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target); for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column]; const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2]; const std::uint32_t vfpu_last_lane = vfpu_side - 1u; ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) | ((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u)); ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); } { 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<7u, 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[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])); } aot_mem.aot_store32(ctx.gpr[29] + static_cast(160), std::bit_cast(ctx.fpr[13])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(164), std::bit_cast(ctx.fpr[15])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(168), std::bit_cast(ctx.fpr[16])); ctx.gpr[5] = (ctx.gpr[29] + static_cast(160)); { 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[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<4u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(16); 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<5u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(32); 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<6u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(48); 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<7u, 4u>(vfpu_value); } { float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{}; ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u); ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw); constexpr std::uint32_t vfpu_side = 3u; constexpr std::uint32_t vfpu_input_length = 3u; for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f; if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f; for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) { float sum = 0.0f; for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column]; vfpu_result[row] = sum; } float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u], vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]}; ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row); ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target); for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column]; const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2]; const std::uint32_t vfpu_last_lane = vfpu_side - 1u; ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) | ((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u)); ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); } { 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<7u, 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[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[5] = (17302u << 16u); ctx.fpr[13] = std::bit_cast(ctx.gpr[5]); ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13])); // nop { const bool branch_taken = ctx.fpu_condition(); ctx.fpr[20] = ctx.fpr[17] - ctx.fpr[16]; if (branch_taken) { goto L_08809854; } goto L_088097D0; } L_088097D0: ctx.gpr[5] = (ctx.gpr[4] | 0u); ctx.gpr[31] = (0x088097DCu); ctx.gpr[4] = (0u | 77u); if (rt.invoke_chained_direct<&recomp_unit_0090_entry, 90u, 617u, 0x0896ED98u>(ctx, &aot_mem) && ctx.pc == 0x088097DCu) goto L_088097DC; return; L_088097DC: { 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.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])); } aot_mem.aot_store32(ctx.gpr[29] + static_cast(224), std::bit_cast(ctx.fpr[22])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(228), std::bit_cast(ctx.fpr[22])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(232), std::bit_cast(ctx.fpr[20])); ctx.gpr[6] = (ctx.gpr[29] + static_cast(224)); { 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[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_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[7] = (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[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[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.gpr[8] = (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[8] + 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[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[9] = (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[9] + 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] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[16] + static_cast(421)))))); ctx.gpr[4] = (ctx.gpr[4] & 16u); ctx.gpr[10] = (0u < ctx.gpr[4] ? 1u : 0u); ctx.gpr[10] = (ctx.gpr[10] & 255u); ctx.gpr[4] = (0u | 0u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[24])); ctx.gpr[11] = (ctx.gpr[17] | 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(0), ctx.gpr[22]); ctx.gpr[31] = (0x0880984Cu); aot_mem.aot_store32(ctx.gpr[29] + static_cast(4), 0u); goto L_08808458; L_0880984C: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_088098D0; } goto L_08809854; } L_08809854: ctx.gpr[5] = (ctx.gpr[4] | 0u); ctx.gpr[31] = (0x08809860u); ctx.gpr[4] = (0u | 78u); if (rt.invoke_chained_direct<&recomp_unit_0090_entry, 90u, 617u, 0x0896ED98u>(ctx, &aot_mem) && ctx.pc == 0x08809860u) goto L_08809860; return; L_08809860: { 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.gpr[5] = (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[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(304), std::bit_cast(ctx.fpr[22])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(308), std::bit_cast(ctx.fpr[22])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(312), std::bit_cast(ctx.fpr[20])); ctx.gpr[6] = (ctx.gpr[29] + static_cast(304)); { 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[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_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[7] = (ctx.gpr[29] + static_cast(320)); { 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[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.gpr[8] = (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[8] + 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[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[9] = (ctx.gpr[29] + static_cast(352)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[9] + 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] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[16] + static_cast(421)))))); ctx.gpr[4] = (ctx.gpr[4] & 16u); ctx.gpr[10] = (0u < ctx.gpr[4] ? 1u : 0u); ctx.gpr[10] = (ctx.gpr[10] & 255u); ctx.gpr[4] = (0u | 1u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[24])); ctx.gpr[11] = (ctx.gpr[17] | 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(0), ctx.gpr[22]); ctx.gpr[31] = (0x088098D0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(4), 0u); goto L_08808458; L_088098D0: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[16] + static_cast(421)))))); goto L_088098D4; L_088098D4: ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(68))); ctx.gpr[4] = (ctx.gpr[4] | 32u); ctx.gpr[6] = (65528u << 16u); ctx.gpr[6] = (ctx.gpr[6] + static_cast(-1)); aot_mem.aot_store8(ctx.gpr[16] + static_cast(421), static_cast(ctx.gpr[4])); ctx.gpr[4] = (ctx.gpr[5] & ctx.gpr[6]); aot_mem.aot_store32(ctx.gpr[16] + static_cast(68), ctx.gpr[4]); ctx.gpr[5] = (0u + static_cast(-513)); ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]); aot_mem.aot_store32(ctx.gpr[16] + static_cast(68), ctx.gpr[4]); goto L_088098FC; L_088098FC: ctx.fpr[20] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(448))); ctx.fpr[22] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(452))); ctx.fpr[24] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(456))); ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(460))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(464))); ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(468))); ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(472))); ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(476))); ctx.gpr[21] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(480))); ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(484))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(488))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(496)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_08809930: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-672)); ctx.gpr[5] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(88)))))); ctx.gpr[6] = (2229u << 16u); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast(-11604))); ctx.gpr[5] = (ctx.gpr[5] << 2u); ctx.gpr[5] = (ctx.gpr[6] + ctx.gpr[5]); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast(0))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(632), ctx.gpr[17]); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast(20))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(628), ctx.gpr[16]); ctx.gpr[16] = (ctx.gpr[4] | 0u); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[17] + static_cast(52)))))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(636), ctx.gpr[18]); ctx.gpr[4] = (static_cast(ctx.gpr[4]) < 2 ? 1u : 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(640), ctx.gpr[19]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(644), ctx.gpr[20]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(648), ctx.gpr[21]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(652), ctx.gpr[22]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(656), ctx.gpr[23]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(660), ctx.gpr[30]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(664), ctx.gpr[31]); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_08809994; } goto L_0880998C; } L_0880998C: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_08809EE4; } goto L_08809994; } L_08809994: ctx.gpr[5] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[17] + static_cast(52)))))); ctx.gpr[4] = (0u | 0u); ctx.gpr[18] = (0u | 0u); ctx.gpr[5] = (static_cast(ctx.gpr[4]) < static_cast(ctx.gpr[5]) ? 1u : 0u); { const bool branch_taken = ctx.gpr[5] == 0u; ctx.gpr[19] = (0u | 0u); if (branch_taken) { goto L_088099FC; } goto L_088099AC; } L_088099AC: ctx.gpr[6] = (0u | 7u); ctx.gpr[5] = (0u | 0u); goto L_088099B4; L_088099B4: ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(80))); ctx.gpr[7] = (ctx.gpr[7] + ctx.gpr[5]); ctx.gpr[7] = (aot_mem.aot_load8(ctx.gpr[7] + static_cast(6))); { const bool branch_taken = ctx.gpr[7] != ctx.gpr[6]; // nop if (branch_taken) { goto L_088099E8; } goto L_088099C8; } L_088099C8: { const bool branch_taken = ctx.gpr[18] != 0u; // nop if (branch_taken) { goto L_088099DC; } goto L_088099D0; } L_088099D0: ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(80))); { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (ctx.gpr[18] + ctx.gpr[5]); if (branch_taken) { goto L_088099E8; } goto L_088099DC; } L_088099DC: ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(80))); { const bool branch_taken = 0u == 0u; ctx.gpr[19] = (ctx.gpr[19] + ctx.gpr[5]); if (branch_taken) { goto L_088099FC; } goto L_088099E8; } L_088099E8: ctx.gpr[7] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[17] + static_cast(52)))))); ctx.gpr[4] = (ctx.gpr[4] + static_cast(1)); ctx.gpr[7] = (static_cast(ctx.gpr[4]) < static_cast(ctx.gpr[7]) ? 1u : 0u); { const bool branch_taken = ctx.gpr[7] != 0u; ctx.gpr[5] = (ctx.gpr[5] + static_cast(8)); if (branch_taken) { goto L_088099B4; } goto L_088099FC; } L_088099FC: { const bool branch_taken = ctx.gpr[19] != 0u; ctx.gpr[22] = (ctx.gpr[19] | 0u); if (branch_taken) { goto L_08809A0C; } goto L_08809A04; } L_08809A04: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_08809EE4; } goto L_08809A0C; } L_08809A0C: ctx.gpr[23] = (ctx.gpr[18] | 0u); ctx.gpr[30] = (ctx.gpr[17] | 0u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[30] + static_cast(80))); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[30] + static_cast(76))); ctx.gpr[6] = (ctx.gpr[29] + static_cast(368)); ctx.gpr[18] = (ctx.gpr[29] + static_cast(384)); ctx.gpr[19] = (ctx.gpr[29] + static_cast(400)); ctx.gpr[7] = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08809A34u); ctx.gpr[8] = (ctx.gpr[19] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0134_entry, 134u, 312u, 0x08A1E040u>(ctx, &aot_mem) && ctx.pc == 0x08809A34u) goto L_08809A34; return; L_08809A34: ctx.gpr[4] = (ctx.gpr[29] + static_cast(416)); { 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[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<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[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[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); } { 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<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[18] = (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[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[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); } { 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<2u, 4u>(vfpu_value); } ctx.execute_vfpu_cross_quat(0u, 1u, 2u, 3u); ctx.gpr[19] = (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[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])); } { 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[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[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[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<4u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(16); 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<5u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(32); 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<6u, 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<7u, 4u>(vfpu_value); } { float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{}; ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u); ctx.read_vfpu_vector_ct<7u, 3u>(vfpu_target_raw); constexpr std::uint32_t vfpu_side = 3u; constexpr std::uint32_t vfpu_input_length = 3u; for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f; if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f; for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) { float sum = 0.0f; for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column]; vfpu_result[row] = sum; } float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u], vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]}; ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row); ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target); for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column]; const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2]; const std::uint32_t vfpu_last_lane = vfpu_side - 1u; ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) | ((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u)); ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); } { 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); } { 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[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); } { 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); { 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.gpr[20] = (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[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])); } { 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[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<2u, 4u>(vfpu_value); } ctx.execute_vfpu_cross_quat(0u, 1u, 2u, 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])); } { 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.gpr[21] = (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[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])); } { 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_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[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[5] = (aot_mem.aot_load32(ctx.gpr[30] + static_cast(76))); ctx.gpr[4] = (ctx.gpr[23] | 0u); ctx.gpr[23] = (ctx.gpr[29] + static_cast(176)); ctx.gpr[6] = (ctx.gpr[23] | 0u); ctx.gpr[19] = (ctx.gpr[29] + static_cast(192)); ctx.gpr[7] = (ctx.gpr[19] | 0u); ctx.gpr[17] = (ctx.gpr[29] + static_cast(208)); ctx.gpr[31] = (0x08809B60u); ctx.gpr[8] = (ctx.gpr[17] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0134_entry, 134u, 312u, 0x08A1E040u>(ctx, &aot_mem) && ctx.pc == 0x08809B60u) goto L_08809B60; return; L_08809B60: ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[30] + static_cast(76))); ctx.gpr[30] = (ctx.gpr[29] + static_cast(224)); ctx.gpr[4] = (ctx.gpr[22] | 0u); ctx.gpr[6] = (ctx.gpr[30] | 0u); ctx.gpr[22] = (ctx.gpr[29] + static_cast(240)); ctx.gpr[7] = (ctx.gpr[22] | 0u); ctx.gpr[21] = (ctx.gpr[29] + static_cast(256)); ctx.gpr[31] = (0x08809B84u); ctx.gpr[8] = (ctx.gpr[21] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0134_entry, 134u, 312u, 0x08A1E040u>(ctx, &aot_mem) && ctx.pc == 0x08809B84u) goto L_08809B84; return; L_08809B84: ctx.gpr[4] = (ctx.gpr[18] | 0u); ctx.gpr[5] = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x08809B94u); ctx.gpr[6] = (ctx.gpr[23] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0000_entry, 0u, 667u, 0x08806B70u>(ctx, &aot_mem) && ctx.pc == 0x08809B94u) goto L_08809B94; return; L_08809B94: { 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); } { 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])); } ctx.gpr[4] = (ctx.gpr[18] | 0u); ctx.gpr[5] = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x08809BACu); ctx.gpr[6] = (ctx.gpr[19] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0000_entry, 0u, 667u, 0x08806B70u>(ctx, &aot_mem) && ctx.pc == 0x08809BACu) goto L_08809BAC; return; L_08809BAC: { 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); } { 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] = (ctx.gpr[18] | 0u); ctx.gpr[5] = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x08809BC4u); ctx.gpr[6] = (ctx.gpr[17] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0000_entry, 0u, 667u, 0x08806B70u>(ctx, &aot_mem) && ctx.pc == 0x08809BC4u) goto L_08809BC4; return; L_08809BC4: { 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); } { 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] = (ctx.gpr[18] | 0u); ctx.gpr[5] = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x08809BDCu); ctx.gpr[6] = (ctx.gpr[30] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0000_entry, 0u, 667u, 0x08806B70u>(ctx, &aot_mem) && ctx.pc == 0x08809BDCu) goto L_08809BDC; return; L_08809BDC: { 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); } { 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[4] = (ctx.gpr[18] | 0u); ctx.gpr[5] = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x08809BF4u); ctx.gpr[6] = (ctx.gpr[22] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0000_entry, 0u, 667u, 0x08806B70u>(ctx, &aot_mem) && ctx.pc == 0x08809BF4u) goto L_08809BF4; return; L_08809BF4: { 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); } { 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] = (ctx.gpr[18] | 0u); ctx.gpr[5] = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x08809C0Cu); ctx.gpr[6] = (ctx.gpr[21] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0000_entry, 0u, 667u, 0x08806B70u>(ctx, &aot_mem) && ctx.pc == 0x08809C0Cu) goto L_08809C0C; return; L_08809C0C: { 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); } { 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])); } { 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[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); } 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]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(320), std::bit_cast(ctx.fpr[12])); { 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[21] = (ctx.gpr[29] + static_cast(304)); { 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); } 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]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(344), std::bit_cast(ctx.fpr[12])); { 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); } { 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); } 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]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(324), std::bit_cast(ctx.fpr[12])); { 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); } { 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); } 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]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(348), std::bit_cast(ctx.fpr[12])); { 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[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); } 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]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(328), std::bit_cast(ctx.fpr[12])); { 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[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); } 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]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(352), std::bit_cast(ctx.fpr[12])); { 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); } { 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); } 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]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(332), std::bit_cast(ctx.fpr[12])); { 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); } { 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); } 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]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(356), std::bit_cast(ctx.fpr[12])); { 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); } { 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); } 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]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(336), std::bit_cast(ctx.fpr[12])); { 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); } { 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); } 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]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(360), std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (ctx.gpr[29] + static_cast(256)); { 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[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); } ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>(); ctx.gpr[5] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[5]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(340), 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); } { 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); } 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]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(364), std::bit_cast(ctx.fpr[12])); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(320))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(344))); ctx.fpr[12] = ctx.fpr[13] + ctx.fpr[14]; ctx.gpr[4] = (0u | 0u); ctx.gpr[5] = (0u | 1u); ctx.gpr[19] = (ctx.gpr[29] + static_cast(48)); ctx.gpr[17] = (ctx.gpr[29] + static_cast(64)); ctx.gpr[6] = (ctx.gpr[5] << 2u); goto L_08809D5C; L_08809D5C: ctx.gpr[6] = (ctx.gpr[29] + ctx.gpr[6]); ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[6] + static_cast(320))); ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[6] + static_cast(344))); ctx.fpr[15] = ctx.fpr[15] + ctx.fpr[16]; ctx.set_fpu_condition((ctx.fpr[15] < ctx.fpr[12])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_08809D8C; } goto L_08809D7C; } L_08809D7C: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[6] + static_cast(320))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[6] + static_cast(344))); ctx.gpr[4] = (ctx.gpr[5] | 0u); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[15]; goto L_08809D8C; L_08809D8C: ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[6] + static_cast(320))); ctx.set_fpu_condition((ctx.fpr[15] <= ctx.fpr[13])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_08809DA4; } goto L_08809DA0; } L_08809DA0: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[6] + static_cast(320))); goto L_08809DA4; L_08809DA4: ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[6] + static_cast(344))); ctx.set_fpu_condition((ctx.fpr[15] <= ctx.fpr[14])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_08809DBC; } goto L_08809DB8; } L_08809DB8: ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[6] + static_cast(344))); goto L_08809DBC; L_08809DBC: ctx.gpr[5] = (ctx.gpr[5] + static_cast(1)); ctx.gpr[5] = (ctx.gpr[5] << 16u); ctx.gpr[5] = (static_cast(static_cast(ctx.gpr[5]) >> 16u)); ctx.gpr[6] = (static_cast(ctx.gpr[5]) < 6 ? 1u : 0u); { const bool branch_taken = ctx.gpr[6] != 0u; ctx.gpr[6] = (ctx.gpr[5] << 2u); if (branch_taken) { goto L_08809D5C; } goto L_08809DD4; } L_08809DD4: ctx.gpr[5] = (ctx.gpr[4] << 2u); ctx.gpr[5] = (ctx.gpr[29] + ctx.gpr[5]); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(320))); ctx.fpr[12] = ctx.fpr[13] - ctx.fpr[12]; ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(344))); ctx.fpr[14] = ctx.fpr[14] - ctx.fpr[15]; ctx.gpr[4] = (ctx.gpr[4] << 4u); ctx.gpr[4] = (ctx.gpr[29] + ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[4] + static_cast(176)); { 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[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[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[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[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[5] = (std::bit_cast(ctx.fpr[14])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[5]); { 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.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[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[5] = (ctx.gpr[16] + static_cast(112)); { 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[8] = (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[8] + 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] = (16128u << 16u); 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[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>(); ctx.gpr[5] = (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[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); } { 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); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(128)); { 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 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[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[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.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); ctx.gpr[5] = (ctx.gpr[29] + static_cast(160)); { 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); } { 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); } ctx.gpr[9] = (ctx.gpr[29] + static_cast(112)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[9] + 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] = (15820u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 52429u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); ctx.gpr[2] = (0u | 2u); ctx.gpr[3] = (0u | 1u); ctx.gpr[4] = (0u | 2u); ctx.gpr[5] = (ctx.gpr[18] | 0u); ctx.gpr[6] = (ctx.gpr[17] | 0u); ctx.gpr[7] = (ctx.gpr[19] | 0u); ctx.gpr[10] = (0u | 0u); ctx.gpr[11] = (0u | 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(0), ctx.gpr[2]); ctx.gpr[31] = (0x08809ED8u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(4), ctx.gpr[3]); goto L_08808458; L_08809ED8: ctx.gpr[5] = (ctx.gpr[16] + static_cast(48)); ctx.gpr[31] = (0x08809EE4u); ctx.gpr[4] = (0u | 77u); if (rt.invoke_chained_direct<&recomp_unit_0090_entry, 90u, 617u, 0x0896ED98u>(ctx, &aot_mem) && ctx.pc == 0x08809EE4u) goto L_08809EE4; return; L_08809EE4: ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(628))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(632))); ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(636))); ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(640))); ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(644))); ctx.gpr[21] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(648))); ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(652))); ctx.gpr[23] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(656))); ctx.gpr[30] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(660))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(664))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(672)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_08809F14: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-480)); ctx.gpr[5] = (2229u << 16u); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast(-15300))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(48), ctx.gpr[4]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast(8))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(416), ctx.gpr[5]); ctx.gpr[5] = (2227u << 16u); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast(352))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(412), ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[5] + static_cast(1000)); ctx.gpr[5] = (2230u << 16u); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast(-8148))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(420), std::bit_cast(ctx.fpr[20])); ctx.gpr[4] = (ctx.gpr[5] < ctx.gpr[4] ? 1u : 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(424), std::bit_cast(ctx.fpr[22])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(428), std::bit_cast(ctx.fpr[24])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(432), std::bit_cast(ctx.fpr[26])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(436), std::bit_cast(ctx.fpr[28])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(440), ctx.gpr[16]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(444), ctx.gpr[17]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(448), ctx.gpr[18]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(452), ctx.gpr[19]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(456), ctx.gpr[20]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(460), ctx.gpr[21]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(464), ctx.gpr[22]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(468), ctx.gpr[23]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(472), ctx.gpr[30]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(476), ctx.gpr[31]); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_08809FB0; } goto L_08809F8C; } L_08809F8C: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(412))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(76), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store8(ctx.gpr[29] + static_cast(81), static_cast(0u)); aot_mem.aot_store8(ctx.gpr[29] + static_cast(80), static_cast(0u)); ctx.gpr[23] = (ctx.gpr[4] + static_cast(-1)); { const bool branch_taken = ctx.gpr[4] != 0u; aot_mem.aot_store32(ctx.gpr[29] + static_cast(412), ctx.gpr[23]); if (branch_taken) { goto L_08809FB8; } goto L_08809FA8; } L_08809FA8: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0880A6DC; } goto L_08809FB0; } L_08809FB0: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0880A6DC; } goto L_08809FB8; } L_08809FB8: ctx.gpr[4] = (ctx.gpr[23] << 5u); ctx.gpr[5] = (0u + ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[4] << 4u); ctx.fpr[26] = std::bit_cast(0u); ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(408), ctx.gpr[4]); ctx.gpr[4] = (15820u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 52429u); ctx.fpr[28] = std::bit_cast(ctx.gpr[4]); ctx.gpr[21] = (ctx.gpr[29] + static_cast(64)); ctx.gpr[4] = (15360u << 16u); ctx.gpr[30] = (ctx.gpr[29] + static_cast(96)); ctx.fpr[20] = std::bit_cast(ctx.gpr[4]); goto L_08809FEC; L_08809FEC: ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(416))); ctx.gpr[9] = (0u | 1u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[7] + static_cast(4))); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[23]); ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast(0))); ctx.gpr[4] = (ctx.gpr[4] & 128u); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.gpr[8] = (2229u << 16u); if (branch_taken) { goto L_0880A014; } goto L_0880A00C; } L_0880A00C: { const bool branch_taken = 0u == 0u; ctx.gpr[4] = (0u | 0u); if (branch_taken) { goto L_0880A020; } goto L_0880A014; } L_0880A014: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(408))); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[7] + static_cast(0))); ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]); goto L_0880A020; L_0880A020: ctx.gpr[20] = (ctx.gpr[4] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; // nop if (branch_taken) { goto L_0880A6BC; } goto L_0880A02C; } L_0880A02C: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[20] + static_cast(88)))))); ctx.gpr[5] = (2230u << 16u); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast(-8152))); ctx.gpr[5] = (static_cast(ctx.gpr[4]) < static_cast(ctx.gpr[5]) ? 1u : 0u); { const bool branch_taken = ctx.gpr[5] == 0u; ctx.gpr[7] = (0u | 0u); if (branch_taken) { goto L_0880A054; } goto L_0880A044; } L_0880A044: ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[8] + static_cast(-11604))); ctx.gpr[4] = (ctx.gpr[4] << 2u); ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]); ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); goto L_0880A054; L_0880A054: ctx.gpr[4] = (ctx.gpr[7] | 0u); ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast(16))); if (ctx.gpr[5] == ctx.gpr[9]) { ctx.gpr[5] = (aot_mem.aot_load16(ctx.gpr[4] + static_cast(54))); goto L_0880A07C; } goto L_0880A064; L_0880A064: ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast(16))); ctx.gpr[6] = (0u | 3u); if (ctx.gpr[5] == ctx.gpr[6]) { ctx.gpr[5] = (aot_mem.aot_load16(ctx.gpr[4] + static_cast(54))); goto L_0880A07C; } goto L_0880A074; L_0880A074: { const bool branch_taken = 0u == 0u; ctx.gpr[4] = (0u | 0u); if (branch_taken) { goto L_0880A0A0; } goto L_0880A07C; } L_0880A07C: ctx.gpr[5] = (ctx.gpr[5] & 8192u); { const bool branch_taken = ctx.gpr[5] != 0u; ctx.gpr[7] = (0u | 0u); if (branch_taken) { goto L_0880A098; } goto L_0880A088; } L_0880A088: ctx.gpr[4] = (aot_mem.aot_load16(ctx.gpr[4] + static_cast(54))); ctx.gpr[4] = (ctx.gpr[4] & 16384u); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.gpr[4] = (ctx.gpr[7] & 255u); if (branch_taken) { goto L_0880A0A0; } goto L_0880A098; } L_0880A098: ctx.gpr[7] = (ctx.gpr[9] | 0u); ctx.gpr[4] = (ctx.gpr[7] & 255u); goto L_0880A0A0; L_0880A0A0: { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0880A6BC; } goto L_0880A0A8; } L_0880A0A8: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast(68))); ctx.gpr[4] = (ctx.gpr[4] & 512u); 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_0880A6BC; } goto L_0880A0C0; } L_0880A0C0: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[20] + static_cast(88)))))); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[8] + static_cast(-11604))); ctx.gpr[4] = (ctx.gpr[4] << 2u); ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(20))); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[18] + static_cast(52)))))); ctx.gpr[4] = (static_cast(ctx.gpr[4]) < 2 ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0880A6BC; } goto L_0880A0E8; } L_0880A0E8: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(48))); ctx.gpr[19] = (0u | 0u); { 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[22] = (ctx.gpr[20] + static_cast(48)); { 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); } ctx.gpr[4] = (ctx.gpr[29] + static_cast(112)); { 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[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<0u, 4u>(vfpu_value); } { 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); } 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]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(64), std::bit_cast(ctx.fpr[12])); { 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.gpr[4] = (ctx.gpr[20] + 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[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(68), std::bit_cast(ctx.fpr[12])); { 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.gpr[4] = (ctx.gpr[20] + 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); } 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]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(72), std::bit_cast(ctx.fpr[12])); ctx.gpr[17] = (0u | 0u); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[18] + static_cast(52)))))); ctx.gpr[4] = (static_cast(ctx.gpr[17]) < static_cast(ctx.gpr[4]) ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.gpr[16] = (0u | 0u); if (branch_taken) { goto L_0880A1A8; } goto L_0880A174; } L_0880A174: ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(76))); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(80))); ctx.gpr[4] = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x0880A188u); ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[16]); if (rt.invoke_chained_direct<&recomp_unit_0050_entry, 50u, 63u, 0x088CCAB8u>(ctx, &aot_mem) && ctx.pc == 0x0880A188u) goto L_0880A188; return; L_0880A188: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0880A194; } goto L_0880A190; } L_0880A190: ctx.gpr[19] = (0u | 1u); goto L_0880A194; L_0880A194: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[18] + static_cast(52)))))); ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); ctx.gpr[4] = (static_cast(ctx.gpr[17]) < static_cast(ctx.gpr[4]) ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] != 0u; ctx.gpr[16] = (ctx.gpr[16] + static_cast(8)); if (branch_taken) { goto L_0880A174; } goto L_0880A1A8; } L_0880A1A8: { const bool branch_taken = ctx.gpr[19] == 0u; // nop if (branch_taken) { goto L_0880A6BC; } goto L_0880A1B0; } L_0880A1B0: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[20] + static_cast(421)))))); ctx.gpr[5] = (2230u << 16u); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast(-8148))); ctx.gpr[6] = (2227u << 16u); ctx.gpr[4] = (ctx.gpr[4] & 16u); { const bool branch_taken = ctx.gpr[4] == 0u; aot_mem.aot_store32(ctx.gpr[6] + static_cast(352), ctx.gpr[5]); if (branch_taken) { goto L_0880A6A4; } goto L_0880A1CC; } L_0880A1CC: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(76))); ctx.gpr[5] = (ctx.gpr[29] + static_cast(336)); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(336), static_cast(ctx.gpr[6])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(0)))))); ctx.gpr[6] = (ctx.gpr[6] << 16u); ctx.gpr[6] = (static_cast(static_cast(ctx.gpr[6]) >> 16u)); ctx.fpr[12] = std::bit_cast(ctx.gpr[6]); 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; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(224), std::bit_cast(ctx.fpr[12])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(2)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(336), static_cast(ctx.gpr[6])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(0)))))); ctx.gpr[6] = (ctx.gpr[6] << 16u); ctx.gpr[6] = (static_cast(static_cast(ctx.gpr[6]) >> 16u)); ctx.fpr[13] = std::bit_cast(ctx.gpr[6]); ctx.fpr[13] = static_cast(static_cast(std::bit_cast(ctx.fpr[13]))); { 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; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(228), std::bit_cast(ctx.fpr[13])); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(4)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(336), static_cast(ctx.gpr[4])); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(0)))))); ctx.gpr[4] = (ctx.gpr[4] << 16u); ctx.gpr[4] = (static_cast(static_cast(ctx.gpr[4]) >> 16u)); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[13] = static_cast(static_cast(std::bit_cast(ctx.fpr[13]))); ctx.gpr[4] = (ctx.gpr[29] + static_cast(338)); { 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; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(232), std::bit_cast(ctx.fpr[13])); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(76))); ctx.gpr[5] = (ctx.gpr[5] + static_cast(6)); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(0)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(338), static_cast(ctx.gpr[6])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); ctx.gpr[6] = (ctx.gpr[6] << 16u); ctx.gpr[6] = (static_cast(static_cast(ctx.gpr[6]) >> 16u)); ctx.fpr[13] = std::bit_cast(ctx.gpr[6]); ctx.fpr[13] = static_cast(static_cast(std::bit_cast(ctx.fpr[13]))); { 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; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(240), std::bit_cast(ctx.fpr[13])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(2)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(338), static_cast(ctx.gpr[6])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); ctx.gpr[6] = (ctx.gpr[6] << 16u); ctx.gpr[6] = (static_cast(static_cast(ctx.gpr[6]) >> 16u)); ctx.fpr[14] = std::bit_cast(ctx.gpr[6]); ctx.fpr[14] = static_cast(static_cast(std::bit_cast(ctx.fpr[14]))); { const float fs = ctx.fpr[14]; 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; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(244), std::bit_cast(ctx.fpr[14])); ctx.gpr[5] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(4)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(338), static_cast(ctx.gpr[5])); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); ctx.gpr[4] = (ctx.gpr[4] << 16u); ctx.gpr[4] = (static_cast(static_cast(ctx.gpr[4]) >> 16u)); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); ctx.fpr[14] = static_cast(static_cast(std::bit_cast(ctx.fpr[14]))); ctx.gpr[4] = (ctx.gpr[29] + static_cast(340)); { const float fs = ctx.fpr[14]; 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; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(248), std::bit_cast(ctx.fpr[14])); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(76))); ctx.gpr[5] = (ctx.gpr[5] + static_cast(12)); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(0)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(340), static_cast(ctx.gpr[6])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); ctx.gpr[6] = (ctx.gpr[6] << 16u); ctx.gpr[6] = (static_cast(static_cast(ctx.gpr[6]) >> 16u)); ctx.fpr[14] = std::bit_cast(ctx.gpr[6]); ctx.fpr[14] = static_cast(static_cast(std::bit_cast(ctx.fpr[14]))); { const float fs = ctx.fpr[14]; 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; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(256), std::bit_cast(ctx.fpr[14])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(2)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(340), static_cast(ctx.gpr[6])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); ctx.gpr[6] = (ctx.gpr[6] << 16u); ctx.gpr[6] = (static_cast(static_cast(ctx.gpr[6]) >> 16u)); ctx.fpr[14] = std::bit_cast(ctx.gpr[6]); ctx.fpr[14] = static_cast(static_cast(std::bit_cast(ctx.fpr[14]))); { const float fs = ctx.fpr[14]; 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; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(260), std::bit_cast(ctx.fpr[14])); ctx.gpr[5] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(4)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(340), static_cast(ctx.gpr[5])); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); ctx.gpr[4] = (ctx.gpr[4] << 16u); ctx.gpr[4] = (static_cast(static_cast(ctx.gpr[4]) >> 16u)); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); ctx.fpr[14] = static_cast(static_cast(std::bit_cast(ctx.fpr[14]))); ctx.gpr[4] = (ctx.gpr[29] + static_cast(342)); { const float fs = ctx.fpr[14]; 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; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(264), std::bit_cast(ctx.fpr[14])); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(76))); ctx.gpr[5] = (ctx.gpr[5] + static_cast(18)); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(0)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(342), static_cast(ctx.gpr[6])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); ctx.gpr[6] = (ctx.gpr[6] << 16u); ctx.gpr[6] = (static_cast(static_cast(ctx.gpr[6]) >> 16u)); ctx.fpr[14] = std::bit_cast(ctx.gpr[6]); ctx.fpr[14] = static_cast(static_cast(std::bit_cast(ctx.fpr[14]))); { const float fs = ctx.fpr[14]; 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; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(272), std::bit_cast(ctx.fpr[14])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(2)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(342), static_cast(ctx.gpr[6])); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); ctx.gpr[6] = (ctx.gpr[6] << 16u); ctx.gpr[6] = (static_cast(static_cast(ctx.gpr[6]) >> 16u)); ctx.fpr[14] = std::bit_cast(ctx.gpr[6]); ctx.fpr[14] = static_cast(static_cast(std::bit_cast(ctx.fpr[14]))); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13])); { const float fs = ctx.fpr[14]; 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; } aot_mem.aot_store32(ctx.gpr[29] + static_cast(276), std::bit_cast(ctx.fpr[14])); ctx.gpr[5] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(4)))))); aot_mem.aot_store16(ctx.gpr[29] + static_cast(342), static_cast(ctx.gpr[5])); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); ctx.gpr[4] = (ctx.gpr[4] << 16u); ctx.gpr[4] = (static_cast(static_cast(ctx.gpr[4]) >> 16u)); ctx.fpr[14] = std::bit_cast(ctx.gpr[4]); ctx.fpr[14] = static_cast(static_cast(std::bit_cast(ctx.fpr[14]))); { const float fs = ctx.fpr[14]; 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; } { const bool branch_taken = !ctx.fpu_condition(); aot_mem.aot_store32(ctx.gpr[29] + static_cast(280), std::bit_cast(ctx.fpr[12])); if (branch_taken) { goto L_0880A3B8; } goto L_0880A3B0; } L_0880A3B0: { const bool branch_taken = 0u == 0u; ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(224))); if (branch_taken) { goto L_0880A3BC; } goto L_0880A3B8; } L_0880A3B8: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(240))); goto L_0880A3BC; L_0880A3BC: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(256))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(272))); 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[29] + static_cast(272))); goto L_0880A3DC; } goto L_0880A3D4; L_0880A3D4: { const bool branch_taken = 0u == 0u; ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(256))); if (branch_taken) { goto L_0880A3DC; } goto L_0880A3DC; } L_0880A3DC: ctx.set_fpu_condition((ctx.fpr[13] < ctx.fpr[12])); // nop if (ctx.fpu_condition()) { ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[13])); goto L_0880A3EC; } goto L_0880A3EC; L_0880A3EC: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(224))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(240))); ctx.set_fpu_condition((ctx.fpr[13] <= ctx.fpr[14])); // nop if (ctx.fpu_condition()) { ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(240))); goto L_0880A40C; } goto L_0880A404; L_0880A404: { const bool branch_taken = 0u == 0u; ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(224))); if (branch_taken) { goto L_0880A40C; } goto L_0880A40C; } L_0880A40C: ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(256))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(272))); ctx.set_fpu_condition((ctx.fpr[13] <= ctx.fpr[15])); // nop if (ctx.fpu_condition()) { ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(272))); goto L_0880A42C; } goto L_0880A424; L_0880A424: { const bool branch_taken = 0u == 0u; ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(256))); if (branch_taken) { goto L_0880A42C; } goto L_0880A42C; } L_0880A42C: ctx.set_fpu_condition((ctx.fpr[13] < ctx.fpr[14])); // nop if (ctx.fpu_condition()) { ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[14])); goto L_0880A43C; } goto L_0880A43C; L_0880A43C: ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(228))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(244))); ctx.set_fpu_condition((ctx.fpr[14] < ctx.fpr[15])); // nop if (!ctx.fpu_condition()) { ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(244))); goto L_0880A45C; } goto L_0880A454; L_0880A454: { const bool branch_taken = 0u == 0u; ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(228))); if (branch_taken) { goto L_0880A45C; } goto L_0880A45C; } L_0880A45C: ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(260))); ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(276))); ctx.set_fpu_condition((ctx.fpr[14] < ctx.fpr[16])); // nop if (!ctx.fpu_condition()) { ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(276))); goto L_0880A47C; } goto L_0880A474; L_0880A474: { const bool branch_taken = 0u == 0u; ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(260))); if (branch_taken) { goto L_0880A47C; } goto L_0880A47C; } L_0880A47C: ctx.set_fpu_condition((ctx.fpr[14] <= ctx.fpr[15])); // nop if (!ctx.fpu_condition()) { ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[15])); goto L_0880A48C; } goto L_0880A48C; L_0880A48C: ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(228))); ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(244))); ctx.set_fpu_condition((ctx.fpr[15] <= ctx.fpr[16])); // nop if (ctx.fpu_condition()) { ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(244))); goto L_0880A4AC; } goto L_0880A4A4; L_0880A4A4: { const bool branch_taken = 0u == 0u; ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(228))); if (branch_taken) { goto L_0880A4AC; } goto L_0880A4AC; } L_0880A4AC: ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(260))); ctx.fpr[17] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(276))); ctx.set_fpu_condition((ctx.fpr[15] <= ctx.fpr[17])); // nop if (ctx.fpu_condition()) { ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(276))); goto L_0880A4CC; } goto L_0880A4C4; L_0880A4C4: { const bool branch_taken = 0u == 0u; ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(260))); if (branch_taken) { goto L_0880A4CC; } goto L_0880A4CC; } L_0880A4CC: ctx.set_fpu_condition((ctx.fpr[15] < ctx.fpr[16])); // nop if (ctx.fpu_condition()) { ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[16])); goto L_0880A4DC; } goto L_0880A4DC; L_0880A4DC: ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(232))); ctx.fpr[17] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(248))); ctx.set_fpu_condition((ctx.fpr[16] < ctx.fpr[17])); // nop if (!ctx.fpu_condition()) { ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(248))); goto L_0880A4FC; } goto L_0880A4F4; L_0880A4F4: { const bool branch_taken = 0u == 0u; ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(232))); if (branch_taken) { goto L_0880A4FC; } goto L_0880A4FC; } L_0880A4FC: ctx.fpr[17] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(264))); ctx.fpr[18] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(280))); ctx.set_fpu_condition((ctx.fpr[17] < ctx.fpr[18])); // nop if (!ctx.fpu_condition()) { ctx.fpr[22] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(280))); goto L_0880A51C; } goto L_0880A514; L_0880A514: { const bool branch_taken = 0u == 0u; ctx.fpr[22] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(264))); if (branch_taken) { goto L_0880A51C; } goto L_0880A51C; } L_0880A51C: ctx.set_fpu_condition((ctx.fpr[22] <= ctx.fpr[16])); // nop if (!ctx.fpu_condition()) { ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[16])); goto L_0880A52C; } goto L_0880A52C; L_0880A52C: ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(232))); ctx.fpr[17] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(248))); ctx.set_fpu_condition((ctx.fpr[16] <= ctx.fpr[17])); // nop if (ctx.fpu_condition()) { ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(248))); goto L_0880A54C; } goto L_0880A544; L_0880A544: { const bool branch_taken = 0u == 0u; ctx.fpr[16] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(232))); if (branch_taken) { goto L_0880A54C; } goto L_0880A54C; } L_0880A54C: ctx.fpr[17] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(264))); ctx.fpr[18] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(280))); ctx.set_fpu_condition((ctx.fpr[17] <= ctx.fpr[18])); // nop if (ctx.fpu_condition()) { ctx.fpr[24] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(280))); goto L_0880A56C; } goto L_0880A564; L_0880A564: { const bool branch_taken = 0u == 0u; ctx.fpr[24] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(264))); if (branch_taken) { goto L_0880A56C; } goto L_0880A56C; } L_0880A56C: ctx.set_fpu_condition((ctx.fpr[24] < ctx.fpr[16])); // nop if (ctx.fpu_condition()) { ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[16])); goto L_0880A57C; } goto L_0880A57C; L_0880A57C: aot_mem.aot_store32(ctx.gpr[29] + static_cast(144), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(148), std::bit_cast(ctx.fpr[14])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(152), std::bit_cast(ctx.fpr[22])); ctx.gpr[16] = (ctx.gpr[29] + static_cast(144)); { 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); } { 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<4u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(16); 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<5u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(32); 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<6u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(48); 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<7u, 4u>(vfpu_value); } { float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{}; ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u); ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw); constexpr std::uint32_t vfpu_side = 3u; constexpr std::uint32_t vfpu_input_length = 3u; for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f; if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f; for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) { float sum = 0.0f; for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column]; vfpu_result[row] = sum; } float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u], vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]}; ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row); ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target); for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column]; const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2]; const std::uint32_t vfpu_last_lane = vfpu_side - 1u; ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) | ((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u)); ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); } { 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<7u, 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[17] = (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[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])); } aot_mem.aot_store32(ctx.gpr[29] + static_cast(160), std::bit_cast(ctx.fpr[13])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(164), std::bit_cast(ctx.fpr[15])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(168), std::bit_cast(ctx.fpr[22])); ctx.gpr[18] = (ctx.gpr[29] + static_cast(160)); { 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<1u, 4u>(vfpu_value); } { 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<4u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(16); 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<5u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(32); 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<6u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(48); 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<7u, 4u>(vfpu_value); } { float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{}; ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u); ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw); constexpr std::uint32_t vfpu_side = 3u; constexpr std::uint32_t vfpu_input_length = 3u; for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f; if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f; for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) { float sum = 0.0f; for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column]; vfpu_result[row] = sum; } float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u], vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]}; ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row); ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target); for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column]; const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2]; const std::uint32_t vfpu_last_lane = vfpu_side - 1u; ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) | ((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u)); ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); } { 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<7u, 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[19] = (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[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] = (0u | 78u); ctx.gpr[31] = (0x0880A5F0u); ctx.gpr[5] = (ctx.gpr[22] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0090_entry, 90u, 617u, 0x0896ED98u>(ctx, &aot_mem) && ctx.pc == 0x0880A5F0u) goto L_0880A5F0; return; L_0880A5F0: { 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[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.fpr[12] = ctx.fpr[24] - ctx.fpr[22]; aot_mem.aot_store32(ctx.gpr[29] + static_cast(144), std::bit_cast(ctx.fpr[26])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(148), std::bit_cast(ctx.fpr[26])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(152), std::bit_cast(ctx.fpr[12])); { 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); } { 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[7] = (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[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])); } aot_mem.aot_store32(ctx.gpr[29] + static_cast(192), std::bit_cast(ctx.fpr[26])); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(48))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(196), std::bit_cast(ctx.fpr[26])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(200), std::bit_cast(ctx.fpr[26])); { 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[9] = (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[9] + 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] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[20] + static_cast(421)))))); ctx.gpr[4] = (ctx.gpr[4] & 16u); ctx.gpr[10] = (0u < ctx.gpr[4] ? 1u : 0u); ctx.gpr[10] = (ctx.gpr[10] & 255u); ctx.gpr[4] = (0u | 1u); ctx.gpr[5] = (ctx.gpr[18] | 0u); ctx.gpr[8] = (ctx.gpr[29] + static_cast(192)); ctx.gpr[6] = (ctx.gpr[16] | 0u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[28])); ctx.gpr[2] = (0u | 1u); ctx.gpr[11] = (0u | 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(0), ctx.gpr[2]); ctx.gpr[31] = (0x0880A670u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(4), 0u); goto L_08808458; L_0880A670: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[20] + static_cast(421)))))); ctx.gpr[4] = (ctx.gpr[4] | 32u); aot_mem.aot_store8(ctx.gpr[20] + static_cast(421), static_cast(ctx.gpr[4])); ctx.gpr[4] = (65528u << 16u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(-1)); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast(68))); ctx.gpr[4] = (ctx.gpr[5] & ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[20] + static_cast(68), ctx.gpr[4]); ctx.gpr[5] = (0u + static_cast(-513)); ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]); aot_mem.aot_store32(ctx.gpr[20] + static_cast(68), ctx.gpr[4]); { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0880A6BC; } goto L_0880A6A4; } L_0880A6A4: ctx.gpr[4] = (0u | 79u); ctx.gpr[31] = (0x0880A6B0u); ctx.gpr[5] = (ctx.gpr[22] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0090_entry, 90u, 617u, 0x0896ED98u>(ctx, &aot_mem) && ctx.pc == 0x0880A6B0u) goto L_0880A6B0; return; L_0880A6B0: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[20] + static_cast(421)))))); ctx.gpr[4] = (ctx.gpr[4] | 16u); aot_mem.aot_store8(ctx.gpr[20] + static_cast(421), static_cast(ctx.gpr[4])); goto L_0880A6BC; L_0880A6BC: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(412))); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(408))); ctx.gpr[6] = (ctx.gpr[23] | 0u); ctx.gpr[23] = (ctx.gpr[4] + static_cast(-1)); ctx.gpr[4] = (ctx.gpr[5] + static_cast(-544)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(408), ctx.gpr[4]); { const bool branch_taken = ctx.gpr[6] != 0u; aot_mem.aot_store32(ctx.gpr[29] + static_cast(412), ctx.gpr[23]); if (branch_taken) { goto L_08809FEC; } goto L_0880A6DC; } L_0880A6DC: ctx.fpr[20] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(420))); ctx.fpr[22] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(424))); ctx.fpr[24] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(428))); ctx.fpr[26] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(432))); ctx.fpr[28] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(436))); ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(440))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(444))); ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(448))); ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(452))); ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(456))); ctx.gpr[21] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(460))); ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(464))); ctx.gpr[23] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(468))); ctx.gpr[30] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(472))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(476))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(480)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880A720: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-32)); ctx.gpr[4] = (2227u << 16u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(180))); ctx.gpr[4] = (16256u << 16u); ctx.fpr[13] = std::bit_cast(ctx.gpr[4]); ctx.fpr[14] = ctx.fpr[13] / ctx.fpr[12]; { const float fs = ctx.fpr[12]; const float ft = ctx.fpr[12]; 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; } ctx.fpr[13] = ctx.fpr[13] / ctx.fpr[17]; ctx.gpr[5] = (2227u << 16u); ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(176))); ctx.gpr[5] = (16014u << 16u); ctx.gpr[8] = (ctx.gpr[5] | 14571u); ctx.gpr[5] = (2227u << 16u); ctx.gpr[4] = (17096u << 16u); ctx.gpr[6] = (2227u << 16u); ctx.fpr[18] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(204))); aot_mem.aot_store32(ctx.gpr[6] + static_cast(184), std::bit_cast(ctx.fpr[14])); ctx.fpr[16] = std::bit_cast(ctx.gpr[4]); ctx.fpr[14] = ctx.fpr[16] / ctx.fpr[15]; ctx.fpr[17] = std::bit_cast(ctx.gpr[8]); ctx.fpr[12] = ctx.fpr[17] / ctx.fpr[12]; ctx.gpr[2] = (2227u << 16u); ctx.gpr[11] = (2227u << 16u); aot_mem.aot_store32(ctx.gpr[2] + static_cast(192), std::bit_cast(ctx.fpr[13])); ctx.gpr[9] = (16672u << 16u); aot_mem.aot_store32(ctx.gpr[11] + static_cast(188), std::bit_cast(ctx.fpr[14])); ctx.fpr[14] = std::bit_cast(ctx.gpr[9]); { 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[10] = (15744u << 16u); ctx.gpr[3] = (2227u << 16u); ctx.gpr[7] = (2232u << 16u); ctx.fpr[19] = std::bit_cast(ctx.gpr[10]); ctx.gpr[12] = (2227u << 16u); ctx.gpr[14] = (2224u << 16u); ctx.gpr[4] = (ctx.gpr[7] + static_cast(7200)); aot_mem.aot_store32(ctx.gpr[3] + static_cast(196), std::bit_cast(ctx.fpr[13])); { const float fs = ctx.fpr[18]; const float ft = ctx.fpr[19]; 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[13] = (2227u << 16u); ctx.gpr[5] = (0u | 45u); ctx.gpr[6] = (0u | 128u); ctx.gpr[7] = (ctx.gpr[14] + static_cast(-26268)); aot_mem.aot_store32(ctx.gpr[12] + static_cast(200), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), ctx.gpr[31]); ctx.gpr[31] = (0x0880A7D4u); aot_mem.aot_store32(ctx.gpr[13] + static_cast(208), std::bit_cast(ctx.fpr[16])); if (rt.invoke_chained_direct<&recomp_unit_0188_entry, 188u, 351u, 0x08AF5B00u>(ctx, &aot_mem) && ctx.pc == 0x0880A7D4u) goto L_0880A7D4; return; L_0880A7D4: ctx.gpr[4] = (2227u << 16u); ctx.gpr[31] = (0x0880A7E0u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(356)); if (rt.invoke_chained_direct<&recomp_unit_0188_entry, 188u, 261u, 0x08AF5504u>(ctx, &aot_mem) && ctx.pc == 0x0880A7E0u) goto L_0880A7E0; return; L_0880A7E0: ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(16))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880A7EC: ctx.fpr[14] = ctx.fpr[12] / ctx.fpr[13]; ctx.fpr[14] = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[14])); ctx.fpr[14] = static_cast(static_cast(std::bit_cast(ctx.fpr[14]))); { 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[0] = std::bit_cast(0x7FC00000u); else ctx.fpr[0] = fs * ft; } ctx.fpr[0] = ctx.fpr[12] - ctx.fpr[0]; jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880A808: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-48)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(20), ctx.gpr[5]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(24), ctx.gpr[6]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(28), ctx.gpr[7]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(32), ctx.gpr[8]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(36), ctx.gpr[9]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(40), ctx.gpr[10]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(44), ctx.gpr[11]); ctx.gpr[2] = (0u | 0u); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880A834: jump_target = ctx.gpr[31]; ctx.gpr[2] = (ctx.gpr[4] + static_cast(16)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880A83C: { 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<4u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(16); 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<5u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(32); 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<6u, 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<7u, 4u>(vfpu_value); } { float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{}; ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u); ctx.read_vfpu_vector_ct<7u, 3u>(vfpu_target_raw); constexpr std::uint32_t vfpu_side = 3u; constexpr std::uint32_t vfpu_input_length = 3u; for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f; if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f; for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) { float sum = 0.0f; for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column]; vfpu_result[row] = sum; } float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u], vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]}; ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row); ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target); for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column]; const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2]; const std::uint32_t vfpu_last_lane = vfpu_side - 1u; ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) | ((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u)); ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); } { 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])); } jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880A85C: { 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); } { 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<4u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(16); 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<5u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(32); 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<6u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast(48); 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<7u, 4u>(vfpu_value); } { float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{}; ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u); ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw); constexpr std::uint32_t vfpu_side = 3u; constexpr std::uint32_t vfpu_input_length = 3u; for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f; if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f; for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) { float sum = 0.0f; for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column]; vfpu_result[row] = sum; } float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u], vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]}; ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row); ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target); for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column]; const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2]; const std::uint32_t vfpu_last_lane = vfpu_side - 1u; ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) | ((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u)); ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); } { 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<7u, 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])); } jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880A880: // nop goto L_0880A884; L_0880A884: { 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[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); } ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>(); ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[0] = std::bit_cast(ctx.gpr[4]); jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880A8A0: { 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_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = -vfpu_s[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); } goto L_0880A8A8; L_0880A8A8: { 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])); } jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880A8B4: { 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); } { 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])); } jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880A8CC: { 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); } { 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])); } jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880A8E4: ctx.gpr[6] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[6]); { 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>(); { 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])); } jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880A900: ctx.gpr[6] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[6]); { 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>(); { 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])); } jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880A91C: ctx.gpr[6] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[6]); { 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 / vfpu_s[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); } { 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>(); { 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])); } jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880A93C: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-32)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), ctx.gpr[16]); ctx.gpr[16] = (ctx.gpr[4] | 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(20), ctx.gpr[17]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(24), ctx.gpr[31]); ctx.gpr[31] = (0x0880A958u); ctx.gpr[17] = (ctx.gpr[5] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0072_entry, 72u, 311u, 0x08925F98u>(ctx, &aot_mem) && ctx.pc == 0x0880A958u) goto L_0880A958; return; L_0880A958: ctx.gpr[4] = (ctx.gpr[2] & 3u); { const bool branch_taken = ctx.gpr[4] != ctx.gpr[17]; // nop if (branch_taken) { goto L_0880A970; } goto L_0880A964; } L_0880A964: ctx.gpr[4] = (0u | 4u); { const bool branch_taken = 0u == 0u; aot_mem.aot_store8(ctx.gpr[16] + static_cast(2), static_cast(ctx.gpr[4])); if (branch_taken) { goto L_0880A974; } goto L_0880A970; } L_0880A970: aot_mem.aot_store8(ctx.gpr[16] + static_cast(2), static_cast(0u)); goto L_0880A974; L_0880A974: ctx.gpr[2] = (ctx.gpr[16] | 0u); ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(16))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(20))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(24))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880A98C: ctx.gpr[6] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast(2))); ctx.gpr[6] = (ctx.gpr[6] & 4u); { const bool branch_taken = ctx.gpr[6] == 0u; // nop if (branch_taken) { goto L_0880A9A0; } goto L_0880A99C; } L_0880A99C: aot_mem.aot_store32(ctx.gpr[5] + static_cast(0), ctx.gpr[4]); goto L_0880A9A0; L_0880A9A0: jump_target = ctx.gpr[31]; ctx.gpr[2] = (ctx.gpr[4] | 0u); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880A9A8: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-16)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(0), std::bit_cast(ctx.fpr[20])); ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(4), std::bit_cast(ctx.fpr[22])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(8), ctx.gpr[31]); ctx.gpr[31] = (0x0880A9C4u); ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[13])); if (rt.invoke_chained_direct<&recomp_unit_0082_entry, 82u, 305u, 0x0894DB70u>(ctx, &aot_mem) && ctx.pc == 0x0880A9C4u) goto L_0880A9C4; return; L_0880A9C4: ctx.fpr[14] = ctx.fpr[22] - ctx.fpr[20]; { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[0] = std::bit_cast(0x7FC00000u); else ctx.fpr[0] = fs * ft; } ctx.fpr[0] = ctx.fpr[20] + ctx.fpr[0]; ctx.fpr[20] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(0))); ctx.fpr[22] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(4))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(8))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880A9E4: { 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])); } jump_target = ctx.gpr[31]; ctx.gpr[2] = (ctx.gpr[4] | 0u); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880A9F4: ctx.fpr[0] = std::sqrt(ctx.fpr[12]); jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880AA00: ctx.fpr[0] = std::bit_cast(std::bit_cast(ctx.fpr[12]) & 0x7FFFFFFFu); jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880AA0C: ctx.fpr[0] = std::bit_cast(std::bit_cast(ctx.fpr[13])); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13])); // nop if (ctx.fpu_condition()) { ctx.fpr[0] = std::bit_cast(std::bit_cast(ctx.fpr[12])); goto L_0880AA20; } goto L_0880AA20; L_0880AA20: jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880AA28: aot_mem.aot_store32(ctx.gpr[4] + static_cast(0), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[4] + static_cast(4), std::bit_cast(ctx.fpr[13])); aot_mem.aot_store32(ctx.gpr[4] + static_cast(8), std::bit_cast(ctx.fpr[14])); jump_target = ctx.gpr[31]; ctx.gpr[2] = (ctx.gpr[4] | 0u); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880AA3C: { 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])); } jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880AA64: { 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[0] = std::bit_cast(ctx.gpr[4]); jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880AA80: { 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>(); ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[0] = std::bit_cast(ctx.gpr[4]); jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880AA98: { 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])); } jump_target = ctx.gpr[31]; ctx.gpr[2] = (ctx.gpr[4] | 0u); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880AAA8: ctx.gpr[5] = (std::bit_cast(ctx.fpr[12])); 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])); } jump_target = ctx.gpr[31]; ctx.gpr[2] = (ctx.gpr[4] | 0u); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880AAC4: ctx.gpr[5] = (std::bit_cast(ctx.fpr[12])); ctx.set_vfpu_scalar_bits_ct<1u>(ctx.gpr[5]); { float vfpu_s[4]{}, vfpu_d[4]{}; ctx.read_vfpu_vector_with_source_prefix_ct<1u, 1u, 0u>(vfpu_s); for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = 1.0f / vfpu_s[i]; ctx.write_vfpu_vector_with_destination_prefix_ct<1u, 1u>(vfpu_d); } { 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])); } jump_target = ctx.gpr[31]; ctx.gpr[2] = (ctx.gpr[4] | 0u); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880AAE4: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-32)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), ctx.gpr[16]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(20), ctx.gpr[17]); ctx.gpr[17] = (ctx.gpr[4] | 0u); ctx.gpr[16] = (ctx.gpr[5] | 0u); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(64))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(24), ctx.gpr[18]); ctx.gpr[18] = (ctx.gpr[6] & 255u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(28), ctx.gpr[31]); { const bool branch_taken = ctx.gpr[5] == 0u; ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(68))); if (branch_taken) { goto L_0880AB28; } goto L_0880AB10; } L_0880AB10: ctx.gpr[6] = (ctx.gpr[4] & 1u); { const bool branch_taken = ctx.gpr[6] == 0u; // nop if (branch_taken) { goto L_0880AB28; } goto L_0880AB1C; } L_0880AB1C: ctx.gpr[31] = (0x0880AB24u); ctx.gpr[4] = (ctx.gpr[5] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0134_entry, 134u, 263u, 0x08A1D574u>(ctx, &aot_mem) && ctx.pc == 0x0880AB24u) goto L_0880AB24; return; L_0880AB24: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(68))); goto L_0880AB28; L_0880AB28: ctx.gpr[5] = (0u + static_cast(-2)); ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]); ctx.gpr[5] = (ctx.gpr[18] & 1u); aot_mem.aot_store32(ctx.gpr[17] + static_cast(64), ctx.gpr[16]); ctx.gpr[4] = (ctx.gpr[4] | ctx.gpr[5]); aot_mem.aot_store32(ctx.gpr[17] + static_cast(68), ctx.gpr[4]); ctx.gpr[31] = (0x0880AB48u); ctx.gpr[4] = (ctx.gpr[17] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 516u, 0x08A06604u>(ctx, &aot_mem) && ctx.pc == 0x0880AB48u) goto L_0880AB48; return; L_0880AB48: ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(16))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(20))); ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(24))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(28))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880AB60: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-32)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(20), ctx.gpr[17]); ctx.gpr[17] = (ctx.gpr[4] | 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), ctx.gpr[16]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(24), ctx.gpr[31]); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.gpr[16] = (ctx.gpr[5] | 0u); if (branch_taken) { goto L_0880ABB4; } goto L_0880AB7C; } L_0880AB7C: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(68))); ctx.gpr[4] = (ctx.gpr[4] & 1u); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.gpr[4] = (ctx.gpr[16] & 1u); if (branch_taken) { goto L_0880ABA4; } goto L_0880AB8C; } L_0880AB8C: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(64))); if (ctx.gpr[4] == 0u) { ctx.gpr[4] = (ctx.gpr[16] & 1u); goto L_0880ABA4; } goto L_0880AB98; L_0880AB98: ctx.gpr[31] = (0x0880ABA0u); // nop if (rt.invoke_chained_direct<&recomp_unit_0134_entry, 134u, 263u, 0x08A1D574u>(ctx, &aot_mem) && ctx.pc == 0x0880ABA0u) goto L_0880ABA0; return; L_0880ABA0: ctx.gpr[4] = (ctx.gpr[16] & 1u); goto L_0880ABA4; L_0880ABA4: { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0880ABB4; } goto L_0880ABAC; } L_0880ABAC: ctx.gpr[31] = (0x0880ABB4u); ctx.gpr[4] = (ctx.gpr[17] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0167_entry, 167u, 667u, 0x08AA31D8u>(ctx, &aot_mem) && ctx.pc == 0x0880ABB4u) goto L_0880ABB4; return; L_0880ABB4: ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(16))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(20))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(24))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880ABC8: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-32)); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(0))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(4))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), ctx.gpr[31]); ctx.gpr[31] = (0x0880ABE0u); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(8))); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 523u, 0x08A06750u>(ctx, &aot_mem) && ctx.pc == 0x0880ABE0u) goto L_0880ABE0; return; L_0880ABE0: ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(16))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880ABEC: ctx.gpr[5] = (2230u << 16u); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast(-8152))); ctx.gpr[5] = (static_cast(ctx.gpr[4]) < static_cast(ctx.gpr[5]) ? 1u : 0u); { const bool branch_taken = ctx.gpr[5] == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_0880AC14; } goto L_0880AC00; } L_0880AC00: ctx.gpr[5] = (2229u << 16u); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast(-11604))); ctx.gpr[4] = (ctx.gpr[4] << 2u); ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]); ctx.gpr[2] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); goto L_0880AC14; L_0880AC14: jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880AC1C: ctx.gpr[5] = (2229u << 16u); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast(-11604))); ctx.gpr[4] = (ctx.gpr[4] << 2u); ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); jump_target = ctx.gpr[31]; ctx.gpr[2] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(20))); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880AC38: aot_mem.aot_store16(ctx.gpr[4] + static_cast(320), static_cast(0u)); ctx.fpr[12] = std::bit_cast(0u); aot_mem.aot_store32(ctx.gpr[4] + static_cast(296), std::bit_cast(ctx.fpr[12])); jump_target = ctx.gpr[31]; aot_mem.aot_store32(ctx.gpr[4] + static_cast(300), 0u); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880AC4C: ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(680))); { const bool branch_taken = ctx.gpr[5] == 0u; // nop if (branch_taken) { goto L_0880AC60; } goto L_0880AC58; } L_0880AC58: ctx.gpr[5] = (ctx.gpr[5] + static_cast(-1)); aot_mem.aot_store32(ctx.gpr[4] + static_cast(680), ctx.gpr[5]); goto L_0880AC60; L_0880AC60: jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880AC68: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-32)); ctx.gpr[5] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[4] + static_cast(416)))))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(20), ctx.gpr[31]); ctx.gpr[6] = (ctx.gpr[5] & 2u); { const bool branch_taken = ctx.gpr[6] != 0u; ctx.gpr[5] = (ctx.gpr[5] & 1u); if (branch_taken) { goto L_0880AC88; } goto L_0880AC80; } L_0880AC80: { const bool branch_taken = ctx.gpr[5] == 0u; // nop if (branch_taken) { goto L_0880ACB0; } goto L_0880AC88; } L_0880AC88: ctx.gpr[31] = (0x0880AC90u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), ctx.gpr[4]); if (rt.invoke_chained_direct<&recomp_unit_0092_entry, 92u, 734u, 0x08977C20u>(ctx, &aot_mem) && ctx.pc == 0x0880AC90u) goto L_0880AC90; return; L_0880AC90: { const bool branch_taken = ctx.gpr[2] != 0u; ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(16))); if (branch_taken) { goto L_0880ACB0; } goto L_0880AC98; } L_0880AC98: ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(92))); ctx.gpr[5] = (ctx.gpr[5] + static_cast(328)); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(0)))))); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast(4))); jump_target = ctx.gpr[5]; ctx.gpr[31] = (0x0880ACB0u); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[6]); ctx.pc = jump_target; if (rt.invoke_chained_call(ctx, &aot_mem) && ctx.pc == 0x0880ACB0u) goto L_0880ACB0; return; L_0880ACB0: ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(20))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880ACBC: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-32)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), ctx.gpr[16]); ctx.gpr[16] = (ctx.gpr[4] | 0u); ctx.gpr[4] = (aot_mem.aot_load16(ctx.gpr[16] + static_cast(500))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(20), ctx.gpr[31]); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.gpr[5] = (0u | 0u); if (branch_taken) { goto L_0880ACFC; } goto L_0880ACD8; } L_0880ACD8: ctx.gpr[6] = (0u | 65535u); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[6]; ctx.gpr[4] = (ctx.gpr[5] & 255u); if (branch_taken) { goto L_0880AD00; } goto L_0880ACE4; } L_0880ACE4: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(68))); ctx.gpr[6] = (0u | 80u); ctx.gpr[4] = (ctx.gpr[4] & 496u); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[6]; ctx.gpr[4] = (ctx.gpr[5] & 255u); if (branch_taken) { goto L_0880AD00; } goto L_0880ACF8; } L_0880ACF8: ctx.gpr[5] = (0u | 1u); goto L_0880ACFC; L_0880ACFC: ctx.gpr[4] = (ctx.gpr[5] & 255u); goto L_0880AD00; L_0880AD00: { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0880ADDC; } goto L_0880AD08; } L_0880AD08: ctx.gpr[31] = (0x0880AD10u); // nop if (rt.invoke_chained_direct<&recomp_unit_0116_entry, 116u, 180u, 0x089D5870u>(ctx, &aot_mem) && ctx.pc == 0x0880AD10u) goto L_0880AD10; return; L_0880AD10: { const bool branch_taken = ctx.gpr[2] != ctx.gpr[16]; ctx.gpr[4] = (2230u << 16u); if (branch_taken) { goto L_0880AD48; } goto L_0880AD18; } L_0880AD18: ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast(-8108))); ctx.gpr[5] = (ctx.gpr[4] << 7u); ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[5]); ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]); ctx.gpr[4] = (ctx.gpr[4] << 4u); ctx.gpr[4] = (ctx.gpr[5] - ctx.gpr[4]); ctx.gpr[5] = (2233u << 16u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(-26096)); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(4))); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0880ADDC; } goto L_0880AD48; } L_0880AD48: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(680))); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0880ADDC; } goto L_0880AD54; } L_0880AD54: ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[16] + static_cast(686))); { const bool branch_taken = static_cast(ctx.gpr[4]) > 0; // nop if (branch_taken) { goto L_0880AD98; } goto L_0880AD60; } L_0880AD60: ctx.gpr[31] = (0x0880AD68u); // nop if (rt.invoke_chained_direct<&recomp_unit_0082_entry, 82u, 302u, 0x0894DB08u>(ctx, &aot_mem) && ctx.pc == 0x0880AD68u) goto L_0880AD68; return; L_0880AD68: ctx.gpr[4] = (ctx.gpr[2] & 65535u); ctx.gpr[4] = (ctx.gpr[4] & 127u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(150)); aot_mem.aot_store8(ctx.gpr[16] + static_cast(686), static_cast(ctx.gpr[4])); ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[16] + static_cast(686))); ctx.gpr[4] = (ctx.gpr[4] & 7u); ctx.gpr[5] = (ctx.gpr[4] < static_cast(2) ? 1u : 0u); { const bool branch_taken = ctx.gpr[5] == 0u; // nop if (branch_taken) { goto L_0880ADA4; } goto L_0880AD8C; } L_0880AD8C: ctx.gpr[4] = (0u | 45u); { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[16] + static_cast(680), ctx.gpr[4]); if (branch_taken) { goto L_0880ADDC; } goto L_0880AD98; } L_0880AD98: ctx.gpr[4] = (ctx.gpr[4] + static_cast(-1)); { const bool branch_taken = 0u == 0u; aot_mem.aot_store8(ctx.gpr[16] + static_cast(686), static_cast(ctx.gpr[4])); if (branch_taken) { goto L_0880ADDC; } goto L_0880ADA4; } L_0880ADA4: ctx.gpr[5] = (ctx.gpr[4] < static_cast(4) ? 1u : 0u); { const bool branch_taken = ctx.gpr[5] == 0u; ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(504))); if (branch_taken) { goto L_0880ADCC; } goto L_0880ADB0; } L_0880ADB0: { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0880ADC0; } goto L_0880ADB8; } L_0880ADB8: ctx.gpr[31] = (0x0880ADC0u); ctx.gpr[5] = (0u | 146u); if (rt.invoke_chained_direct<&recomp_unit_0044_entry, 44u, 499u, 0x088B6D24u>(ctx, &aot_mem) && ctx.pc == 0x0880ADC0u) goto L_0880ADC0; return; L_0880ADC0: ctx.gpr[4] = (0u | 45u); { const bool branch_taken = 0u == 0u; aot_mem.aot_store32(ctx.gpr[16] + static_cast(680), ctx.gpr[4]); if (branch_taken) { goto L_0880ADDC; } goto L_0880ADCC; } L_0880ADCC: { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0880ADDC; } goto L_0880ADD4; } L_0880ADD4: ctx.gpr[31] = (0x0880ADDCu); ctx.gpr[5] = (0u | 146u); if (rt.invoke_chained_direct<&recomp_unit_0044_entry, 44u, 499u, 0x088B6D24u>(ctx, &aot_mem) && ctx.pc == 0x0880ADDCu) goto L_0880ADDC; return; L_0880ADDC: ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(16))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(20))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880ADEC: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-80)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(48), ctx.gpr[20]); ctx.gpr[20] = (ctx.gpr[4] | 0u); ctx.gpr[4] = (ctx.gpr[20] + static_cast(48)); ctx.gpr[5] = (16384u << 16u); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); ctx.fpr[14] = std::bit_cast(ctx.gpr[5]); ctx.gpr[5] = (16928u << 16u); ctx.fpr[13] = ctx.fpr[12] - ctx.fpr[14]; ctx.fpr[15] = std::bit_cast(ctx.gpr[5]); ctx.fpr[17] = ctx.fpr[13] / ctx.fpr[15]; ctx.gpr[5] = (16968u << 16u); ctx.fpr[16] = std::bit_cast(ctx.gpr[5]); ctx.fpr[17] = ctx.fpr[17] + ctx.fpr[16]; ctx.fpr[18] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(4))); ctx.fpr[17] = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[17])); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[14]; ctx.fpr[13] = ctx.fpr[18] - ctx.fpr[14]; aot_mem.aot_store32(ctx.gpr[29] + static_cast(32), ctx.gpr[16]); ctx.gpr[6] = (0u | 0u); ctx.gpr[16] = (2227u << 16u); ctx.gpr[5] = (std::bit_cast(ctx.fpr[17])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(64), ctx.gpr[30]); ctx.gpr[30] = (0u | 0u); ctx.fpr[14] = ctx.fpr[18] + ctx.fpr[14]; ctx.gpr[4] = (aot_mem.aot_load16(ctx.gpr[16] + static_cast(20720))); ctx.gpr[6] = (static_cast(ctx.gpr[6]) < static_cast(ctx.gpr[5]) ? 1u : 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(36), ctx.gpr[17]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(40), ctx.gpr[18]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(44), ctx.gpr[19]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(52), ctx.gpr[21]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(56), ctx.gpr[22]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(60), ctx.gpr[23]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(68), ctx.gpr[31]); if (ctx.gpr[6] != 0u) { ctx.gpr[30] = (ctx.gpr[5] | 0u); goto L_0880AE7C; } goto L_0880AE7C; L_0880AE7C: ctx.fpr[13] = ctx.fpr[13] / ctx.fpr[15]; ctx.gpr[6] = (0u | 0u); ctx.gpr[22] = (0u | 0u); ctx.fpr[13] = ctx.fpr[13] + ctx.fpr[16]; ctx.fpr[13] = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[13])); ctx.gpr[5] = (std::bit_cast(ctx.fpr[13])); ctx.gpr[6] = (static_cast(ctx.gpr[6]) < static_cast(ctx.gpr[5]) ? 1u : 0u); if (ctx.gpr[6] != 0u) { ctx.gpr[22] = (ctx.gpr[5] | 0u); goto L_0880AEA0; } goto L_0880AEA0; L_0880AEA0: ctx.fpr[12] = ctx.fpr[12] / ctx.fpr[15]; ctx.gpr[21] = (0u | 99u); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[16]; ctx.fpr[12] = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12])); ctx.gpr[5] = (std::bit_cast(ctx.fpr[12])); ctx.gpr[6] = (static_cast(ctx.gpr[5]) < 99 ? 1u : 0u); if (ctx.gpr[6] != 0u) { ctx.gpr[21] = (ctx.gpr[5] | 0u); goto L_0880AEC0; } goto L_0880AEC0; L_0880AEC0: ctx.fpr[12] = ctx.fpr[14] / ctx.fpr[15]; ctx.gpr[5] = (0u | 99u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(28), ctx.gpr[5]); ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[16]; ctx.fpr[12] = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12])); ctx.gpr[5] = (std::bit_cast(ctx.fpr[12])); ctx.gpr[6] = (static_cast(ctx.gpr[5]) < 99 ? 1u : 0u); if (ctx.gpr[6] != 0u) { aot_mem.aot_store32(ctx.gpr[29] + static_cast(28), ctx.gpr[5]); goto L_0880AEE4; } goto L_0880AEE4; L_0880AEE4: ctx.gpr[5] = (0u | 65535u); ctx.gpr[5] = (static_cast(ctx.gpr[4]) < static_cast(ctx.gpr[5]) ? 1u : 0u); { const bool branch_taken = ctx.gpr[5] == 0u; ctx.gpr[4] = (ctx.gpr[4] + static_cast(1)); if (branch_taken) { goto L_0880AEFC; } goto L_0880AEF4; } L_0880AEF4: { const bool branch_taken = 0u == 0u; aot_mem.aot_store16(ctx.gpr[16] + static_cast(20720), static_cast(ctx.gpr[4])); if (branch_taken) { goto L_0880AF0C; } goto L_0880AEFC; } L_0880AEFC: ctx.gpr[31] = (0x0880AF04u); // nop if (rt.invoke_chained_direct<&recomp_unit_0048_entry, 48u, 166u, 0x088C4CA0u>(ctx, &aot_mem) && ctx.pc == 0x0880AF04u) goto L_0880AF04; return; L_0880AF04: ctx.gpr[4] = (0u | 1u); aot_mem.aot_store16(ctx.gpr[16] + static_cast(20720), static_cast(ctx.gpr[4])); goto L_0880AF0C; L_0880AF0C: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(28))); ctx.gpr[23] = (ctx.gpr[22] | 0u); ctx.gpr[4] = (static_cast(ctx.gpr[4]) < static_cast(ctx.gpr[23]) ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] != 0u; ctx.gpr[4] = (ctx.gpr[22] << 5u); if (branch_taken) { goto L_0880AFB4; } goto L_0880AF20; } L_0880AF20: ctx.gpr[5] = (ctx.gpr[22] + ctx.gpr[4]); ctx.gpr[22] = (ctx.gpr[5] << 2u); ctx.gpr[22] = (ctx.gpr[22] - ctx.gpr[4]); ctx.gpr[19] = (2227u << 16u); goto L_0880AF30; L_0880AF30: ctx.gpr[18] = (ctx.gpr[30] | 0u); ctx.gpr[4] = (static_cast(ctx.gpr[21]) < static_cast(ctx.gpr[18]) ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] != 0u; ctx.gpr[4] = (ctx.gpr[30] + ctx.gpr[22]); if (branch_taken) { goto L_0880AFA0; } goto L_0880AF40; } L_0880AF40: ctx.gpr[17] = (ctx.gpr[4] << 4u); ctx.gpr[4] = (ctx.gpr[17] - ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[4] << 2u); ctx.gpr[17] = (ctx.gpr[4] - ctx.gpr[17]); goto L_0880AF50; L_0880AF50: ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast(20716))); ctx.gpr[4] = (ctx.gpr[20] | 0u); ctx.gpr[16] = (ctx.gpr[16] + ctx.gpr[17]); ctx.gpr[31] = (0x0880AF64u); ctx.gpr[5] = (ctx.gpr[16] + static_cast(20)); goto L_0880AFE8; L_0880AF64: { const bool branch_taken = ctx.gpr[2] != 0u; // nop if (branch_taken) { goto L_0880AF88; } goto L_0880AF6C; } L_0880AF6C: ctx.gpr[5] = (ctx.gpr[16] + static_cast(24)); ctx.gpr[31] = (0x0880AF78u); ctx.gpr[4] = (ctx.gpr[20] | 0u); goto L_0880AFE8; L_0880AF78: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0880AF90; } goto L_0880AF80; } L_0880AF80: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { goto L_0880AFB8; } goto L_0880AF88; } L_0880AF88: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { goto L_0880AFB8; } goto L_0880AF90; } L_0880AF90: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); ctx.gpr[4] = (static_cast(ctx.gpr[21]) < static_cast(ctx.gpr[18]) ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.gpr[17] = (ctx.gpr[17] + static_cast(44)); if (branch_taken) { goto L_0880AF50; } goto L_0880AFA0; } L_0880AFA0: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(28))); ctx.gpr[23] = (ctx.gpr[23] + static_cast(1)); ctx.gpr[4] = (static_cast(ctx.gpr[4]) < static_cast(ctx.gpr[23]) ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.gpr[22] = (ctx.gpr[22] + static_cast(100)); if (branch_taken) { goto L_0880AF30; } goto L_0880AFB4; } L_0880AFB4: ctx.gpr[2] = (0u | 0u); goto L_0880AFB8; L_0880AFB8: ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(32))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(36))); ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(40))); ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(44))); ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(48))); ctx.gpr[21] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(52))); ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(56))); ctx.gpr[23] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(60))); ctx.gpr[30] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(64))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(68))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(80)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880AFE8: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-192)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(140), ctx.gpr[16]); ctx.gpr[16] = (ctx.gpr[4] | 0u); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[16] + static_cast(88)))))); ctx.gpr[6] = (2229u << 16u); ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast(-11604))); ctx.gpr[4] = (ctx.gpr[4] << 2u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(144), ctx.gpr[17]); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast(0))); ctx.gpr[4] = (ctx.gpr[6] + ctx.gpr[4]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(172), ctx.gpr[30]); ctx.gpr[30] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(20))); ctx.gpr[4] = (2230u << 16u); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(-5824))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(124), std::bit_cast(ctx.fpr[20])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(128), std::bit_cast(ctx.fpr[22])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(132), std::bit_cast(ctx.fpr[24])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(136), std::bit_cast(ctx.fpr[26])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(148), ctx.gpr[18]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(152), ctx.gpr[19]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(156), ctx.gpr[20]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(160), ctx.gpr[21]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(164), ctx.gpr[22]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(168), ctx.gpr[23]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(176), ctx.gpr[31]); { const bool branch_taken = ctx.gpr[5] != 0u; ctx.gpr[5] = (2230u << 16u); if (branch_taken) { goto L_0880B084; } goto L_0880B058; } L_0880B058: ctx.gpr[6] = (0u | 1u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(-5808)); aot_mem.aot_store32(ctx.gpr[4] + static_cast(-5824), ctx.gpr[6]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast(68))); ctx.gpr[6] = (0u + static_cast(-2)); aot_mem.aot_store32(ctx.gpr[5] + static_cast(64), 0u); ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[6]); aot_mem.aot_store32(ctx.gpr[5] + static_cast(68), ctx.gpr[4]); ctx.gpr[4] = (2227u << 16u); ctx.gpr[31] = (0x0880B084u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(528)); if (rt.invoke_chained_direct<&recomp_unit_0188_entry, 188u, 261u, 0x08AF5504u>(ctx, &aot_mem) && ctx.pc == 0x0880B084u) goto L_0880B084; return; L_0880B084: { const bool branch_taken = ctx.gpr[17] == 0u; aot_mem.aot_store32(ctx.gpr[29] + static_cast(116), ctx.gpr[17]); if (branch_taken) { goto L_0880B284; } goto L_0880B08C; } L_0880B08C: aot_mem.aot_store32(ctx.gpr[29] + static_cast(112), ctx.gpr[16]); ctx.gpr[4] = (ctx.gpr[16] + static_cast(48)); ctx.fpr[20] = std::bit_cast(0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(120), ctx.gpr[4]); ctx.gpr[4] = (16256u << 16u); ctx.fpr[24] = std::bit_cast(ctx.gpr[4]); ctx.gpr[20] = (2230u << 16u); ctx.gpr[4] = (16000u << 16u); ctx.fpr[26] = std::bit_cast(ctx.gpr[4]); ctx.gpr[23] = (ctx.gpr[29] + static_cast(16)); ctx.gpr[4] = (16672u << 16u); ctx.gpr[22] = (ctx.gpr[29] + static_cast(80)); ctx.fpr[22] = std::bit_cast(ctx.gpr[4]); ctx.gpr[21] = (ctx.gpr[29] + static_cast(96)); ctx.gpr[30] = (ctx.gpr[30] + static_cast(16)); ctx.gpr[20] = (ctx.gpr[20] + static_cast(-5808)); goto L_0880B0CC; L_0880B0CC: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(116))); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(112))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(8))); { const bool branch_taken = ctx.gpr[17] == ctx.gpr[5]; aot_mem.aot_store32(ctx.gpr[29] + static_cast(116), ctx.gpr[4]); if (branch_taken) { goto L_0880B278; } goto L_0880B0E4; } L_0880B0E4: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(836))); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0880B278; } goto L_0880B0F0; } L_0880B0F0: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[17] + static_cast(88)))))); ctx.gpr[5] = (0u | 169u); { const bool branch_taken = ctx.gpr[4] == ctx.gpr[5]; // nop if (branch_taken) { goto L_0880B278; } goto L_0880B100; } L_0880B100: ctx.gpr[5] = (aot_mem.aot_load16(ctx.gpr[17] + static_cast(84))); ctx.gpr[4] = (2227u << 16u); ctx.gpr[4] = (aot_mem.aot_load16(ctx.gpr[4] + static_cast(20720))); { const bool branch_taken = ctx.gpr[5] == ctx.gpr[4]; // nop if (branch_taken) { goto L_0880B278; } goto L_0880B114; } L_0880B114: ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(120))); aot_mem.aot_store16(ctx.gpr[17] + static_cast(84), static_cast(ctx.gpr[4])); ctx.gpr[4] = (ctx.gpr[17] + static_cast(48)); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(0))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[13]; ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[20])); // nop if (ctx.fpu_condition()) { ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[12]) ^ 0x80000000u); goto L_0880B13C; } goto L_0880B13C; L_0880B13C: ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[22])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0880B278; } goto L_0880B14C; } L_0880B14C: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[5] + static_cast(4))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(4))); ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[13]; ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[20])); // nop if (ctx.fpu_condition()) { ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[12]) ^ 0x80000000u); goto L_0880B168; } goto L_0880B168; L_0880B168: ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[22])); // nop { const bool branch_taken = !ctx.fpu_condition(); // nop if (branch_taken) { goto L_0880B278; } goto L_0880B178; } L_0880B178: ctx.gpr[19] = (ctx.gpr[17] | 0u); ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[19] + static_cast(88)))))); ctx.gpr[5] = (2230u << 16u); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast(-8152))); ctx.gpr[5] = (static_cast(ctx.gpr[4]) < static_cast(ctx.gpr[5]) ? 1u : 0u); { const bool branch_taken = ctx.gpr[5] == 0u; ctx.gpr[18] = (0u | 0u); if (branch_taken) { goto L_0880B1A8; } goto L_0880B194; } L_0880B194: ctx.gpr[5] = (2229u << 16u); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast(-11604))); ctx.gpr[4] = (ctx.gpr[4] << 2u); ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]); ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(0))); goto L_0880B1A8; L_0880B1A8: ctx.gpr[16] = (0u | 0u); goto L_0880B1AC; L_0880B1AC: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(1392))); ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[24])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0880B1D4; } goto L_0880B1C0; } L_0880B1C0: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast(68))); ctx.gpr[5] = (0u | 32u); ctx.gpr[4] = (ctx.gpr[4] & 496u); { const bool branch_taken = ctx.gpr[4] != ctx.gpr[5]; // nop if (branch_taken) { goto L_0880B268; } goto L_0880B1D4; } L_0880B1D4: ctx.gpr[4] = (ctx.gpr[18] | 0u); ctx.gpr[5] = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x0880B1E4u); ctx.gpr[6] = (ctx.gpr[23] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0028_entry, 28u, 220u, 0x08876460u>(ctx, &aot_mem) && ctx.pc == 0x0880B1E4u) goto L_0880B1E4; return; L_0880B1E4: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(112))); ctx.gpr[31] = (0x0880B1F0u); ctx.gpr[5] = (ctx.gpr[20] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 511u, 0x08A06548u>(ctx, &aot_mem) && ctx.pc == 0x0880B1F0u) goto L_0880B1F0; return; L_0880B1F0: ctx.gpr[4] = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x0880B1FCu); ctx.gpr[5] = (ctx.gpr[2] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 527u, 0x08A06A44u>(ctx, &aot_mem) && ctx.pc == 0x0880B1FCu) goto L_0880B1FC; return; L_0880B1FC: ctx.gpr[4] = (ctx.gpr[21] | 0u); ctx.gpr[5] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x0880B20Cu); ctx.gpr[6] = (ctx.gpr[23] | 0u); goto L_0880A85C; L_0880B20C: ctx.gpr[4] = (ctx.gpr[22] | 0u); ctx.gpr[5] = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x0880B21Cu); ctx.gpr[6] = (ctx.gpr[21] | 0u); goto L_0880A85C; L_0880B21C: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[22] + static_cast(0))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[22] + static_cast(4))); ctx.gpr[4] = (std::bit_cast(ctx.fpr[12])); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[22] + static_cast(8))); ctx.gpr[5] = (std::bit_cast(ctx.fpr[13])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(32), ctx.gpr[4]); ctx.gpr[4] = (std::bit_cast(ctx.fpr[14])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(36), ctx.gpr[5]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(40), ctx.gpr[4]); ctx.fpr[15] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[18] + static_cast(60))); ctx.gpr[4] = (ctx.gpr[29] + static_cast(32)); { 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[15] = std::bit_cast(0x7FC00000u); else ctx.fpr[15] = fs * ft; } ctx.gpr[5] = (ctx.gpr[30] | 0u); ctx.gpr[31] = (0x0880B258u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(44), std::bit_cast(ctx.fpr[15])); if (rt.invoke_chained_direct<&recomp_unit_0049_entry, 49u, 545u, 0x088CAE4Cu>(ctx, &aot_mem) && ctx.pc == 0x0880B258u) goto L_0880B258; return; L_0880B258: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0880B268; } goto L_0880B260; } L_0880B260: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { goto L_0880B288; } goto L_0880B268; } L_0880B268: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); ctx.gpr[4] = (static_cast(ctx.gpr[16]) < 4 ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] != 0u; ctx.gpr[17] = (ctx.gpr[17] + static_cast(4)); if (branch_taken) { goto L_0880B1AC; } goto L_0880B278; } L_0880B278: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(116))); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0880B0CC; } goto L_0880B284; } L_0880B284: ctx.gpr[2] = (0u | 0u); goto L_0880B288; L_0880B288: ctx.fpr[20] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(124))); ctx.fpr[22] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(128))); ctx.fpr[24] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(132))); ctx.fpr[26] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(136))); ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(140))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(144))); ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(148))); ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(152))); ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(156))); ctx.gpr[21] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(160))); ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(164))); ctx.gpr[23] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(168))); ctx.gpr[30] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(172))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(176))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(192)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880B2C8: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-32)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(20), ctx.gpr[17]); ctx.gpr[17] = (ctx.gpr[4] | 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), ctx.gpr[16]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(24), ctx.gpr[31]); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.gpr[16] = (ctx.gpr[5] | 0u); if (branch_taken) { goto L_0880B310; } goto L_0880B2E4; } L_0880B2E4: ctx.gpr[4] = (2230u << 16u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(-21268)); aot_mem.aot_store32(ctx.gpr[17] + static_cast(92), ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x0880B2FCu); ctx.gpr[5] = (0u | 0u); if (rt.invoke_chained_direct<&recomp_unit_0038_entry, 38u, 515u, 0x0889E91Cu>(ctx, &aot_mem) && ctx.pc == 0x0880B2FCu) goto L_0880B2FC; return; L_0880B2FC: ctx.gpr[4] = (ctx.gpr[16] & 1u); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0880B310; } goto L_0880B308; } L_0880B308: ctx.gpr[31] = (0x0880B310u); ctx.gpr[4] = (ctx.gpr[17] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0038_entry, 38u, 513u, 0x0889E8F8u>(ctx, &aot_mem) && ctx.pc == 0x0880B310u) goto L_0880B310; return; L_0880B310: ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(16))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(20))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(24))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880B324: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-96)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(80), std::bit_cast(ctx.fpr[20])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(84), ctx.gpr[16]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(88), ctx.gpr[17]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(92), ctx.gpr[31]); ctx.gpr[16] = (ctx.gpr[4] | 0u); ctx.gpr[17] = (ctx.gpr[5] | 0u); ctx.gpr[31] = (0x0880B348u); // nop if (rt.invoke_chained_direct<&recomp_unit_0047_entry, 47u, 67u, 0x088C05B0u>(ctx, &aot_mem) && ctx.pc == 0x0880B348u) goto L_0880B348; return; L_0880B348: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(0))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(4))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[17] + static_cast(8))); aot_mem.aot_store32(ctx.gpr[16] + static_cast(48), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[16] + static_cast(52), std::bit_cast(ctx.fpr[13])); aot_mem.aot_store32(ctx.gpr[16] + static_cast(56), std::bit_cast(ctx.fpr[14])); 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.gpr[4] = (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[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[20] = std::bit_cast(0u); ctx.gpr[4] = (ctx.gpr[16] | 0u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[20])); ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[20])); ctx.gpr[31] = (0x0880B388u); ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[20])); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 500u, 0x08A060E4u>(ctx, &aot_mem) && ctx.pc == 0x0880B388u) goto L_0880B388; return; L_0880B388: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(32))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(36))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(40))); ctx.gpr[31] = (0x0880B39Cu); ctx.gpr[4] = (ctx.gpr[16] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 523u, 0x08A06750u>(ctx, &aot_mem) && ctx.pc == 0x0880B39Cu) goto L_0880B39C; return; L_0880B39C: aot_mem.aot_store32(ctx.gpr[29] + static_cast(48), std::bit_cast(ctx.fpr[20])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(52), std::bit_cast(ctx.fpr[20])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(56), std::bit_cast(ctx.fpr[20])); ctx.gpr[4] = (ctx.gpr[29] + 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[16] + static_cast(112)); { 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_store32(ctx.gpr[29] + static_cast(64), std::bit_cast(ctx.fpr[20])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(68), std::bit_cast(ctx.fpr[20])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(72), std::bit_cast(ctx.fpr[20])); 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(128)); { 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] = (0x0880B3DCu); ctx.gpr[4] = (ctx.gpr[16] | 0u); goto L_0880B8E0; L_0880B3DC: ctx.gpr[31] = (0x0880B3E4u); ctx.gpr[4] = (ctx.gpr[16] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0047_entry, 47u, 47u, 0x088C045Cu>(ctx, &aot_mem) && ctx.pc == 0x0880B3E4u) goto L_0880B3E4; return; L_0880B3E4: ctx.fpr[20] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(80))); ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(84))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(88))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(92))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(96)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880B3FC: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-32)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), ctx.gpr[16]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(20), ctx.gpr[17]); ctx.gpr[16] = (ctx.gpr[6] | 0u); ctx.gpr[17] = (ctx.gpr[4] | 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(24), ctx.gpr[18]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(28), ctx.gpr[31]); ctx.gpr[31] = (0x0880B420u); ctx.gpr[18] = (ctx.gpr[5] | 0u); goto L_0880B460; L_0880B420: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[17] + static_cast(599)))))); ctx.gpr[4] = (ctx.gpr[4] | 2u); ctx.gpr[5] = (2177u << 16u); aot_mem.aot_store8(ctx.gpr[17] + static_cast(599), static_cast(ctx.gpr[4])); ctx.gpr[5] = (ctx.gpr[5] + static_cast(-22212)); ctx.gpr[4] = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x0880B440u); ctx.gpr[6] = (ctx.gpr[16] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0150_entry, 150u, 129u, 0x08A5D124u>(ctx, &aot_mem) && ctx.pc == 0x0880B440u) goto L_0880B440; return; L_0880B440: ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(16))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(20))); ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(24))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(28))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880B458: jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880B460: jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880B468: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-48)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(20), ctx.gpr[17]); ctx.gpr[17] = (ctx.gpr[4] | 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), ctx.gpr[16]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(28), ctx.gpr[19]); ctx.gpr[16] = (ctx.gpr[5] | 0u); ctx.gpr[19] = (ctx.gpr[7] & 255u); ctx.gpr[4] = (ctx.gpr[17] + static_cast(848)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(24), ctx.gpr[18]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(32), ctx.gpr[31]); ctx.gpr[31] = (0x0880B498u); ctx.gpr[5] = (ctx.gpr[6] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0137_entry, 137u, 207u, 0x08A29358u>(ctx, &aot_mem) && ctx.pc == 0x0880B498u) goto L_0880B498; return; L_0880B498: ctx.gpr[18] = (ctx.gpr[16] << 2u); ctx.gpr[18] = (ctx.gpr[17] + ctx.gpr[18]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(1168))); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.gpr[5] = (ctx.gpr[2] & 255u); if (branch_taken) { goto L_0880B4D0; } goto L_0880B4AC; } L_0880B4AC: ctx.gpr[6] = (0u | 1u); { const bool branch_taken = ctx.gpr[5] != ctx.gpr[6]; // nop if (branch_taken) { goto L_0880B4D8; } goto L_0880B4B8; } L_0880B4B8: ctx.gpr[5] = (ctx.gpr[4] | 0u); ctx.gpr[4] = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x0880B4C8u); ctx.gpr[6] = (0u | 2u); goto L_0880B3FC; L_0880B4C8: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0880B510; } goto L_0880B4D0; } L_0880B4D0: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0880B510; } goto L_0880B4D8; } L_0880B4D8: ctx.gpr[6] = (0u | 3u); { const bool branch_taken = ctx.gpr[5] != ctx.gpr[6]; // nop if (branch_taken) { goto L_0880B510; } goto L_0880B4E4; } L_0880B4E4: { const bool branch_taken = ctx.gpr[19] != 0u; // nop if (branch_taken) { goto L_0880B500; } goto L_0880B4EC; } L_0880B4EC: ctx.gpr[4] = (ctx.gpr[17] | 0u); ctx.gpr[5] = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x0880B4FCu); ctx.gpr[6] = (0u | 0u); if (rt.invoke_chained_direct<&recomp_unit_0006_entry, 6u, 535u, 0x0881E818u>(ctx, &aot_mem) && ctx.pc == 0x0880B4FCu) goto L_0880B4FC; return; L_0880B4FC: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(1168))); goto L_0880B500; L_0880B500: ctx.gpr[5] = (ctx.gpr[4] | 0u); ctx.gpr[4] = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x0880B510u); ctx.gpr[6] = (0u | 0u); goto L_0880B3FC; L_0880B510: ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(16))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(20))); ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(24))); ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(28))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(32))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880B52C: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-48)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(24), ctx.gpr[18]); ctx.gpr[18] = (ctx.gpr[4] | 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), ctx.gpr[16]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(20), ctx.gpr[17]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(32), ctx.gpr[20]); ctx.gpr[16] = (ctx.gpr[6] | 0u); ctx.gpr[17] = (ctx.gpr[5] | 0u); ctx.gpr[20] = (ctx.gpr[7] & 255u); ctx.gpr[4] = (ctx.gpr[18] + static_cast(848)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(28), ctx.gpr[19]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(36), ctx.gpr[31]); ctx.gpr[31] = (0x0880B564u); ctx.gpr[5] = (ctx.gpr[16] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0137_entry, 137u, 207u, 0x08A29358u>(ctx, &aot_mem) && ctx.pc == 0x0880B564u) goto L_0880B564; return; L_0880B564: ctx.gpr[19] = (ctx.gpr[17] << 2u); ctx.gpr[19] = (ctx.gpr[18] + ctx.gpr[19]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast(1168))); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.gpr[5] = (ctx.gpr[2] & 255u); if (branch_taken) { goto L_0880B58C; } goto L_0880B578; } L_0880B578: ctx.gpr[6] = (0u | 1u); { const bool branch_taken = ctx.gpr[5] == ctx.gpr[6]; // nop if (branch_taken) { goto L_0880B594; } goto L_0880B584; } L_0880B584: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0880B5D4; } goto L_0880B58C; } L_0880B58C: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0880B62C; } goto L_0880B594; } L_0880B594: ctx.gpr[5] = (0u | 4u); { const bool branch_taken = ctx.gpr[16] != ctx.gpr[5]; // nop if (branch_taken) { goto L_0880B5BC; } goto L_0880B5A0; } L_0880B5A0: ctx.gpr[4] = (2230u << 16u); ctx.fpr[12] = std::bit_cast(0u); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(96))); ctx.gpr[6] = (0u | 12u); ctx.gpr[31] = (0x0880B5B8u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(-8107)); if (rt.invoke_chained_direct<&recomp_unit_0024_entry, 24u, 102u, 0x0886477Cu>(ctx, &aot_mem) && ctx.pc == 0x0880B5B8u) goto L_0880B5B8; return; L_0880B5B8: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast(1168))); goto L_0880B5BC; L_0880B5BC: ctx.gpr[5] = (ctx.gpr[4] | 0u); ctx.gpr[4] = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x0880B5CCu); ctx.gpr[6] = (0u | 2u); goto L_0880B3FC; L_0880B5CC: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0880B62C; } goto L_0880B5D4; } L_0880B5D4: ctx.gpr[6] = (0u | 3u); { const bool branch_taken = ctx.gpr[5] != ctx.gpr[6]; // nop if (branch_taken) { goto L_0880B62C; } goto L_0880B5E0; } L_0880B5E0: { const bool branch_taken = ctx.gpr[20] != 0u; // nop if (branch_taken) { goto L_0880B600; } goto L_0880B5E8; } L_0880B5E8: ctx.gpr[4] = (ctx.gpr[18] | 0u); ctx.gpr[5] = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x0880B5F8u); ctx.gpr[6] = (0u | 5u); if (rt.invoke_chained_direct<&recomp_unit_0006_entry, 6u, 535u, 0x0881E818u>(ctx, &aot_mem) && ctx.pc == 0x0880B5F8u) goto L_0880B5F8; return; L_0880B5F8: { const bool branch_taken = 0u == 0u; ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast(1168))); if (branch_taken) { goto L_0880B61C; } goto L_0880B600; } L_0880B600: ctx.gpr[5] = (0u | 4u); { const bool branch_taken = ctx.gpr[16] != ctx.gpr[5]; // nop if (branch_taken) { goto L_0880B61C; } goto L_0880B60C; } L_0880B60C: ctx.gpr[4] = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x0880B618u); ctx.gpr[5] = (0u | 0u); goto L_08809930; L_0880B618: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast(1168))); goto L_0880B61C; L_0880B61C: ctx.gpr[5] = (ctx.gpr[4] | 0u); ctx.gpr[4] = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x0880B62Cu); ctx.gpr[6] = (0u | 0u); goto L_0880B3FC; L_0880B62C: ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(16))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(20))); ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(24))); ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(28))); ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(32))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(36))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880B64C: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-64)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(24), ctx.gpr[18]); ctx.gpr[18] = (ctx.gpr[4] | 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(40), ctx.gpr[22]); ctx.gpr[22] = (ctx.gpr[18] + static_cast(848)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), ctx.gpr[16]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(20), ctx.gpr[17]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(44), ctx.gpr[23]); ctx.gpr[16] = (ctx.gpr[6] | 0u); ctx.gpr[17] = (ctx.gpr[5] | 0u); ctx.gpr[23] = (ctx.gpr[7] & 255u); ctx.gpr[4] = (ctx.gpr[22] | 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(28), ctx.gpr[19]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(32), ctx.gpr[20]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(36), ctx.gpr[21]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(48), ctx.gpr[31]); ctx.gpr[31] = (0x0880B694u); ctx.gpr[5] = (ctx.gpr[16] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0137_entry, 137u, 215u, 0x08A293C4u>(ctx, &aot_mem) && ctx.pc == 0x0880B694u) goto L_0880B694; return; L_0880B694: ctx.gpr[20] = (ctx.gpr[17] << 2u); ctx.gpr[20] = (ctx.gpr[18] + ctx.gpr[20]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast(1168))); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.gpr[21] = (ctx.gpr[2] & 255u); if (branch_taken) { goto L_0880B6C0; } goto L_0880B6A8; } L_0880B6A8: ctx.gpr[31] = (0x0880B6B0u); ctx.gpr[4] = (ctx.gpr[18] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0038_entry, 38u, 884u, 0x0889FFD4u>(ctx, &aot_mem) && ctx.pc == 0x0880B6B0u) goto L_0880B6B0; return; L_0880B6B0: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.gpr[19] = (0u | 1u); if (branch_taken) { goto L_0880B6DC; } goto L_0880B6B8; } L_0880B6B8: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0880B70C; } goto L_0880B6C0; } L_0880B6C0: ctx.gpr[4] = (2225u << 16u); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[18] + static_cast(88)))))); ctx.gpr[5] = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x0880B6D4u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(-13464)); if (rt.invoke_chained_direct<&recomp_unit_0189_entry, 189u, 382u, 0x08AF9A9Cu>(ctx, &aot_mem) && ctx.pc == 0x0880B6D4u) goto L_0880B6D4; return; L_0880B6D4: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0880B800; } goto L_0880B6DC; } L_0880B6DC: ctx.gpr[4] = (static_cast(ctx.gpr[21]) < 2 ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0880B70C; } goto L_0880B6E8; } L_0880B6E8: { const bool branch_taken = ctx.gpr[16] == 0u; // nop if (branch_taken) { goto L_0880B70C; } goto L_0880B6F0; } L_0880B6F0: { const bool branch_taken = ctx.gpr[16] == ctx.gpr[19]; // nop if (branch_taken) { goto L_0880B70C; } goto L_0880B6F8; } L_0880B6F8: ctx.gpr[21] = (ctx.gpr[19] | 0u); ctx.gpr[4] = (ctx.gpr[22] | 0u); ctx.gpr[5] = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x0880B70Cu); ctx.gpr[6] = (0u | 1u); if (rt.invoke_chained_direct<&recomp_unit_0137_entry, 137u, 210u, 0x08A29388u>(ctx, &aot_mem) && ctx.pc == 0x0880B70Cu) goto L_0880B70C; return; L_0880B70C: { const bool branch_taken = ctx.gpr[16] != ctx.gpr[19]; ctx.gpr[4] = (0u | 2u); if (branch_taken) { goto L_0880B744; } goto L_0880B714; } L_0880B714: { const bool branch_taken = ctx.gpr[21] != ctx.gpr[4]; // nop if (branch_taken) { goto L_0880B744; } goto L_0880B71C; } L_0880B71C: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast(336))); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(208))); ctx.gpr[4] = (ctx.gpr[4] & 1024u); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0880B744; } goto L_0880B730; } L_0880B730: ctx.gpr[4] = (ctx.gpr[22] | 0u); ctx.gpr[5] = (0u | 1u); ctx.gpr[31] = (0x0880B740u); ctx.gpr[6] = (0u | 3u); if (rt.invoke_chained_direct<&recomp_unit_0137_entry, 137u, 210u, 0x08A29388u>(ctx, &aot_mem) && ctx.pc == 0x0880B740u) goto L_0880B740; return; L_0880B740: ctx.gpr[21] = (0u | 3u); goto L_0880B744; L_0880B744: { const bool branch_taken = ctx.gpr[21] != ctx.gpr[19]; // nop if (branch_taken) { goto L_0880B764; } goto L_0880B74C; } L_0880B74C: ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast(1168))); ctx.gpr[4] = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x0880B75Cu); ctx.gpr[6] = (0u | 2u); goto L_0880B3FC; L_0880B75C: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0880B800; } goto L_0880B764; } L_0880B764: ctx.gpr[4] = (0u | 3u); { const bool branch_taken = ctx.gpr[21] != ctx.gpr[4]; // nop if (branch_taken) { goto L_0880B7E0; } goto L_0880B770; } L_0880B770: { const bool branch_taken = ctx.gpr[23] != 0u; // nop if (branch_taken) { goto L_0880B7C8; } goto L_0880B778; } L_0880B778: { const bool branch_taken = ctx.gpr[16] != 0u; // nop if (branch_taken) { goto L_0880B798; } goto L_0880B780; } L_0880B780: ctx.gpr[4] = (ctx.gpr[18] | 0u); ctx.gpr[5] = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x0880B790u); ctx.gpr[6] = (0u | 3u); if (rt.invoke_chained_direct<&recomp_unit_0006_entry, 6u, 535u, 0x0881E818u>(ctx, &aot_mem) && ctx.pc == 0x0880B790u) goto L_0880B790; return; L_0880B790: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0880B7C8; } goto L_0880B798; } L_0880B798: { const bool branch_taken = ctx.gpr[16] != ctx.gpr[19]; // nop if (branch_taken) { goto L_0880B7B8; } goto L_0880B7A0; } L_0880B7A0: ctx.gpr[4] = (ctx.gpr[18] | 0u); ctx.gpr[5] = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x0880B7B0u); ctx.gpr[6] = (0u | 4u); if (rt.invoke_chained_direct<&recomp_unit_0006_entry, 6u, 535u, 0x0881E818u>(ctx, &aot_mem) && ctx.pc == 0x0880B7B0u) goto L_0880B7B0; return; L_0880B7B0: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0880B7C8; } goto L_0880B7B8; } L_0880B7B8: ctx.gpr[4] = (ctx.gpr[18] | 0u); ctx.gpr[5] = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x0880B7C8u); ctx.gpr[6] = (0u | 2u); if (rt.invoke_chained_direct<&recomp_unit_0006_entry, 6u, 535u, 0x0881E818u>(ctx, &aot_mem) && ctx.pc == 0x0880B7C8u) goto L_0880B7C8; return; L_0880B7C8: ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast(1168))); ctx.gpr[4] = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x0880B7D8u); ctx.gpr[6] = (0u | 0u); goto L_0880B3FC; L_0880B7D8: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0880B800; } goto L_0880B7E0; } L_0880B7E0: ctx.gpr[4] = (0u | 2u); { const bool branch_taken = ctx.gpr[21] != ctx.gpr[4]; // nop if (branch_taken) { goto L_0880B800; } goto L_0880B7EC; } L_0880B7EC: ctx.gpr[5] = (2183u << 16u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast(1168))); ctx.gpr[6] = (0u | 2048u); ctx.gpr[31] = (0x0880B800u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(27612)); if (rt.invoke_chained_direct<&recomp_unit_0150_entry, 150u, 129u, 0x08A5D124u>(ctx, &aot_mem) && ctx.pc == 0x0880B800u) goto L_0880B800; return; L_0880B800: ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(16))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(20))); ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(24))); ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(28))); ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(32))); ctx.gpr[21] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(36))); ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(40))); ctx.gpr[23] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(44))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(48))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(64)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880B82C: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-32)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(20), ctx.gpr[16]); ctx.gpr[16] = (ctx.gpr[4] | 0u); ctx.gpr[4] = (ctx.gpr[16] + static_cast(848)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), std::bit_cast(ctx.fpr[20])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(24), ctx.gpr[17]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(28), ctx.gpr[31]); ctx.gpr[31] = (0x0880B850u); ctx.gpr[5] = (0u | 0u); if (rt.invoke_chained_direct<&recomp_unit_0137_entry, 137u, 215u, 0x08A293C4u>(ctx, &aot_mem) && ctx.pc == 0x0880B850u) goto L_0880B850; return; L_0880B850: ctx.gpr[4] = (0u | 2u); { const bool branch_taken = ctx.gpr[2] != ctx.gpr[4]; // nop if (branch_taken) { goto L_0880B8C4; } goto L_0880B85C; } L_0880B85C: ctx.fpr[20] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(892))); ctx.gpr[31] = (0x0880B868u); ctx.gpr[4] = (ctx.gpr[16] + static_cast(880)); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 628u, 0x08A07130u>(ctx, &aot_mem) && ctx.pc == 0x0880B868u) goto L_0880B868; return; L_0880B868: ctx.gpr[4] = (16076u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 52429u); ctx.fpr[12] = std::bit_cast(ctx.gpr[4]); { const float fs = ctx.fpr[0]; 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(); // nop if (branch_taken) { goto L_0880B8C4; } goto L_0880B888; } L_0880B888: ctx.gpr[4] = (ctx.gpr[16] | 0u); ctx.gpr[5] = (0u | 17u); ctx.gpr[31] = (0x0880B898u); ctx.gpr[6] = (0u | 2u); if (rt.invoke_chained_direct<&recomp_unit_0006_entry, 6u, 535u, 0x0881E818u>(ctx, &aot_mem) && ctx.pc == 0x0880B898u) goto L_0880B898; return; L_0880B898: ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(1236))); ctx.gpr[17] = (ctx.gpr[2] | 0u); ctx.gpr[4] = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x0880B8ACu); ctx.gpr[6] = (0u | 0u); goto L_0880B3FC; L_0880B8AC: ctx.gpr[4] = (ctx.gpr[16] + static_cast(848)); ctx.gpr[5] = (0u | 0u); ctx.gpr[31] = (0x0880B8BCu); ctx.gpr[6] = (0u | 3u); if (rt.invoke_chained_direct<&recomp_unit_0137_entry, 137u, 210u, 0x08A29388u>(ctx, &aot_mem) && ctx.pc == 0x0880B8BCu) goto L_0880B8BC; return; L_0880B8B8: ctx.gpr[6] = (0u | 3u); goto L_0880B8BC; L_0880B8BC: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[17] | 0u); if (branch_taken) { goto L_0880B8C8; } goto L_0880B8C4; } L_0880B8C4: ctx.gpr[2] = (0u | 0u); goto L_0880B8C8; L_0880B8C8: ctx.fpr[20] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(16))); ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(20))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(24))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(28))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880B8E0: ctx.gpr[6] = (16256u << 16u); ctx.fpr[12] = std::bit_cast(0u); ctx.gpr[5] = (0u | 0u); ctx.fpr[13] = std::bit_cast(ctx.gpr[6]); goto L_0880B8F0; L_0880B8F0: aot_mem.aot_store32(ctx.gpr[4] + static_cast(1376), std::bit_cast(ctx.fpr[13])); aot_mem.aot_store32(ctx.gpr[4] + static_cast(1408), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[4] + static_cast(1460), std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[4] + static_cast(1736), 0u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(1)); ctx.gpr[6] = (static_cast(ctx.gpr[5]) < 4 ? 1u : 0u); { const bool branch_taken = ctx.gpr[6] != 0u; ctx.gpr[4] = (ctx.gpr[4] + static_cast(4)); if (branch_taken) { goto L_0880B8F0; } goto L_0880B910; } L_0880B910: jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880B918: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-48)); ctx.gpr[7] = (ctx.gpr[5] | 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(32), ctx.gpr[16]); ctx.gpr[5] = (ctx.gpr[7] << 2u); ctx.gpr[16] = (ctx.gpr[6] | 0u); ctx.gpr[6] = (ctx.gpr[4] + ctx.gpr[5]); ctx.gpr[8] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast(1168))); ctx.gpr[5] = (ctx.gpr[4] | 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(36), ctx.gpr[17]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(40), ctx.gpr[31]); { const bool branch_taken = ctx.gpr[8] == 0u; ctx.gpr[4] = (ctx.gpr[7] | 0u); if (branch_taken) { goto L_0880B984; } goto L_0880B948; } L_0880B948: ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast(1168))); ctx.gpr[31] = (0x0880B954u); ctx.gpr[4] = (ctx.gpr[17] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0150_entry, 150u, 226u, 0x08A5D820u>(ctx, &aot_mem) && ctx.pc == 0x0880B954u) goto L_0880B954; return; L_0880B954: ctx.gpr[4] = (ctx.gpr[17] + static_cast(80)); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(48))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(52))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(20), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[4] + static_cast(56))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(24), std::bit_cast(ctx.fpr[12])); ctx.gpr[4] = (ctx.gpr[29] + 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); } { 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 bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0880B998; } goto L_0880B984; } L_0880B984: ctx.gpr[6] = (ctx.gpr[4] | 0u); ctx.gpr[4] = (2225u << 16u); ctx.gpr[5] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[5] + static_cast(88)))))); ctx.gpr[31] = (0x0880B998u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(-13416)); if (rt.invoke_chained_direct<&recomp_unit_0189_entry, 189u, 382u, 0x08AF9A9Cu>(ctx, &aot_mem) && ctx.pc == 0x0880B998u) goto L_0880B998; return; L_0880B998: ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(32))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(36))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(40))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880B9AC: ctx.gpr[5] = (ctx.gpr[5] << 2u); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(1168))); { const bool branch_taken = ctx.gpr[4] != 0u; // nop if (branch_taken) { goto L_0880B9C8; } goto L_0880B9C0; } L_0880B9C0: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_0880B9CC; } goto L_0880B9C8; } L_0880B9C8: ctx.gpr[2] = (0u | 1u); goto L_0880B9CC; L_0880B9CC: jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880B9D4: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-144)); ctx.gpr[5] = (ctx.gpr[5] << 2u); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(124), ctx.gpr[17]); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(1168))); aot_mem.aot_store32(ctx.gpr[29] + static_cast(80), 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(112), std::bit_cast(ctx.fpr[20])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(116), std::bit_cast(ctx.fpr[22])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(120), ctx.gpr[16]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(128), ctx.gpr[31]); { const bool branch_taken = 0u == 0u; ctx.gpr[16] = (ctx.gpr[6] | 0u); if (branch_taken) { goto L_0880BA1C; } goto L_0880BA04; } L_0880BA04: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(84))); ctx.gpr[4] = (ctx.gpr[4] & 1u); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.gpr[4] = (ctx.gpr[17] + static_cast(16)); if (branch_taken) { goto L_0880BA20; } goto L_0880BA14; } L_0880BA14: ctx.gpr[31] = (0x0880BA1Cu); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(80))); if (rt.invoke_chained_direct<&recomp_unit_0134_entry, 134u, 263u, 0x08A1D574u>(ctx, &aot_mem) && ctx.pc == 0x0880BA1Cu) goto L_0880BA1C; return; L_0880BA1C: ctx.gpr[4] = (ctx.gpr[17] + static_cast(16)); goto L_0880BA20; L_0880BA20: aot_mem.aot_store32(ctx.gpr[29] + static_cast(80), ctx.gpr[4]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(84))); ctx.gpr[5] = (0u + static_cast(-2)); ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(84), ctx.gpr[4]); ctx.gpr[17] = (ctx.gpr[29] + static_cast(16)); ctx.gpr[31] = (0x0880BA40u); ctx.gpr[4] = (ctx.gpr[17] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 516u, 0x08A06604u>(ctx, &aot_mem) && ctx.pc == 0x0880BA40u) goto L_0880BA40; return; L_0880BA40: 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(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.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(0))); ctx.gpr[4] = (16457u << 16u); ctx.gpr[4] = (ctx.gpr[4] | 4059u); ctx.fpr[20] = std::bit_cast(ctx.gpr[4]); { 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.gpr[4] = (17204u << 16u); ctx.fpr[22] = std::bit_cast(ctx.gpr[4]); ctx.fpr[12] = ctx.fpr[12] / ctx.fpr[22]; ctx.gpr[31] = (0x0880BA78u); ctx.gpr[4] = (ctx.gpr[17] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 494u, 0x08A0606Cu>(ctx, &aot_mem) && ctx.pc == 0x0880BA78u) goto L_0880BA78; return; L_0880BA78: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(4))); { 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[22]; ctx.gpr[31] = (0x0880BA8Cu); ctx.gpr[4] = (ctx.gpr[17] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 496u, 0x08A06094u>(ctx, &aot_mem) && ctx.pc == 0x0880BA8Cu) goto L_0880BA8C; return; L_0880BA8C: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[16] + static_cast(8))); { 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[22]; ctx.gpr[31] = (0x0880BAA0u); ctx.gpr[4] = (ctx.gpr[17] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 498u, 0x08A060BCu>(ctx, &aot_mem) && ctx.pc == 0x0880BAA0u) goto L_0880BAA0; return; L_0880BAA0: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); ctx.gpr[31] = (0x0880BAB4u); ctx.gpr[4] = (ctx.gpr[17] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 523u, 0x08A06750u>(ctx, &aot_mem) && ctx.pc == 0x0880BAB4u) goto L_0880BAB4; return; L_0880BAB4: ctx.gpr[31] = (0x0880BABCu); ctx.gpr[4] = (ctx.gpr[17] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 513u, 0x08A065D0u>(ctx, &aot_mem) && ctx.pc == 0x0880BABCu) goto L_0880BABC; return; L_0880BABC: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(84))); ctx.gpr[4] = (ctx.gpr[4] & 1u); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0880BAE0; } goto L_0880BACC; } L_0880BACC: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(80))); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0880BAE0; } goto L_0880BAD8; } L_0880BAD8: ctx.gpr[31] = (0x0880BAE0u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(80))); if (rt.invoke_chained_direct<&recomp_unit_0134_entry, 134u, 263u, 0x08A1D574u>(ctx, &aot_mem) && ctx.pc == 0x0880BAE0u) goto L_0880BAE0; return; L_0880BAE0: 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[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(128))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(144)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880BAFC: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-176)); ctx.gpr[7] = (ctx.gpr[6] << 4u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(148), ctx.gpr[19]); ctx.gpr[19] = (ctx.gpr[5] << 2u); ctx.gpr[8] = (ctx.gpr[7] + ctx.gpr[7]); ctx.gpr[19] = (ctx.gpr[4] + ctx.gpr[19]); ctx.gpr[7] = (ctx.gpr[7] + ctx.gpr[8]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(152), ctx.gpr[20]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(160), ctx.gpr[22]); ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast(1168))); ctx.gpr[22] = (ctx.gpr[4] + ctx.gpr[7]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(124), std::bit_cast(ctx.fpr[20])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(128), std::bit_cast(ctx.fpr[22])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(136), ctx.gpr[16]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(140), ctx.gpr[17]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(156), ctx.gpr[21]); ctx.fpr[22] = std::bit_cast(0u); ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[12])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(80), 0u); ctx.gpr[21] = (ctx.gpr[29] + static_cast(16)); ctx.gpr[22] = (ctx.gpr[22] + static_cast(880)); ctx.gpr[16] = (ctx.gpr[4] | 0u); ctx.gpr[17] = (ctx.gpr[5] | 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(132), std::bit_cast(ctx.fpr[24])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(144), ctx.gpr[18]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(164), ctx.gpr[31]); { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (ctx.gpr[6] | 0u); if (branch_taken) { goto L_0880BB84; } goto L_0880BB6C; } L_0880BB6C: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(84))); ctx.gpr[4] = (ctx.gpr[4] & 1u); { const bool branch_taken = ctx.gpr[4] == 0u; ctx.gpr[4] = (ctx.gpr[20] + static_cast(16)); if (branch_taken) { goto L_0880BB88; } goto L_0880BB7C; } L_0880BB7C: ctx.gpr[31] = (0x0880BB84u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(80))); if (rt.invoke_chained_direct<&recomp_unit_0134_entry, 134u, 263u, 0x08A1D574u>(ctx, &aot_mem) && ctx.pc == 0x0880BB84u) goto L_0880BB84; return; L_0880BB84: ctx.gpr[4] = (ctx.gpr[20] + static_cast(16)); goto L_0880BB88; L_0880BB88: aot_mem.aot_store32(ctx.gpr[29] + static_cast(80), ctx.gpr[4]); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(84))); ctx.gpr[5] = (0u + static_cast(-2)); ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(84), ctx.gpr[4]); ctx.gpr[31] = (0x0880BBA4u); ctx.gpr[4] = (ctx.gpr[21] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 516u, 0x08A06604u>(ctx, &aot_mem) && ctx.pc == 0x0880BBA4u) goto L_0880BBA4; return; L_0880BBA4: 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(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])); } aot_mem.aot_store32(ctx.gpr[29] + static_cast(112), std::bit_cast(ctx.fpr[22])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(116), std::bit_cast(ctx.fpr[22])); aot_mem.aot_store32(ctx.gpr[29] + static_cast(120), std::bit_cast(ctx.fpr[22])); ctx.gpr[20] = (0u | 0u); ctx.gpr[31] = (0x0880BBCCu); ctx.gpr[4] = (ctx.gpr[22] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 636u, 0x08A071B0u>(ctx, &aot_mem) && ctx.pc == 0x0880BBCCu) goto L_0880BBCC; return; L_0880BBCC: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0880BBEC; } goto L_0880BBD4; } L_0880BBD4: ctx.gpr[5] = (2183u << 16u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast(1168))); ctx.gpr[6] = (0u | 2048u); ctx.gpr[31] = (0x0880BBE8u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(27652)); if (rt.invoke_chained_direct<&recomp_unit_0150_entry, 150u, 129u, 0x08A5D124u>(ctx, &aot_mem) && ctx.pc == 0x0880BBE8u) goto L_0880BBE8; return; L_0880BBE8: ctx.gpr[20] = (0u | 1u); goto L_0880BBEC; L_0880BBEC: ctx.gpr[4] = (ctx.gpr[22] | 0u); ctx.gpr[31] = (0x0880BBF8u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[20])); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 617u, 0x08A07080u>(ctx, &aot_mem) && ctx.pc == 0x0880BBF8u) goto L_0880BBF8; return; L_0880BBF8: { const bool branch_taken = ctx.gpr[20] == 0u; // nop if (branch_taken) { goto L_0880BC54; } goto L_0880BC00; } L_0880BC00: ctx.fpr[24] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[22] + static_cast(12))); ctx.gpr[31] = (0x0880BC0Cu); ctx.gpr[4] = (ctx.gpr[22] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 624u, 0x08A070FCu>(ctx, &aot_mem) && ctx.pc == 0x0880BC0Cu) goto L_0880BC0C; return; L_0880BC0C: ctx.set_fpu_condition((!(std::isnan(ctx.fpr[24]) || std::isnan(ctx.fpr[0])) && ctx.fpr[24] == ctx.fpr[0])); // nop { const bool branch_taken = ctx.fpu_condition(); // nop if (branch_taken) { goto L_0880BC54; } goto L_0880BC1C; } L_0880BC1C: ctx.gpr[31] = (0x0880BC24u); ctx.gpr[4] = (ctx.gpr[16] | 0u); goto L_0880B460; L_0880BC24: ctx.gpr[5] = (2183u << 16u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast(1168))); ctx.gpr[6] = (0u | 2048u); ctx.gpr[31] = (0x0880BC38u); ctx.gpr[5] = (ctx.gpr[5] + static_cast(27612)); if (rt.invoke_chained_direct<&recomp_unit_0150_entry, 150u, 129u, 0x08A5D124u>(ctx, &aot_mem) && ctx.pc == 0x0880BC38u) goto L_0880BC38; return; L_0880BC38: ctx.gpr[6] = (ctx.gpr[18] + static_cast(6)); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[22])); ctx.gpr[4] = (2230u << 16u); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(96))); ctx.gpr[6] = (ctx.gpr[6] & 65535u); ctx.gpr[31] = (0x0880BC54u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(-8107)); if (rt.invoke_chained_direct<&recomp_unit_0024_entry, 24u, 102u, 0x0886477Cu>(ctx, &aot_mem) && ctx.pc == 0x0880BC54u) goto L_0880BC54; return; L_0880BC54: if (ctx.gpr[20] != 0u) { ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[22] + static_cast(9))); goto L_0880BCF0; } goto L_0880BC5C; L_0880BC5C: ctx.set_fpu_condition((!(std::isnan(ctx.fpr[20]) || std::isnan(ctx.fpr[22])) && ctx.fpr[20] == ctx.fpr[22])); // nop if (!ctx.fpu_condition()) { ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[22] + static_cast(9))); goto L_0880BCF0; } goto L_0880BC6C; L_0880BC6C: ctx.gpr[19] = (ctx.gpr[16] + static_cast(848)); ctx.gpr[4] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x0880BC7Cu); ctx.gpr[5] = (ctx.gpr[18] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0137_entry, 137u, 215u, 0x08A293C4u>(ctx, &aot_mem) && ctx.pc == 0x0880BC7Cu) goto L_0880BC7C; return; L_0880BC7C: ctx.gpr[4] = (0u | 2u); { const bool branch_taken = ctx.gpr[2] != ctx.gpr[4]; ctx.gpr[20] = (0u | 16u); if (branch_taken) { goto L_0880BC98; } goto L_0880BC88; } L_0880BC88: ctx.gpr[4] = (ctx.gpr[19] | 0u); ctx.gpr[5] = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x0880BC98u); ctx.gpr[6] = (0u | 0u); if (rt.invoke_chained_direct<&recomp_unit_0137_entry, 137u, 210u, 0x08A29388u>(ctx, &aot_mem) && ctx.pc == 0x0880BC98u) goto L_0880BC98; return; L_0880BC98: ctx.gpr[31] = (0x0880BCA0u); ctx.gpr[4] = (ctx.gpr[16] | 0u); goto L_0880B458; L_0880BCA0: { const bool branch_taken = ctx.gpr[17] != ctx.gpr[20]; // nop if (branch_taken) { goto L_0880BCD4; } goto L_0880BCA8; } L_0880BCA8: { const bool branch_taken = ctx.gpr[17] != ctx.gpr[20]; // nop if (branch_taken) { goto L_0880BCEC; } goto L_0880BCB0; } L_0880BCB0: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(92))); ctx.gpr[5] = (0u | 5u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(232)); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(4))); jump_target = ctx.gpr[7]; ctx.gpr[31] = (0x0880BCCCu); ctx.gpr[4] = (ctx.gpr[16] + ctx.gpr[6]); ctx.pc = jump_target; if (rt.invoke_chained_call(ctx, &aot_mem) && ctx.pc == 0x0880BCCCu) goto L_0880BCCC; return; L_0880BCCC: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0880BCEC; } goto L_0880BCD4; } L_0880BCD4: ctx.gpr[4] = (2230u << 16u); ctx.fpr[12] = std::bit_cast(std::bit_cast(ctx.fpr[22])); ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast(96))); ctx.gpr[6] = (ctx.gpr[18] & 65535u); ctx.gpr[31] = (0x0880BCECu); ctx.gpr[4] = (ctx.gpr[4] + static_cast(-8107)); if (rt.invoke_chained_direct<&recomp_unit_0024_entry, 24u, 102u, 0x0886477Cu>(ctx, &aot_mem) && ctx.pc == 0x0880BCECu) goto L_0880BCEC; return; L_0880BCEC: ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[22] + static_cast(9))); goto L_0880BCF0; L_0880BCF0: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[22] + static_cast(12))); ctx.gpr[4] = (ctx.gpr[4] << 2u); ctx.gpr[4] = (ctx.gpr[29] + ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[4] + static_cast(112), std::bit_cast(ctx.fpr[12])); ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(112))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(116))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(120))); ctx.gpr[31] = (0x0880BD14u); ctx.gpr[4] = (ctx.gpr[21] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 500u, 0x08A060E4u>(ctx, &aot_mem) && ctx.pc == 0x0880BD14u) goto L_0880BD14; return; L_0880BD14: ctx.fpr[12] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(96))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(100))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(104))); ctx.gpr[31] = (0x0880BD28u); ctx.gpr[4] = (ctx.gpr[21] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 523u, 0x08A06750u>(ctx, &aot_mem) && ctx.pc == 0x0880BD28u) goto L_0880BD28; return; L_0880BD28: ctx.gpr[31] = (0x0880BD30u); ctx.gpr[4] = (ctx.gpr[21] | 0u); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 513u, 0x08A065D0u>(ctx, &aot_mem) && ctx.pc == 0x0880BD30u) goto L_0880BD30; return; L_0880BD30: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(84))); ctx.gpr[4] = (ctx.gpr[4] & 1u); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0880BD54; } goto L_0880BD40; } L_0880BD40: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(80))); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0880BD54; } goto L_0880BD4C; } L_0880BD4C: ctx.gpr[31] = (0x0880BD54u); ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(80))); if (rt.invoke_chained_direct<&recomp_unit_0134_entry, 134u, 263u, 0x08A1D574u>(ctx, &aot_mem) && ctx.pc == 0x0880BD54u) goto L_0880BD54; return; L_0880BD54: ctx.fpr[20] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(124))); ctx.fpr[22] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(128))); ctx.fpr[24] = std::bit_cast(aot_mem.aot_load32(ctx.gpr[29] + static_cast(132))); ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(136))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(140))); ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(144))); ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(148))); ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(152))); ctx.gpr[21] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(156))); ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(160))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(164))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(176)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880BD88: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-32)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), ctx.gpr[16]); ctx.gpr[16] = (ctx.gpr[5] | 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(20), ctx.gpr[17]); ctx.gpr[5] = (ctx.gpr[16] << 4u); ctx.gpr[17] = (ctx.gpr[4] | 0u); ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[5]); ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[17] + ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(24), ctx.gpr[31]); ctx.gpr[31] = (0x0880BDB8u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(880)); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 636u, 0x08A071B0u>(ctx, &aot_mem) && ctx.pc == 0x0880BDB8u) goto L_0880BDB8; return; L_0880BDB8: { const bool branch_taken = ctx.gpr[2] != 0u; // nop if (branch_taken) { goto L_0880BDE4; } goto L_0880BDC0; } L_0880BDC0: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(92))); ctx.gpr[5] = (ctx.gpr[16] | 0u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(256)); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(4))); jump_target = ctx.gpr[7]; ctx.gpr[31] = (0x0880BDDCu); ctx.gpr[4] = (ctx.gpr[17] + ctx.gpr[6]); ctx.pc = jump_target; if (rt.invoke_chained_call(ctx, &aot_mem) && ctx.pc == 0x0880BDDCu) goto L_0880BDDC; return; L_0880BDDC: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0880BDEC; } goto L_0880BDE4; } L_0880BDE4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { goto L_0880BE68; } goto L_0880BDEC; } L_0880BDEC: ctx.gpr[5] = (static_cast(ctx.gpr[16]) < 4 ? 1u : 0u); { const bool branch_taken = ctx.gpr[5] == 0u; ctx.gpr[4] = (0u | 0u); if (branch_taken) { goto L_0880BE18; } goto L_0880BDF8; } L_0880BDF8: ctx.gpr[5] = (static_cast(ctx.gpr[16]) < 2 ? 1u : 0u); { const bool branch_taken = ctx.gpr[5] != 0u; // nop if (branch_taken) { goto L_0880BE48; } goto L_0880BE04; } L_0880BE04: ctx.gpr[4] = (static_cast(ctx.gpr[16]) < 3 ? 1u : 0u); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0880BE3C; } goto L_0880BE10; } L_0880BE10: { const bool branch_taken = 0u == 0u; ctx.gpr[4] = (0u | 1u); if (branch_taken) { goto L_0880BE48; } goto L_0880BE18; } L_0880BE18: ctx.gpr[5] = (static_cast(ctx.gpr[16]) < 5 ? 1u : 0u); { const bool branch_taken = ctx.gpr[5] != 0u; ctx.gpr[5] = (static_cast(ctx.gpr[16]) < 6 ? 1u : 0u); if (branch_taken) { goto L_0880BE34; } goto L_0880BE24; } L_0880BE24: { const bool branch_taken = ctx.gpr[5] != 0u; // nop if (branch_taken) { goto L_0880BE44; } goto L_0880BE2C; } L_0880BE2C: { const bool branch_taken = 0u == 0u; // nop if (branch_taken) { goto L_0880BE48; } goto L_0880BE34; } L_0880BE34: { const bool branch_taken = 0u == 0u; ctx.gpr[4] = (0u | 2u); if (branch_taken) { goto L_0880BE48; } goto L_0880BE3C; } L_0880BE3C: { const bool branch_taken = 0u == 0u; ctx.gpr[4] = (0u | 4u); if (branch_taken) { goto L_0880BE48; } goto L_0880BE44; } L_0880BE44: ctx.gpr[4] = (0u | 8u); goto L_0880BE48; L_0880BE48: ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[17] + static_cast(542))); ctx.gpr[4] = (ctx.gpr[5] & ctx.gpr[4]); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0880BE60; } goto L_0880BE58; } L_0880BE58: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_0880BE68; } goto L_0880BE60; } L_0880BE60: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { goto L_0880BE68; } goto L_0880BE68; } L_0880BE68: ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(16))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(20))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(24))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880BE7C: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-32)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), ctx.gpr[16]); ctx.gpr[16] = (ctx.gpr[5] | 0u); aot_mem.aot_store32(ctx.gpr[29] + static_cast(20), ctx.gpr[17]); ctx.gpr[5] = (ctx.gpr[16] << 4u); ctx.gpr[17] = (ctx.gpr[4] | 0u); ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[5]); ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]); ctx.gpr[4] = (ctx.gpr[17] + ctx.gpr[4]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(24), ctx.gpr[31]); ctx.gpr[31] = (0x0880BEACu); ctx.gpr[4] = (ctx.gpr[4] + static_cast(880)); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 641u, 0x08A071F0u>(ctx, &aot_mem) && ctx.pc == 0x0880BEACu) goto L_0880BEAC; return; L_0880BEAC: { const bool branch_taken = ctx.gpr[2] != 0u; // nop if (branch_taken) { goto L_0880BED8; } goto L_0880BEB4; } L_0880BEB4: ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast(92))); ctx.gpr[5] = (ctx.gpr[16] | 0u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(256)); ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(0)))))); ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(4))); jump_target = ctx.gpr[7]; ctx.gpr[31] = (0x0880BED0u); ctx.gpr[4] = (ctx.gpr[17] + ctx.gpr[6]); ctx.pc = jump_target; if (rt.invoke_chained_call(ctx, &aot_mem) && ctx.pc == 0x0880BED0u) goto L_0880BED0; return; L_0880BED0: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0880BEE0; } goto L_0880BED8; } L_0880BED8: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { goto L_0880BEE4; } goto L_0880BEE0; } L_0880BEE0: ctx.gpr[2] = (0u | 0u); goto L_0880BEE4; L_0880BEE4: ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(16))); ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(20))); ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(24))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880BEF8: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-32)); ctx.gpr[5] = (ctx.gpr[5] << 4u); ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[5]); ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]); ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), ctx.gpr[31]); ctx.gpr[31] = (0x0880BF18u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(880)); if (rt.invoke_chained_direct<&recomp_unit_0128_entry, 128u, 636u, 0x08A071B0u>(ctx, &aot_mem) && ctx.pc == 0x0880BF18u) goto L_0880BF18; return; L_0880BF18: { const bool branch_taken = ctx.gpr[2] == 0u; // nop if (branch_taken) { goto L_0880BF28; } goto L_0880BF20; } L_0880BF20: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { goto L_0880BF2C; } goto L_0880BF28; } L_0880BF28: ctx.gpr[2] = (0u | 0u); goto L_0880BF2C; L_0880BF2C: ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(16))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880BF38: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-32)); aot_mem.aot_store32(ctx.gpr[29] + static_cast(16), ctx.gpr[31]); ctx.gpr[31] = (0x0880BF48u); ctx.gpr[4] = (ctx.gpr[4] + static_cast(848)); if (rt.invoke_chained_direct<&recomp_unit_0137_entry, 137u, 215u, 0x08A293C4u>(ctx, &aot_mem) && ctx.pc == 0x0880BF48u) goto L_0880BF48; return; L_0880BF48: ctx.gpr[4] = (ctx.gpr[2] & 255u); ctx.gpr[5] = (0u | 3u); { const bool branch_taken = ctx.gpr[4] != ctx.gpr[5]; // nop if (branch_taken) { goto L_0880BF60; } goto L_0880BF58; } L_0880BF58: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { goto L_0880BF64; } goto L_0880BF60; } L_0880BF60: ctx.gpr[2] = (0u | 0u); goto L_0880BF64; L_0880BF64: ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast(16))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880BF70: ctx.gpr[5] = (static_cast(static_cast(static_cast(aot_mem.aot_load16(ctx.gpr[4] + static_cast(88)))))); ctx.gpr[6] = (0u | 133u); { const bool branch_taken = ctx.gpr[5] == ctx.gpr[6]; ctx.gpr[6] = (0u + static_cast(-972)); if (branch_taken) { goto L_0880BFC4; } goto L_0880BF80; } L_0880BF80: { const bool branch_taken = ctx.gpr[5] != ctx.gpr[6]; ctx.gpr[6] = (0u | 167u); if (branch_taken) { goto L_0880BFA4; } goto L_0880BF88; } L_0880BF88: ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[4] + static_cast(498)))))); { const bool branch_taken = ctx.gpr[6] == 0u; ctx.gpr[6] = (0u | 167u); if (branch_taken) { goto L_0880BFA4; } goto L_0880BF94; } L_0880BF94: ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[4] + static_cast(499)))))); { const bool branch_taken = ctx.gpr[6] != 0u; // nop if (branch_taken) { goto L_0880BFC4; } goto L_0880BFA0; } L_0880BFA0: ctx.gpr[6] = (0u | 167u); goto L_0880BFA4; L_0880BFA4: { const bool branch_taken = ctx.gpr[5] != ctx.gpr[6]; // nop if (branch_taken) { goto L_0880BFCC; } goto L_0880BFAC; } L_0880BFAC: ctx.gpr[5] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[4] + static_cast(498)))))); { const bool branch_taken = ctx.gpr[5] == 0u; // nop if (branch_taken) { goto L_0880BFCC; } goto L_0880BFB8; } L_0880BFB8: ctx.gpr[4] = (static_cast(static_cast(static_cast(aot_mem.aot_load8(ctx.gpr[4] + static_cast(499)))))); { const bool branch_taken = ctx.gpr[4] == 0u; // nop if (branch_taken) { goto L_0880BFCC; } goto L_0880BFC4; } L_0880BFC4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { goto L_0880BFD0; } goto L_0880BFCC; } L_0880BFCC: ctx.gpr[2] = (0u | 0u); goto L_0880BFD0; L_0880BFD0: jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; L_0880BFD8: ctx.gpr[6] = (0u | 0u); goto L_0880BFDC; L_0880BFDC: ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast(1612))); { const bool branch_taken = ctx.gpr[7] != ctx.gpr[5]; // nop if (branch_taken) { goto L_0880BFEC; } goto L_0880BFE8; } L_0880BFE8: aot_mem.aot_store32(ctx.gpr[4] + static_cast(1612), 0u); goto L_0880BFEC; L_0880BFEC: ctx.gpr[6] = (ctx.gpr[6] + static_cast(1)); ctx.gpr[7] = (static_cast(ctx.gpr[6]) < 4 ? 1u : 0u); { const bool branch_taken = ctx.gpr[7] != 0u; ctx.gpr[4] = (ctx.gpr[4] + static_cast(4)); if (branch_taken) { goto L_0880BFDC; } goto L_0880BFFC; } L_0880BFFC: jump_target = ctx.gpr[31]; // nop local_pc = jump_target; if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; } ctx.pc = jump_target; return; } void recomp_unit_0001(Runtime &rt, AllegrexContext &ctx) { auto aot_mem = rt.memory().aot_fast_view(); recomp_unit_0001_entry(rt, ctx, 0u, aot_mem); } void register_generated_unit_1(Runtime &runtime) { runtime.register_generated_unit(1u, 0x08808000u, 16384u, &recomp_unit_0001, &recomp_unit_0001_entry); runtime.register_function(0x08808000u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880810Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808130u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808140u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808148u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808158u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808190u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880841Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808458u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808524u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880852Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808558u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808560u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808590u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088085A0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088085A8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088085B8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088085C8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088085D4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088085E0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088085F0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088085FCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808618u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808624u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880863Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880864Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880865Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808668u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808674u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808680u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880868Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088086A0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088086ACu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088086B8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088086C4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088086DCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088086E4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088086F0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088088A8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088088D0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808940u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808954u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880895Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808970u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808978u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880898Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808994u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088089ACu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088089B8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088089D0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088089DCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088089F4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808A00u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808A50u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808A7Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808AA4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808AD0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808AE4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808B0Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808B28u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808B70u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808B7Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808B84u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808B8Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808B94u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808BA4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808BB8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808BC4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808C18u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808C24u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808C3Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808C44u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808C60u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808C6Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808C84u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808C94u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808CA4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808CB4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808CFCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808D50u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808DA4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808DDCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808DF4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808DFCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808E04u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808E0Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808E10u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808E38u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808E50u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808E6Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808EACu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808EBCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808ED4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808EE4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808EF8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808F30u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808F40u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808F50u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808F58u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808F5Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08808FC4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880901Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809094u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088090A4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088090B4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088090BCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088090CCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809104u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809134u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809148u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088091DCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809234u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088092ACu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088092F0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880933Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809374u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880937Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809384u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880958Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809594u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809598u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088095B0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088095B8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088095C8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088095E0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088095E8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809600u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809608u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809618u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809630u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809638u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809650u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809658u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809668u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809680u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809688u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088096A0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088096A8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088096B8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088096D0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088096D8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088096F0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088096F8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809708u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809720u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809728u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809740u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809748u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809758u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088097D0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088097DCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880984Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809854u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809860u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088098D0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088098D4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088098FCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809930u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880998Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809994u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088099ACu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088099B4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088099C8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088099D0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088099DCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088099E8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x088099FCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809A04u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809A0Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809A34u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809B60u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809B84u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809B94u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809BACu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809BC4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809BDCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809BF4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809C0Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809D5Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809D7Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809D8Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809DA0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809DA4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809DB8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809DBCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809DD4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809ED8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809EE4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809F14u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809F8Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809FA8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809FB0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809FB8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x08809FECu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A00Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A014u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A020u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A02Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A044u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A054u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A064u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A074u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A07Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A088u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A098u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A0A0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A0A8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A0C0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A0E8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A174u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A188u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A190u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A194u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A1A8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A1B0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A1CCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A3B0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A3B8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A3BCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A3D4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A3DCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A3ECu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A404u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A40Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A424u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A42Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A43Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A454u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A45Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A474u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A47Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A48Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A4A4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A4ACu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A4C4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A4CCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A4DCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A4F4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A4FCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A514u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A51Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A52Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A544u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A54Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A564u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A56Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A57Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A5F0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A670u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A6A4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A6B0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A6BCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A6DCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A720u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A7D4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A7E0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A7ECu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A808u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A834u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A83Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A85Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A880u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A884u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A8A0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A8A8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A8B4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A8CCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A8E4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A900u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A91Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A93Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A958u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A964u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A970u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A974u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A98Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A99Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A9A0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A9A8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A9C4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A9E4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880A9F4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AA00u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AA0Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AA20u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AA28u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AA3Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AA64u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AA80u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AA98u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AAA8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AAC4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AAE4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AB10u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AB1Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AB24u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AB28u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AB48u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AB60u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AB7Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AB8Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AB98u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880ABA0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880ABA4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880ABACu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880ABB4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880ABC8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880ABE0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880ABECu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AC00u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AC14u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AC1Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AC38u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AC4Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AC58u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AC60u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AC68u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AC80u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AC88u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AC90u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AC98u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880ACB0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880ACBCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880ACD8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880ACE4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880ACF8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880ACFCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AD00u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AD08u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AD10u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AD18u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AD48u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AD54u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AD60u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AD68u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AD8Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AD98u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880ADA4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880ADB0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880ADB8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880ADC0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880ADCCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880ADD4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880ADDCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880ADECu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AE7Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AEA0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AEC0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AEE4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AEF4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AEFCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AF04u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AF0Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AF20u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AF30u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AF40u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AF50u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AF64u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AF6Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AF78u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AF80u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AF88u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AF90u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AFA0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AFB4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AFB8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880AFE8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B058u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B084u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B08Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B0CCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B0E4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B0F0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B100u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B114u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B13Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B14Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B168u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B178u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B194u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B1A8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B1ACu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B1C0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B1D4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B1E4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B1F0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B1FCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B20Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B21Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B258u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B260u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B268u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B278u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B284u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B288u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B2C8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B2E4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B2FCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B308u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B310u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B324u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B348u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B388u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B39Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B3DCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B3E4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B3FCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B420u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B440u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B458u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B460u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B468u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B498u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B4ACu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B4B8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B4C8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B4D0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B4D8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B4E4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B4ECu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B4FCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B500u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B510u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B52Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B564u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B578u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B584u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B58Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B594u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B5A0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B5B8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B5BCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B5CCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B5D4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B5E0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B5E8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B5F8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B600u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B60Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B618u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B61Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B62Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B64Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B694u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B6A8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B6B0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B6B8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B6C0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B6D4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B6DCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B6E8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B6F0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B6F8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B70Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B714u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B71Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B730u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B740u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B744u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B74Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B75Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B764u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B770u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B778u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B780u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B790u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B798u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B7A0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B7B0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B7B8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B7C8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B7D8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B7E0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B7ECu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B800u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B82Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B850u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B85Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B868u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B888u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B898u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B8ACu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B8B8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B8BCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B8C4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B8C8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B8E0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B8F0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B910u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B918u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B948u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B954u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B984u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B998u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B9ACu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B9C0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B9C8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B9CCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880B9D4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BA04u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BA14u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BA1Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BA20u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BA40u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BA78u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BA8Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BAA0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BAB4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BABCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BACCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BAD8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BAE0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BAFCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BB6Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BB7Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BB84u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BB88u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BBA4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BBCCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BBD4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BBE8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BBECu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BBF8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BC00u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BC0Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BC1Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BC24u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BC38u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BC54u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BC5Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BC6Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BC7Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BC88u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BC98u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BCA0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BCA8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BCB0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BCCCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BCD4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BCECu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BCF0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BD14u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BD28u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BD30u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BD40u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BD4Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BD54u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BD88u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BDB8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BDC0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BDDCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BDE4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BDECu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BDF8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BE04u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BE10u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BE18u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BE24u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BE2Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BE34u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BE3Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BE44u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BE48u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BE58u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BE60u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BE68u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BE7Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BEACu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BEB4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BED0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BED8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BEE0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BEE4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BEF8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BF18u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BF20u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BF28u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BF2Cu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BF38u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BF48u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BF58u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BF60u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BF64u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BF70u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BF80u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BF88u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BF94u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BFA0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BFA4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BFACu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BFB8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BFC4u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BFCCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BFD0u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BFD8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BFDCu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BFE8u, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BFECu, &recomp_unit_0001, "recomp_unit_0001"); runtime.register_function(0x0880BFFCu, &recomp_unit_0001, "recomp_unit_0001"); } } // namespace psprecomp