#include "psprecomp/runtime.hpp" #include "generated_units.hpp" #include "vcs_resident_regions.hpp" #include #include #include #include namespace psprecomp { // PSPRECOMP_V811_COMPACT_DISPATCH: 64-slot occupancy masks + per-group base id. static constexpr std::uint64_t kEntryMasks_recomp_unit_0153[64] = { 0x8080000054080001ull, 0x0004081500800041ull, 0x0200000830100108ull, 0x4422A21050509080ull, 0x8004012000000003ull, 0x0000000012000400ull, 0x1000000000200012ull, 0x000000005400C000ull, 0x4002000000000000ull, 0x4A22040400609088ull, 0xA00802A200020000ull, 0xD015110240920000ull, 0x02AAA201400A0820ull, 0x0901100000001000ull, 0x2040900440148088ull, 0x2AA45924AA914084ull, 0x0020428891452649ull, 0x0220000000200002ull, 0x0A84205529011012ull, 0x1084202200880285ull, 0x924AA916492AA448ull, 0x34448A2921455285ull, 0x4005552855528502ull, 0x0000010000001000ull, 0x0000000000000840ull, 0x0000100000000000ull, 0xAA00A10208141000ull, 0x2040028022054008ull, 0x204204201202A800ull, 0x0C02540010288505ull, 0x4920080800000002ull, 0x0000000042205050ull, 0x0011400200848820ull, 0x0040008002220004ull, 0x00090002820A0010ull, 0x4100514800084409ull, 0x1042054825104205ull, 0x04108064A0192025ull, 0xA831022108421005ull, 0x4400000015212A40ull, 0x50A00A400020000Aull, 0x04B0848140004281ull, 0x349202A228209048ull, 0x52252A44A522A221ull, 0x48A00212A0800001ull, 0xA092020000000401ull, 0x20110840AA0A4522ull, 0x8000014452290280ull, 0x0041544504083040ull, 0x8888410010088100ull, 0x8040000114001512ull, 0x00000000AA251110ull, 0x0000000010045008ull, 0x0440800008000150ull, 0x4000000002010000ull, 0x0000000444408404ull, 0xA894444261820A02ull, 0x4424208210114000ull, 0x28204010410C2100ull, 0x012A251110805444ull, 0x8A02408441010000ull, 0x000000002082A8A8ull, 0x0000250010684011ull, 0x2A10000012820A10ull, }; static constexpr std::uint16_t kEntryBases_recomp_unit_0153[64] = { 1u, 8u, 16u, 23u, 38u, 44u, 47u, 51u, 56u, 58u, 71u, 79u, 92u, 106u, 111u, 122u, 144u, 161u, 165u, 181u, 193u, 217u, 239u, 259u, 261u, 263u, 264u, 276u, 286u, 297u, 311u, 318u, 325u, 334u, 340u, 348u, 360u, 375u, 390u, 405u, 416u, 426u, 439u, 456u, 478u, 489u, 497u, 513u, 525u, 538u, 548u, 558u, 568u, 573u, 580u, 583u, 590u, 608u, 619u, 630u, 646u, 656u, 665u, 675u, }; void recomp_unit_0153_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,16,29,6,31 fprs=12,13,20,14 gpr_occ=3875 fpr_occ=1005 gpr_total=4902 fpr_total=1380 std::uint32_t aot_gpr_4 = ctx.gpr[4]; std::uint32_t aot_gpr_5 = ctx.gpr[5]; std::uint32_t aot_gpr_16 = ctx.gpr[16]; std::uint32_t aot_gpr_29 = ctx.gpr[29]; std::uint32_t aot_gpr_6 = ctx.gpr[6]; std::uint32_t aot_gpr_31 = ctx.gpr[31]; float aot_fpr_12 = ctx.fpr[12]; float aot_fpr_13 = ctx.fpr[13]; float aot_fpr_20 = ctx.fpr[20]; float aot_fpr_14 = ctx.fpr[14]; bool aot_regcache_valid = true; #define AOT_REGCACHE_SYNC_OUT() do { if (aot_regcache_valid) { ctx.gpr[4] = aot_gpr_4; ctx.gpr[5] = aot_gpr_5; ctx.gpr[16] = aot_gpr_16; ctx.gpr[29] = aot_gpr_29; ctx.gpr[6] = aot_gpr_6; ctx.gpr[31] = aot_gpr_31; ctx.fpr[12] = aot_fpr_12; ctx.fpr[13] = aot_fpr_13; ctx.fpr[20] = aot_fpr_20; ctx.fpr[14] = aot_fpr_14; } } while (false) #define AOT_REGCACHE_SYNC_IN() do { if (aot_regcache_valid) { aot_gpr_4 = ctx.gpr[4]; aot_gpr_5 = ctx.gpr[5]; aot_gpr_16 = ctx.gpr[16]; aot_gpr_29 = ctx.gpr[29]; aot_gpr_6 = ctx.gpr[6]; aot_gpr_31 = ctx.gpr[31]; aot_fpr_12 = ctx.fpr[12]; aot_fpr_13 = ctx.fpr[13]; aot_fpr_20 = ctx.fpr[20]; aot_fpr_14 = ctx.fpr[14]; } } while (false) // PSPRECOMP_AOT_REGCACHE_END std::uint32_t jump_target = 0u; std::uint32_t local_transfers = 0u; std::uint32_t local_redispatch_rounds = 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 - 0x08A68000u; entry_id = 0u; if (entry_delta < 16376u && (entry_delta & 3u) == 0u) { const std::uint32_t entry_slot = entry_delta >> 2u; const std::uint32_t entry_group = entry_slot >> 6u; const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0153[entry_group]; const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); if ((entry_mask & entry_bit) != 0u) { entry_id = static_cast( kEntryBases_recomp_unit_0153[entry_group] + std::popcount(entry_mask & (entry_bit - 1ull))); } } } switch (entry_id) { case 1u: goto L_08A68000; case 2u: goto L_08A6804C; case 3u: goto L_08A68068; case 4u: goto L_08A68070; case 5u: goto L_08A68078; case 6u: goto L_08A680DC; case 7u: goto L_08A680FC; case 8u: goto L_08A68100; case 9u: goto L_08A68118; case 10u: goto L_08A6815C; case 11u: goto L_08A68180; case 12u: goto L_08A68188; case 13u: goto L_08A68190; case 14u: goto L_08A681AC; case 15u: goto L_08A681C8; case 16u: goto L_08A6820C; case 17u: goto L_08A68220; case 18u: goto L_08A68250; case 19u: goto L_08A68270; case 20u: goto L_08A68274; case 21u: goto L_08A6828C; case 22u: goto L_08A682E4; case 23u: goto L_08A6831C; case 24u: goto L_08A68330; case 25u: goto L_08A6833C; case 26u: goto L_08A68350; case 27u: goto L_08A68358; case 28u: goto L_08A68370; case 29u: goto L_08A68378; case 30u: goto L_08A68390; case 31u: goto L_08A683A4; case 32u: goto L_08A683B4; case 33u: goto L_08A683BC; case 34u: goto L_08A683C4; case 35u: goto L_08A683D4; case 36u: goto L_08A683E8; case 37u: goto L_08A683F8; case 38u: goto L_08A68400; case 39u: goto L_08A68404; case 40u: goto L_08A68494; case 41u: goto L_08A684A0; case 42u: goto L_08A684C8; case 43u: goto L_08A684FC; case 44u: goto L_08A68528; case 45u: goto L_08A68564; case 46u: goto L_08A68570; case 47u: goto L_08A68604; case 48u: goto L_08A68610; case 49u: goto L_08A68654; case 50u: goto L_08A686F0; case 51u: goto L_08A68738; case 52u: goto L_08A6873C; case 53u: goto L_08A68768; case 54u: goto L_08A68770; case 55u: goto L_08A68778; case 56u: goto L_08A688C4; case 57u: goto L_08A688F8; case 58u: goto L_08A6890C; case 59u: goto L_08A6891C; case 60u: goto L_08A68930; case 61u: goto L_08A6893C; case 62u: goto L_08A68954; case 63u: goto L_08A68958; case 64u: goto L_08A68988; case 65u: goto L_08A689A8; case 66u: goto L_08A689C4; case 67u: goto L_08A689D4; case 68u: goto L_08A689E4; case 69u: goto L_08A689EC; case 70u: goto L_08A689F8; case 71u: goto L_08A68A44; case 72u: goto L_08A68A84; case 73u: goto L_08A68A94; case 74u: goto L_08A68A9C; case 75u: goto L_08A68AA4; case 76u: goto L_08A68ACC; case 77u: goto L_08A68AF4; case 78u: goto L_08A68AFC; case 79u: goto L_08A68B44; case 80u: goto L_08A68B50; case 81u: goto L_08A68B5C; case 82u: goto L_08A68B78; case 83u: goto L_08A68B84; case 84u: goto L_08A68BA0; case 85u: goto L_08A68BB0; case 86u: goto L_08A68BC0; case 87u: goto L_08A68BC8; case 88u: goto L_08A68BD0; case 89u: goto L_08A68BF0; case 90u: goto L_08A68BF8; case 91u: goto L_08A68BFC; case 92u: goto L_08A68C14; case 93u: goto L_08A68C2C; case 94u: goto L_08A68C44; case 95u: goto L_08A68C4C; case 96u: goto L_08A68C78; case 97u: goto L_08A68C80; case 98u: goto L_08A68CA4; case 99u: goto L_08A68CB4; case 100u: goto L_08A68CBC; case 101u: goto L_08A68CC4; case 102u: goto L_08A68CCC; case 103u: goto L_08A68CD4; case 104u: goto L_08A68CDC; case 105u: goto L_08A68CE4; case 106u: goto L_08A68D30; case 107u: goto L_08A68DB0; case 108u: goto L_08A68DC0; case 109u: goto L_08A68DE0; case 110u: goto L_08A68DEC; case 111u: goto L_08A68E0C; case 112u: goto L_08A68E1C; case 113u: goto L_08A68E3C; case 114u: goto L_08A68E48; case 115u: goto L_08A68E50; case 116u: goto L_08A68E78; case 117u: goto L_08A68E88; case 118u: goto L_08A68EB0; case 119u: goto L_08A68EBC; case 120u: goto L_08A68ED8; case 121u: goto L_08A68EF4; case 122u: goto L_08A68F08; case 123u: goto L_08A68F1C; case 124u: goto L_08A68F38; case 125u: goto L_08A68F40; case 126u: goto L_08A68F50; case 127u: goto L_08A68F5C; case 128u: goto L_08A68F64; case 129u: goto L_08A68F6C; case 130u: goto L_08A68F74; case 131u: goto L_08A68F7C; case 132u: goto L_08A68F88; case 133u: goto L_08A68F94; case 134u: goto L_08A68FA0; case 135u: goto L_08A68FAC; case 136u: goto L_08A68FB0; case 137u: goto L_08A68FB8; case 138u: goto L_08A68FC8; case 139u: goto L_08A68FD4; case 140u: goto L_08A68FDC; case 141u: goto L_08A68FE4; case 142u: goto L_08A68FEC; case 143u: goto L_08A68FF4; case 144u: goto L_08A69000; case 145u: goto L_08A6900C; case 146u: goto L_08A69018; case 147u: goto L_08A69024; case 148u: goto L_08A69028; case 149u: goto L_08A69034; case 150u: goto L_08A69040; case 151u: goto L_08A69048; case 152u: goto L_08A69058; case 153u: goto L_08A69060; case 154u: goto L_08A69070; case 155u: goto L_08A6907C; case 156u: goto L_08A6908C; case 157u: goto L_08A6909C; case 158u: goto L_08A690A4; case 159u: goto L_08A690B8; case 160u: goto L_08A690D4; case 161u: goto L_08A69104; case 162u: goto L_08A69154; case 163u: goto L_08A691D4; case 164u: goto L_08A691E4; case 165u: goto L_08A69204; case 166u: goto L_08A69210; case 167u: goto L_08A69230; case 168u: goto L_08A69240; case 169u: goto L_08A69260; case 170u: goto L_08A6926C; case 171u: goto L_08A69274; case 172u: goto L_08A69280; case 173u: goto L_08A69288; case 174u: goto L_08A69290; case 175u: goto L_08A69298; case 176u: goto L_08A692B4; case 177u: goto L_08A692C8; case 178u: goto L_08A692DC; case 179u: goto L_08A692E4; case 180u: goto L_08A692EC; case 181u: goto L_08A69300; case 182u: goto L_08A69308; case 183u: goto L_08A6931C; case 184u: goto L_08A69324; case 185u: goto L_08A6934C; case 186u: goto L_08A6935C; case 187u: goto L_08A69384; case 188u: goto L_08A69394; case 189u: goto L_08A693B4; case 190u: goto L_08A693C8; case 191u: goto L_08A693DC; case 192u: goto L_08A693F0; case 193u: goto L_08A6940C; case 194u: goto L_08A69418; case 195u: goto L_08A69428; case 196u: goto L_08A69434; case 197u: goto L_08A6943C; case 198u: goto L_08A69444; case 199u: goto L_08A6944C; case 200u: goto L_08A69454; case 201u: goto L_08A69460; case 202u: goto L_08A6946C; case 203u: goto L_08A69478; case 204u: goto L_08A69484; case 205u: goto L_08A69488; case 206u: goto L_08A69490; case 207u: goto L_08A694A0; case 208u: goto L_08A694AC; case 209u: goto L_08A694B4; case 210u: goto L_08A694BC; case 211u: goto L_08A694C4; case 212u: goto L_08A694CC; case 213u: goto L_08A694D8; case 214u: goto L_08A694E4; case 215u: goto L_08A694F0; case 216u: goto L_08A694FC; case 217u: goto L_08A69500; case 218u: goto L_08A69508; case 219u: goto L_08A6951C; case 220u: goto L_08A69524; case 221u: goto L_08A69530; case 222u: goto L_08A69538; case 223u: goto L_08A69540; case 224u: goto L_08A69548; case 225u: goto L_08A69558; case 226u: goto L_08A69560; case 227u: goto L_08A69574; case 228u: goto L_08A69580; case 229u: goto L_08A6958C; case 230u: goto L_08A69594; case 231u: goto L_08A695A4; case 232u: goto L_08A695AC; case 233u: goto L_08A695BC; case 234u: goto L_08A695C8; case 235u: goto L_08A695D8; case 236u: goto L_08A695E8; case 237u: goto L_08A695F0; case 238u: goto L_08A695F4; case 239u: goto L_08A69604; case 240u: goto L_08A69620; case 241u: goto L_08A69628; case 242u: goto L_08A6963C; case 243u: goto L_08A69644; case 244u: goto L_08A69650; case 245u: goto L_08A69658; case 246u: goto L_08A69660; case 247u: goto L_08A69668; case 248u: goto L_08A69670; case 249u: goto L_08A69678; case 250u: goto L_08A6968C; case 251u: goto L_08A69694; case 252u: goto L_08A696A0; case 253u: goto L_08A696A8; case 254u: goto L_08A696B0; case 255u: goto L_08A696B8; case 256u: goto L_08A696C0; case 257u: goto L_08A696C8; case 258u: goto L_08A696F8; case 259u: goto L_08A69730; case 260u: goto L_08A697A0; case 261u: goto L_08A69818; case 262u: goto L_08A6982C; case 263u: goto L_08A699B0; case 264u: goto L_08A69A30; case 265u: goto L_08A69A48; case 266u: goto L_08A69A50; case 267u: goto L_08A69A6C; case 268u: goto L_08A69A84; case 269u: goto L_08A69AA0; case 270u: goto L_08A69AB4; case 271u: goto L_08A69ABC; case 272u: goto L_08A69AE4; case 273u: goto L_08A69AEC; case 274u: goto L_08A69AF4; case 275u: goto L_08A69AFC; case 276u: goto L_08A69B0C; case 277u: goto L_08A69B38; case 278u: goto L_08A69B40; case 279u: goto L_08A69B48; case 280u: goto L_08A69B64; case 281u: goto L_08A69B74; case 282u: goto L_08A69B9C; case 283u: goto L_08A69BA4; case 284u: goto L_08A69BD8; case 285u: goto L_08A69BF4; case 286u: goto L_08A69C2C; case 287u: goto L_08A69C34; case 288u: goto L_08A69C3C; case 289u: goto L_08A69C44; case 290u: goto L_08A69C64; case 291u: goto L_08A69C70; case 292u: goto L_08A69C94; case 293u: goto L_08A69CA8; case 294u: goto L_08A69CC4; case 295u: goto L_08A69CD8; case 296u: goto L_08A69CF4; case 297u: goto L_08A69D00; case 298u: goto L_08A69D08; case 299u: goto L_08A69D20; case 300u: goto L_08A69D28; case 301u: goto L_08A69D3C; case 302u: goto L_08A69D4C; case 303u: goto L_08A69D54; case 304u: goto L_08A69D70; case 305u: goto L_08A69DA8; case 306u: goto L_08A69DB0; case 307u: goto L_08A69DB8; case 308u: goto L_08A69DC4; case 309u: goto L_08A69DE8; case 310u: goto L_08A69DEC; case 311u: goto L_08A69E04; case 312u: goto L_08A69E8C; case 313u: goto L_08A69EAC; case 314u: goto L_08A69ED4; case 315u: goto L_08A69EE0; case 316u: goto L_08A69EEC; case 317u: goto L_08A69EF8; case 318u: goto L_08A69F10; case 319u: goto L_08A69F18; case 320u: goto L_08A69F30; case 321u: goto L_08A69F38; case 322u: goto L_08A69F54; case 323u: goto L_08A69F64; case 324u: goto L_08A69F78; case 325u: goto L_08A6A014; case 326u: goto L_08A6A02C; case 327u: goto L_08A6A03C; case 328u: goto L_08A6A048; case 329u: goto L_08A6A05C; case 330u: goto L_08A6A084; case 331u: goto L_08A6A0B8; case 332u: goto L_08A6A0C0; case 333u: goto L_08A6A0D0; case 334u: goto L_08A6A108; case 335u: goto L_08A6A144; case 336u: goto L_08A6A154; case 337u: goto L_08A6A164; case 338u: goto L_08A6A19C; case 339u: goto L_08A6A1D8; case 340u: goto L_08A6A210; case 341u: goto L_08A6A244; case 342u: goto L_08A6A24C; case 343u: goto L_08A6A264; case 344u: goto L_08A6A27C; case 345u: goto L_08A6A284; case 346u: goto L_08A6A2C0; case 347u: goto L_08A6A2CC; case 348u: goto L_08A6A300; case 349u: goto L_08A6A30C; case 350u: goto L_08A6A328; case 351u: goto L_08A6A338; case 352u: goto L_08A6A34C; case 353u: goto L_08A6A38C; case 354u: goto L_08A6A398; case 355u: goto L_08A6A3A0; case 356u: goto L_08A6A3B0; case 357u: goto L_08A6A3B8; case 358u: goto L_08A6A3E0; case 359u: goto L_08A6A3F8; case 360u: goto L_08A6A400; case 361u: goto L_08A6A408; case 362u: goto L_08A6A424; case 363u: goto L_08A6A438; case 364u: goto L_08A6A450; case 365u: goto L_08A6A460; case 366u: goto L_08A6A468; case 367u: goto L_08A6A474; case 368u: goto L_08A6A48C; case 369u: goto L_08A6A498; case 370u: goto L_08A6A4A0; case 371u: goto L_08A6A4A8; case 372u: goto L_08A6A4C4; case 373u: goto L_08A6A4D8; case 374u: goto L_08A6A4F0; case 375u: goto L_08A6A500; case 376u: goto L_08A6A508; case 377u: goto L_08A6A514; case 378u: goto L_08A6A534; case 379u: goto L_08A6A540; case 380u: goto L_08A6A54C; case 381u: goto L_08A6A550; case 382u: goto L_08A6A574; case 383u: goto L_08A6A57C; case 384u: goto L_08A6A588; case 385u: goto L_08A6A594; case 386u: goto L_08A6A598; case 387u: goto L_08A6A5BC; case 388u: goto L_08A6A5D0; case 389u: goto L_08A6A5E8; case 390u: goto L_08A6A600; case 391u: goto L_08A6A608; case 392u: goto L_08A6A630; case 393u: goto L_08A6A644; case 394u: goto L_08A6A658; case 395u: goto L_08A6A66C; case 396u: goto L_08A6A680; case 397u: goto L_08A6A694; case 398u: goto L_08A6A6A4; case 399u: goto L_08A6A6C0; case 400u: goto L_08A6A6D0; case 401u: goto L_08A6A6D4; case 402u: goto L_08A6A6EC; case 403u: goto L_08A6A6F4; case 404u: goto L_08A6A6FC; case 405u: goto L_08A6A718; case 406u: goto L_08A6A724; case 407u: goto L_08A6A72C; case 408u: goto L_08A6A734; case 409u: goto L_08A6A740; case 410u: goto L_08A6A754; case 411u: goto L_08A6A760; case 412u: goto L_08A6A768; case 413u: goto L_08A6A770; case 414u: goto L_08A6A7E8; case 415u: goto L_08A6A7F8; case 416u: goto L_08A6A804; case 417u: goto L_08A6A80C; case 418u: goto L_08A6A854; case 419u: goto L_08A6A898; case 420u: goto L_08A6A8A4; case 421u: goto L_08A6A8AC; case 422u: goto L_08A6A8D4; case 423u: goto L_08A6A8DC; case 424u: goto L_08A6A8F0; case 425u: goto L_08A6A8F8; case 426u: goto L_08A6A900; case 427u: goto L_08A6A91C; case 428u: goto L_08A6A924; case 429u: goto L_08A6A938; case 430u: goto L_08A6A978; case 431u: goto L_08A6A980; case 432u: goto L_08A6A99C; case 433u: goto L_08A6A9A8; case 434u: goto L_08A6A9BC; case 435u: goto L_08A6A9D0; case 436u: goto L_08A6A9D4; case 437u: goto L_08A6A9DC; case 438u: goto L_08A6A9E8; case 439u: goto L_08A6AA0C; case 440u: goto L_08A6AA18; case 441u: goto L_08A6AA30; case 442u: goto L_08A6AA3C; case 443u: goto L_08A6AA54; case 444u: goto L_08A6AA6C; case 445u: goto L_08A6AA74; case 446u: goto L_08A6AA84; case 447u: goto L_08A6AA94; case 448u: goto L_08A6AA9C; case 449u: goto L_08A6AAA4; case 450u: goto L_08A6AAC4; case 451u: goto L_08A6AAD0; case 452u: goto L_08A6AADC; case 453u: goto L_08A6AAE8; case 454u: goto L_08A6AAF0; case 455u: goto L_08A6AAF4; case 456u: goto L_08A6AB00; case 457u: goto L_08A6AB14; case 458u: goto L_08A6AB24; case 459u: goto L_08A6AB34; case 460u: goto L_08A6AB3C; case 461u: goto L_08A6AB44; case 462u: goto L_08A6AB54; case 463u: goto L_08A6AB60; case 464u: goto L_08A6AB68; case 465u: goto L_08A6AB74; case 466u: goto L_08A6AB7C; case 467u: goto L_08A6AB88; case 468u: goto L_08A6AB98; case 469u: goto L_08A6ABA4; case 470u: goto L_08A6ABAC; case 471u: goto L_08A6ABB4; case 472u: goto L_08A6ABC0; case 473u: goto L_08A6ABC8; case 474u: goto L_08A6ABD4; case 475u: goto L_08A6ABE4; case 476u: goto L_08A6ABF0; case 477u: goto L_08A6ABF8; case 478u: goto L_08A6AC00; case 479u: goto L_08A6AC5C; case 480u: goto L_08A6AC74; case 481u: goto L_08A6AC7C; case 482u: goto L_08A6AC84; case 483u: goto L_08A6AC90; case 484u: goto L_08A6ACA4; case 485u: goto L_08A6ACD4; case 486u: goto L_08A6ACDC; case 487u: goto L_08A6ACEC; case 488u: goto L_08A6ACF8; case 489u: goto L_08A6AD00; case 490u: goto L_08A6AD28; case 491u: goto L_08A6ADA4; case 492u: goto L_08A6ADC4; case 493u: goto L_08A6ADD0; case 494u: goto L_08A6ADDC; case 495u: goto L_08A6ADF4; case 496u: goto L_08A6ADFC; case 497u: goto L_08A6AE04; case 498u: goto L_08A6AE14; case 499u: goto L_08A6AE20; case 500u: goto L_08A6AE28; case 501u: goto L_08A6AE38; case 502u: goto L_08A6AE44; case 503u: goto L_08A6AE4C; case 504u: goto L_08A6AE64; case 505u: goto L_08A6AE6C; case 506u: goto L_08A6AE74; case 507u: goto L_08A6AE7C; case 508u: goto L_08A6AE98; case 509u: goto L_08A6AEAC; case 510u: goto L_08A6AEC0; case 511u: goto L_08A6AED0; case 512u: goto L_08A6AEF4; case 513u: goto L_08A6AF1C; case 514u: goto L_08A6AF24; case 515u: goto L_08A6AF40; case 516u: goto L_08A6AF4C; case 517u: goto L_08A6AF54; case 518u: goto L_08A6AF64; case 519u: goto L_08A6AF70; case 520u: goto L_08A6AF78; case 521u: goto L_08A6AF88; case 522u: goto L_08A6AF98; case 523u: goto L_08A6AFA0; case 524u: goto L_08A6AFFC; case 525u: goto L_08A6B018; case 526u: goto L_08A6B030; case 527u: goto L_08A6B034; case 528u: goto L_08A6B04C; case 529u: goto L_08A6B068; case 530u: goto L_08A6B080; case 531u: goto L_08A6B088; case 532u: goto L_08A6B098; case 533u: goto L_08A6B0A8; case 534u: goto L_08A6B0B0; case 535u: goto L_08A6B0B8; case 536u: goto L_08A6B0C0; case 537u: goto L_08A6B0D8; case 538u: goto L_08A6B120; case 539u: goto L_08A6B13C; case 540u: goto L_08A6B14C; case 541u: goto L_08A6B170; case 542u: goto L_08A6B1A0; case 543u: goto L_08A6B1B8; case 544u: goto L_08A6B1CC; case 545u: goto L_08A6B1DC; case 546u: goto L_08A6B1EC; case 547u: goto L_08A6B1FC; case 548u: goto L_08A6B204; case 549u: goto L_08A6B210; case 550u: goto L_08A6B220; case 551u: goto L_08A6B228; case 552u: goto L_08A6B230; case 553u: goto L_08A6B268; case 554u: goto L_08A6B270; case 555u: goto L_08A6B280; case 556u: goto L_08A6B2D8; case 557u: goto L_08A6B2FC; case 558u: goto L_08A6B310; case 559u: goto L_08A6B320; case 560u: goto L_08A6B330; case 561u: goto L_08A6B340; case 562u: goto L_08A6B348; case 563u: goto L_08A6B354; case 564u: goto L_08A6B364; case 565u: goto L_08A6B36C; case 566u: goto L_08A6B374; case 567u: goto L_08A6B37C; case 568u: goto L_08A6B40C; case 569u: goto L_08A6B430; case 570u: goto L_08A6B438; case 571u: goto L_08A6B448; case 572u: goto L_08A6B470; case 573u: goto L_08A6B510; case 574u: goto L_08A6B518; case 575u: goto L_08A6B520; case 576u: goto L_08A6B56C; case 577u: goto L_08A6B5BC; case 578u: goto L_08A6B5D8; case 579u: goto L_08A6B5E8; case 580u: goto L_08A6B640; case 581u: goto L_08A6B664; case 582u: goto L_08A6B6F8; case 583u: goto L_08A6B708; case 584u: goto L_08A6B728; case 585u: goto L_08A6B73C; case 586u: goto L_08A6B758; case 587u: goto L_08A6B768; case 588u: goto L_08A6B778; case 589u: goto L_08A6B788; case 590u: goto L_08A6B804; case 591u: goto L_08A6B824; case 592u: goto L_08A6B82C; case 593u: goto L_08A6B844; case 594u: goto L_08A6B85C; case 595u: goto L_08A6B860; case 596u: goto L_08A6B874; case 597u: goto L_08A6B878; case 598u: goto L_08A6B884; case 599u: goto L_08A6B898; case 600u: goto L_08A6B8A8; case 601u: goto L_08A6B8B8; case 602u: goto L_08A6B8C8; case 603u: goto L_08A6B8D0; case 604u: goto L_08A6B8DC; case 605u: goto L_08A6B8EC; case 606u: goto L_08A6B8F4; case 607u: goto L_08A6B8FC; case 608u: goto L_08A6B938; case 609u: goto L_08A6B940; case 610u: goto L_08A6B950; case 611u: goto L_08A6B970; case 612u: goto L_08A6B984; case 613u: goto L_08A6B99C; case 614u: goto L_08A6B9B4; case 615u: goto L_08A6B9C8; case 616u: goto L_08A6B9D4; case 617u: goto L_08A6B9E8; case 618u: goto L_08A6B9F8; case 619u: goto L_08A6BA20; case 620u: goto L_08A6BA34; case 621u: goto L_08A6BA48; case 622u: goto L_08A6BA4C; case 623u: goto L_08A6BA60; case 624u: goto L_08A6BA78; case 625u: goto L_08A6BA90; case 626u: goto L_08A6BAB8; case 627u: goto L_08A6BAD4; case 628u: goto L_08A6BAEC; case 629u: goto L_08A6BAF4; case 630u: goto L_08A6BB08; case 631u: goto L_08A6BB18; case 632u: goto L_08A6BB28; case 633u: goto L_08A6BB30; case 634u: goto L_08A6BB38; case 635u: goto L_08A6BB5C; case 636u: goto L_08A6BB70; case 637u: goto L_08A6BB80; case 638u: goto L_08A6BB90; case 639u: goto L_08A6BBA0; case 640u: goto L_08A6BBA8; case 641u: goto L_08A6BBB4; case 642u: goto L_08A6BBC4; case 643u: goto L_08A6BBCC; case 644u: goto L_08A6BBD4; case 645u: goto L_08A6BBE0; case 646u: goto L_08A6BC40; case 647u: goto L_08A6BC60; case 648u: goto L_08A6BC78; case 649u: goto L_08A6BC88; case 650u: goto L_08A6BC9C; case 651u: goto L_08A6BCB8; case 652u: goto L_08A6BCC4; case 653u: goto L_08A6BCE4; case 654u: goto L_08A6BCEC; case 655u: goto L_08A6BCFC; case 656u: goto L_08A6BD0C; case 657u: goto L_08A6BD14; case 658u: goto L_08A6BD1C; case 659u: goto L_08A6BD2C; case 660u: goto L_08A6BD34; case 661u: goto L_08A6BD3C; case 662u: goto L_08A6BD44; case 663u: goto L_08A6BD5C; case 664u: goto L_08A6BD74; case 665u: goto L_08A6BE00; case 666u: goto L_08A6BE10; case 667u: goto L_08A6BE38; case 668u: goto L_08A6BE4C; case 669u: goto L_08A6BE54; case 670u: goto L_08A6BE58; case 671u: goto L_08A6BE70; case 672u: goto L_08A6BEA0; case 673u: goto L_08A6BEA8; case 674u: goto L_08A6BEB4; case 675u: goto L_08A6BF10; case 676u: goto L_08A6BF24; case 677u: goto L_08A6BF2C; case 678u: goto L_08A6BF44; case 679u: goto L_08A6BF5C; case 680u: goto L_08A6BF64; case 681u: goto L_08A6BF70; case 682u: goto L_08A6BFD0; case 683u: goto L_08A6BFE4; case 684u: goto L_08A6BFEC; case 685u: goto L_08A6BFF4; default: if (local_transfers == 0u) rt.unsupported(ctx.pc, 0u, "invalid internal function entry"); else ctx.pc = local_pc; AOT_REGCACHE_SYNC_OUT(); return; } } // PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. LOCAL_JR_DISPATCH: { const std::uint32_t local_delta_v813 = jump_target - 0x08A68000u; if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { ctx.pc = jump_target; AOT_REGCACHE_SYNC_OUT(); // PSPRECOMP_V814_CONTINUATION_RETURN Runtime::AotTailContinuation aot_cont_v814{}; if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { #if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) [[clang::musttail]] return aot_cont_v814.function( rt, ctx, aot_cont_v814.entry_id, aot_mem); #else aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; #endif } return; } } local_pc = jump_target; entry_id = 0u; goto LOCAL_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; AOT_REGCACHE_SYNC_OUT(); if (local_redispatch_rounds < 7u && rt.continue_generated_local_dispatch(ctx)) { ++local_redispatch_rounds; AOT_REGCACHE_SYNC_IN(); local_transfers = 0u; local_pc = ctx.pc; entry_id = 0u; goto LOCAL_DISPATCH; } return; L_08A68000: aot_gpr_29 = (aot_gpr_29 + static_cast(-64)); { const std::uint32_t aot_run_words[4]{aot_gpr_16, ctx.gpr[17], ctx.gpr[18], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(48), aot_run_words); } ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_14)); ctx.gpr[8] = (16256u << 16u); aot_fpr_14 = std::bit_cast(ctx.gpr[8]); aot_fpr_14 = aot_fpr_14 - aot_fpr_13; ctx.fpr[16] = std::bit_cast(0u); ctx.gpr[18] = (0u | 1u); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_gpr_16 = (aot_gpr_6 | 0u); aot_gpr_4 = (ctx.gpr[7] | 0u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_14 <= ctx.fpr[16])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[15])); if (branch_taken) { goto L_08A68070; } goto L_08A6804C; } L_08A6804C: ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_6 = (16448u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_6); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[16] < ctx.fpr[15])) ? 0x00800000u : 0u); if (((ctx.fcr31 & 0x00800000u) != 0u)) { ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[16])); goto L_08A68078; } goto L_08A68068; L_08A68068: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A68078; } goto L_08A68070; } L_08A68070: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[18] | 0u); if (branch_taken) { goto L_08A68100; } goto L_08A68078; } L_08A68078: ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(208))); aot_gpr_6 = (15363u << 16u); aot_gpr_6 = (aot_gpr_6 | 4719u); ctx.fpr[17] = std::bit_cast(aot_gpr_6); { const float fs = ctx.fpr[16]; const float ft = ctx.fpr[17]; 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_gpr_6 = (16384u << 16u); ctx.fpr[18] = std::bit_cast(aot_gpr_6); { const float fs = ctx.fpr[16]; const float ft = ctx.fpr[18]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[16] = std::bit_cast(0x7FC00000u); else ctx.fpr[16] = fs * ft; } { const float fs = ctx.fpr[16]; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } { const float fs = aot_fpr_13; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } { const float fs = aot_fpr_13; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } { const float fs = aot_fpr_13; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); { const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } aot_gpr_31 = (0x08A680DCu); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 6u, 0x08A680DCu, 0x08A66CD8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A680DCu) goto L_08A680DC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A680DC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_16 + static_cast(0), aot_run_words); ctx.fpr[15] = std::bit_cast(aot_run_words[0]); ctx.fpr[16] = std::bit_cast(aot_run_words[1]); ctx.fpr[17] = std::bit_cast(aot_run_words[2]); } aot_gpr_31 = (0x08A680FCu); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 7u, 0x08A680FCu, 0x08A66E08u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A680FCu) goto L_08A680FC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A680FC: ctx.gpr[2] = (ctx.gpr[18] | 0u); goto L_08A68100; L_08A68100: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(48), aot_run_words); aot_gpr_16 = aot_run_words[0]; ctx.gpr[17] = aot_run_words[1]; ctx.gpr[18] = aot_run_words[2]; aot_gpr_31 = aot_run_words[3]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68118: aot_gpr_29 = (aot_gpr_29 + static_cast(-64)); { const std::uint32_t aot_run_words[4]{aot_gpr_16, ctx.gpr[17], ctx.gpr[18], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(48), aot_run_words); } ctx.gpr[9] = (16256u << 16u); ctx.fpr[15] = std::bit_cast(ctx.gpr[9]); aot_fpr_13 = ctx.fpr[15] - aot_fpr_13; ctx.fpr[15] = std::bit_cast(0u); ctx.gpr[18] = (0u | 1u); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_gpr_16 = (aot_gpr_6 | 0u); aot_gpr_6 = (ctx.gpr[7] | 0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 <= ctx.fpr[15])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); aot_gpr_4 = (ctx.gpr[8] | 0u); if (branch_taken) { goto L_08A68188; } goto L_08A6815C; } L_08A6815C: { const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = aot_gpr_6 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>(); aot_gpr_5 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[16] = std::bit_cast(aot_gpr_5); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[16] <= ctx.fpr[15])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A68190; } goto L_08A68180; } L_08A68180: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A681AC; } goto L_08A68188; } L_08A68188: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[18] | 0u); if (branch_taken) { goto L_08A68274; } goto L_08A68190; } L_08A68190: aot_gpr_5 = (49024u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_5); aot_gpr_5 = (std::bit_cast(ctx.fpr[15])); ctx.set_vfpu_scalar_bits_ct<1u>(aot_gpr_5); { const std::uint32_t vfpu_address = aot_gpr_6 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; 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 = aot_gpr_6 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } goto L_08A681AC; L_08A681AC: ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_5 = (16448u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_5); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[16] < ctx.fpr[15])) ? 0x00800000u : 0u); if (((ctx.fcr31 & 0x00800000u) != 0u)) { ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[16])); goto L_08A681C8; } goto L_08A681C8; L_08A681C8: ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(208))); aot_gpr_5 = (15363u << 16u); aot_gpr_5 = (aot_gpr_5 | 4719u); ctx.fpr[17] = std::bit_cast(aot_gpr_5); { const float fs = ctx.fpr[16]; const float ft = ctx.fpr[17]; 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_gpr_5 = (16384u << 16u); ctx.fpr[18] = std::bit_cast(aot_gpr_5); { const float fs = ctx.fpr[16]; const float ft = ctx.fpr[18]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[16] = std::bit_cast(0x7FC00000u); else ctx.fpr[16] = fs * ft; } { const float fs = ctx.fpr[16]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } { const float fs = aot_fpr_12; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } { const float fs = aot_fpr_12; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), std::bit_cast(aot_fpr_12)); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(236))); aot_gpr_5 = (aot_gpr_5 & 1u); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_08A68220; } goto L_08A6820C; } L_08A6820C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_5 = (16192u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_5); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), std::bit_cast(aot_fpr_12)); goto L_08A68220; L_08A68220: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); { const std::uint32_t vfpu_address = aot_gpr_6 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } aot_gpr_31 = (0x08A68250u); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 18u, 0x08A68250u, 0x08A66CD8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A68250u) goto L_08A68250; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A68250: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_16 + static_cast(0), aot_run_words); ctx.fpr[15] = std::bit_cast(aot_run_words[0]); ctx.fpr[16] = std::bit_cast(aot_run_words[1]); ctx.fpr[17] = std::bit_cast(aot_run_words[2]); } aot_gpr_31 = (0x08A68270u); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 19u, 0x08A68270u, 0x08A66E08u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A68270u) goto L_08A68270; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A68270: ctx.gpr[2] = (ctx.gpr[18] | 0u); goto L_08A68274; L_08A68274: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(48), aot_run_words); aot_gpr_16 = aot_run_words[0]; ctx.gpr[17] = aot_run_words[1]; ctx.gpr[18] = aot_run_words[2]; aot_gpr_31 = aot_run_words[3]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A6828C: aot_gpr_29 = (aot_gpr_29 + static_cast(-176)); { const std::uint32_t aot_run_words[8]{std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[24]), aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(144), aot_run_words); } ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_12)); ctx.gpr[18] = (aot_gpr_6 | 0u); ctx.gpr[17] = (aot_gpr_5 | 0u); aot_gpr_16 = (aot_gpr_4 | 0u); { const std::uint32_t vfpu_address = ctx.gpr[7] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[24] = std::bit_cast(aot_gpr_4); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A682E4u); aot_gpr_5 = (aot_gpr_29 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 22u, 0x08A682E4u, 0x08A67154u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 639u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 639u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 639u, 0x08A67154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A682E4u) goto L_08A682E4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A682E4: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_4 = (16448u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_14 = std::bit_cast(0u); ctx.gpr[19] = (aot_gpr_29 + static_cast(32)); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[15] < aot_fpr_13)) ? 0x00800000u : 0u); if (((ctx.fcr31 & 0x00800000u) != 0u)) { aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[15])); goto L_08A6831C; } goto L_08A6831C; L_08A6831C: { const float fs = aot_fpr_20; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6833C; } goto L_08A68330; } L_08A68330: aot_gpr_4 = (16384u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); { const float fs = aot_fpr_20; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } goto L_08A6833C; L_08A6833C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5720))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 < aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A68358; } goto L_08A68350; } L_08A68350: { const bool branch_taken = 0u == 0u; aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5720))); if (branch_taken) { goto L_08A68378; } goto L_08A68358; } L_08A68358: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5720))); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_13) ^ 0x80000000u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < aot_fpr_13)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A68378; } goto L_08A68370; } L_08A68370: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5720))); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_20) ^ 0x80000000u); goto L_08A68378; L_08A68378: { const float fs = aot_fpr_20; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_20) ^ 0x80000000u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 <= aot_fpr_14)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A683C4; } goto L_08A68390; } L_08A68390: aot_fpr_13 = aot_fpr_20 + aot_fpr_12; ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 <= aot_fpr_14)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A683C4; } goto L_08A683A4; } L_08A683A4: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_14)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A683BC; } goto L_08A683B4; } L_08A683B4: { const bool branch_taken = 0u == 0u; aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); if (branch_taken) { goto L_08A68404; } goto L_08A683BC; } L_08A683BC: { const bool branch_taken = 0u == 0u; aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_14)); if (branch_taken) { goto L_08A68404; } goto L_08A683C4; } L_08A683C4: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < aot_fpr_14)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A68404; } goto L_08A683D4; } L_08A683D4: aot_fpr_13 = aot_fpr_20 + aot_fpr_12; ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 < aot_fpr_14)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A68404; } goto L_08A683E8; } L_08A683E8: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_14)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A68400; } goto L_08A683F8; } L_08A683F8: { const bool branch_taken = 0u == 0u; aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); if (branch_taken) { goto L_08A68404; } goto L_08A68400; } L_08A68400: aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_14)); goto L_08A68404; L_08A68404: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(16); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(32); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_16 + static_cast(192)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); } ctx.execute_vfpu_vtfm_ct<0u, 36u, 7u, 3u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(48)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(208))); aot_gpr_5 = (16256u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_fpr_12 = aot_fpr_13 / aot_fpr_12; { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>(); { 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); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<2u, 4u>(vfpu_value); } ctx.execute_vfpu_cross_quat_ct<0u, 1u, 2u, 3u>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_14 = std::bit_cast(aot_gpr_4); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(212))); aot_fpr_14 = aot_fpr_14 / ctx.fpr[15]; aot_fpr_12 = aot_fpr_12 + aot_fpr_14; aot_fpr_12 = aot_fpr_13 / aot_fpr_12; { const float fs = aot_fpr_20; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[22]) & 0x7FFFFFFFu); ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5716))); { const float fs = ctx.fpr[17]; 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.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 <= ctx.fpr[16])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A684A0; } goto L_08A68494; } L_08A68494: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[22]) & 0x7FFFFFFFu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5716))); { const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } goto L_08A684A0; L_08A684A0: aot_gpr_4 = (std::bit_cast(aot_fpr_20)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; 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); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } aot_gpr_31 = (0x08A684C8u); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 42u, 0x08A684C8u, 0x08A66CD8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A684C8u) goto L_08A684C8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A684C8: aot_gpr_4 = (std::bit_cast(aot_fpr_20)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; 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); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[18] + static_cast(0), aot_run_words); ctx.fpr[15] = std::bit_cast(aot_run_words[0]); ctx.fpr[16] = std::bit_cast(aot_run_words[1]); ctx.fpr[17] = std::bit_cast(aot_run_words[2]); } aot_gpr_31 = (0x08A684FCu); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 43u, 0x08A684FCu, 0x08A66E08u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A684FCu) goto L_08A684FC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A684FC: ctx.gpr[2] = (0u | 1u); { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(144), aot_run_words); aot_fpr_20 = std::bit_cast(aot_run_words[0]); ctx.fpr[22] = std::bit_cast(aot_run_words[1]); ctx.fpr[24] = std::bit_cast(aot_run_words[2]); aot_gpr_16 = aot_run_words[3]; ctx.gpr[17] = aot_run_words[4]; ctx.gpr[18] = aot_run_words[5]; ctx.gpr[19] = aot_run_words[6]; aot_gpr_31 = aot_run_words[7]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68528: aot_gpr_29 = (aot_gpr_29 + static_cast(-64)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_31); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_13), std::bit_cast(aot_fpr_14)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(208))); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_5); ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 16u>(); { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_5 = (aot_gpr_29 + static_cast(16)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A68564u); aot_gpr_4 = (aot_gpr_4 + static_cast(128)); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08A931B8, 163u, 0x08A931B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A68564u) goto L_08A68564; AOT_REGCACHE_SYNC_OUT(); return; L_08A68564: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68570: aot_gpr_29 = (aot_gpr_29 + static_cast(-176)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(160), aot_gpr_31); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(16); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(32); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); } aot_gpr_5 = (aot_gpr_4 + static_cast(192)); { const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); } ctx.execute_vfpu_vtfm_ct<0u, 36u, 7u, 3u, 3u>(); aot_gpr_5 = (aot_gpr_29 + static_cast(64)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[15]), std::bit_cast(ctx.fpr[16]), std::bit_cast(ctx.fpr[17])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_6 = (aot_gpr_29 + static_cast(32)); { const std::uint32_t vfpu_address = aot_gpr_6 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>(); aot_gpr_5 = (aot_gpr_29 + static_cast(16)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_13), std::bit_cast(aot_fpr_14)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(48), aot_run_words); } { const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } aot_gpr_5 = (aot_gpr_29 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<2u, 4u>(vfpu_value); } ctx.execute_vfpu_cross_quat_ct<0u, 1u, 2u, 3u>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(212))); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_5); ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 16u>(); { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_5 = (aot_gpr_29 + static_cast(80)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A68604u); aot_gpr_4 = (aot_gpr_4 + static_cast(144)); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08A931B8, 163u, 0x08A931B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A68604u) goto L_08A68604; AOT_REGCACHE_SYNC_OUT(); return; L_08A68604: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68610: aot_gpr_29 = (aot_gpr_29 + static_cast(-592)); { const std::uint32_t aot_run_words[8]{std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[24]), aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(560), aot_run_words); } aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); aot_gpr_6 = (aot_gpr_6 & 8192u); aot_gpr_6 = (0u < aot_gpr_6 ? 1u : 0u); aot_gpr_6 = (aot_gpr_6 & 255u); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_gpr_16 = (aot_gpr_5 | 0u); { const bool branch_taken = aot_gpr_6 == 0u; aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_12)); if (branch_taken) { goto L_08A68778; } goto L_08A68654; } L_08A68654: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (ctx.gpr[17] + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>(); aot_gpr_5 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_12 = std::bit_cast(aot_gpr_5); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(aot_fpr_13)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), std::bit_cast(aot_fpr_13)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_13)); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_5); { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_5 = (aot_gpr_29 + static_cast(16)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(32)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 22u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_13 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_13)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A68770; } goto L_08A686F0; } L_08A686F0: aot_gpr_4 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 16u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(32)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(48)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(208))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_fpr_13 = aot_fpr_14 / aot_fpr_13; { const float fs = aot_fpr_20; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_20) ^ 0x80000000u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[15])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6873C; } goto L_08A68738; } L_08A68738: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20) ^ 0x80000000u); goto L_08A6873C; L_08A6873C: aot_gpr_4 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); aot_gpr_4 = (aot_gpr_29 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_5 = (aot_gpr_29 + static_cast(64)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_13 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08A68768u); aot_gpr_4 = (ctx.gpr[17] + static_cast(128)); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08A931B8, 163u, 0x08A931B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A68768u) goto L_08A68768; AOT_REGCACHE_SYNC_OUT(); return; L_08A68768: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { goto L_08A68AA4; } goto L_08A68770; } L_08A68770: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_08A68AA4; } goto L_08A68778; } L_08A68778: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(84), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_gpr_29 + static_cast(80)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (ctx.gpr[17] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(128)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(128), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } aot_gpr_4 = (ctx.gpr[17] + static_cast(112)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (ctx.gpr[17] + static_cast(144)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 0u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(464)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_13), std::bit_cast(aot_fpr_14)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(480), aot_run_words); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(480)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<2u, 4u>(vfpu_value); } ctx.execute_vfpu_cross_quat_ct<0u, 1u, 2u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(448)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (ctx.gpr[17] + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 0u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(432)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (ctx.gpr[17] + static_cast(128)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 0u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(144)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(96), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(100), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), std::bit_cast(aot_fpr_12)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_5 = (aot_gpr_29 + static_cast(96)); { const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>(); aot_gpr_6 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(96), std::bit_cast(aot_fpr_13)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(100), std::bit_cast(aot_fpr_13)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), std::bit_cast(aot_fpr_13)); aot_gpr_6 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_6); { const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_5 = (aot_gpr_29 + static_cast(112)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(160)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 22u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[24] = std::bit_cast(aot_gpr_4); aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[24] <= aot_fpr_12)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A68A9C; } goto L_08A688C4; } L_08A688C4: aot_gpr_4 = (std::bit_cast(ctx.fpr[24])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 16u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(160)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(176)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(208))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[22]) ^ 0x80000000u); aot_gpr_31 = (0x08A688F8u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B61B60, 215u, 341u, 0x08B61B60u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], aot_gpr_29, aot_gpr_31, aot_fpr_12); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0215_entry, 215u, 341u, 0x08B61B60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A688F8u) goto L_08A688F8; AOT_REGCACHE_SYNC_OUT(); return; L_08A688F8: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5708))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5712))); aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08A6890Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B61FD0, 215u, 400u, 0x08B61FD0u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], aot_gpr_16, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0215_entry, 215u, 400u, 0x08B61FD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6890Cu) goto L_08A6890C; AOT_REGCACHE_SYNC_OUT(); return; L_08A6890C: ctx.gpr[19] = (ctx.gpr[3] | 0u); ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A6891Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B61B60, 215u, 341u, 0x08B61B60u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], aot_gpr_29, aot_gpr_31, aot_fpr_12); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0215_entry, 215u, 341u, 0x08B61B60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6891Cu) goto L_08A6891C; AOT_REGCACHE_SYNC_OUT(); return; L_08A6891C: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[7] = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08A68930u); aot_gpr_6 = (ctx.gpr[2] | 0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B61FD0, 215u, 400u, 0x08B61FD0u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], aot_gpr_16, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0215_entry, 215u, 400u, 0x08B61FD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A68930u) goto L_08A68930; AOT_REGCACHE_SYNC_OUT(); return; L_08A68930: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08A6893Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B627F0, 215u, 515u, 0x08B627F0u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0215_entry, 215u, 515u, 0x08B627F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6893Cu) goto L_08A6893C; AOT_REGCACHE_SYNC_OUT(); return; L_08A6893C: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20) ^ 0x80000000u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] < aot_fpr_12)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A68958; } goto L_08A68954; } L_08A68954: ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_20) ^ 0x80000000u); goto L_08A68958; L_08A68958: aot_gpr_4 = (std::bit_cast(ctx.fpr[22])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); aot_gpr_4 = (aot_gpr_29 + static_cast(176)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(192)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(192), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } aot_gpr_31 = (0x08A68988u); aot_gpr_4 = (ctx.gpr[17] | 0u); goto L_08A68528; L_08A68988: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(192), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(128), aot_run_words); ctx.fpr[15] = std::bit_cast(aot_run_words[0]); ctx.fpr[16] = std::bit_cast(aot_run_words[1]); ctx.fpr[17] = std::bit_cast(aot_run_words[2]); } aot_gpr_31 = (0x08A689A8u); aot_gpr_4 = (ctx.gpr[17] | 0u); goto L_08A68570; L_08A689A8: aot_gpr_4 = (15820u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[24] <= aot_fpr_12)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A68A94; } goto L_08A689C4; } L_08A689C4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(30))); aot_gpr_5 = (0u | 2u); { const bool branch_taken = aot_gpr_4 == aot_gpr_5; if (branch_taken) { goto L_08A68A94; } goto L_08A689D4; } L_08A689D4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(30))); aot_gpr_5 = (0u | 4u); { const bool branch_taken = aot_gpr_4 == aot_gpr_5; if (branch_taken) { goto L_08A68A94; } goto L_08A689E4; } L_08A689E4: aot_gpr_31 = (0x08A689ECu); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(28))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0163. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 69u, 0x08A689ECu, 0x08A91E70u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); #else recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A689ECu) goto L_08A689EC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A689EC: aot_gpr_4 = (0u | 1u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; if (branch_taken) { goto L_08A68A94; } goto L_08A689F8; } L_08A689F8: aot_gpr_4 = (16000u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); aot_gpr_4 = (aot_gpr_29 + static_cast(176)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(208)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_5 = (std::bit_cast(ctx.fpr[24])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_5); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(224)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } ctx.gpr[17] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 4 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A68A94; } goto L_08A68A44; } L_08A68A44: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(240), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(244), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(248), std::bit_cast(aot_fpr_12)); aot_gpr_5 = (aot_gpr_29 + static_cast(240)); aot_gpr_6 = (aot_gpr_29 + static_cast(224)); aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (0u | 1u); ctx.gpr[7] = (0u | 0u); ctx.gpr[8] = (0u | 0u); ctx.gpr[9] = (0u | 0u); ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A68A84u); ctx.gpr[11] = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0062. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 72u, 0x08A68A84u, 0x088FF060u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); #else recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A68A84u) goto L_08A68A84; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A68A84: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 4 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A68A44; } goto L_08A68A94; } L_08A68A94: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { goto L_08A68AA4; } goto L_08A68A9C; } L_08A68A9C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_08A68AA4; } goto L_08A68AA4; } L_08A68AA4: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(560), aot_run_words); aot_fpr_20 = std::bit_cast(aot_run_words[0]); ctx.fpr[22] = std::bit_cast(aot_run_words[1]); ctx.fpr[24] = std::bit_cast(aot_run_words[2]); aot_gpr_16 = aot_run_words[3]; ctx.gpr[17] = aot_run_words[4]; ctx.gpr[18] = aot_run_words[5]; ctx.gpr[19] = aot_run_words[6]; aot_gpr_31 = aot_run_words[7]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(592)); // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68ACC: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); { const std::uint32_t aot_run_words[4]{aot_gpr_16, ctx.gpr[17], ctx.gpr[18], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } ctx.gpr[18] = (aot_gpr_6 | 0u); aot_gpr_16 = (aot_gpr_5 | 0u); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A68AF4u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0179. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 77u, 0x08A68AF4u, 0x08AD03B8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 43u, aot_mem); #else recomp_unit_0179_entry(rt, ctx, 43u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 43u, 0x08AD03B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A68AF4u) goto L_08A68AF4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A68AF4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_08A68BF8; } goto L_08A68AFC; } L_08A68AFC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); aot_gpr_4 = (aot_gpr_4 << 2u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(24))); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); aot_gpr_4 = (aot_gpr_4 << 2u); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_6 = (aot_gpr_16 | 0u); ctx.gpr[8] = (ctx.gpr[18] | 0u); ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x08A68B44u); ctx.gpr[10] = (0u | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0044_entry, 44u, 66u, 0x088B4738u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A68B44u) goto L_08A68B44; AOT_REGCACHE_SYNC_OUT(); return; L_08A68B44: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(ctx.gpr[18]) <= 0; if (branch_taken) { goto L_08A68BF0; } goto L_08A68B50; } L_08A68B50: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A68B5Cu); aot_gpr_5 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 81u, 0x08A68B5Cu, 0x08A66AD8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 570u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 570u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 570u, 0x08A66AD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A68B5Cu) goto L_08A68B5C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A68B5C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 2u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A68B84; } goto L_08A68B78; } L_08A68B78: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A68B84u); aot_gpr_5 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 83u, 0x08A68B84u, 0x08A66AD8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 570u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 570u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 570u, 0x08A66AD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A68B84u) goto L_08A68B84; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A68B84: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 2u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A68BD0; } goto L_08A68BA0; } L_08A68BA0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (aot_gpr_5 & 2048u); { const bool branch_taken = aot_gpr_5 != 0u; aot_gpr_4 = (0u | 0u); if (branch_taken) { goto L_08A68BC0; } goto L_08A68BB0; } L_08A68BB0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_5 = (aot_gpr_5 & 2048u); { const bool branch_taken = aot_gpr_5 == 0u; aot_gpr_4 = (aot_gpr_4 & 255u); if (branch_taken) { goto L_08A68BC8; } goto L_08A68BC0; } L_08A68BC0: aot_gpr_4 = (0u | 1u); aot_gpr_4 = (aot_gpr_4 & 255u); goto L_08A68BC8; L_08A68BC8: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A68BF0; } goto L_08A68BD0; } L_08A68BD0: aot_gpr_4 = (0u | 1u); aot_gpr_4 = (aot_gpr_4 & 1u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(76))); aot_gpr_6 = (0u + static_cast(-3)); aot_gpr_5 = (aot_gpr_5 & aot_gpr_6); aot_gpr_4 = (aot_gpr_4 << 1u); aot_gpr_4 = (aot_gpr_5 | aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(76), aot_gpr_4); goto L_08A68BF0; L_08A68BF0: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[18] | 0u); if (branch_taken) { goto L_08A68BFC; } goto L_08A68BF8; } L_08A68BF8: ctx.gpr[2] = (0u | 0u); goto L_08A68BFC; L_08A68BFC: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); aot_gpr_16 = aot_run_words[0]; ctx.gpr[17] = aot_run_words[1]; ctx.gpr[18] = aot_run_words[2]; aot_gpr_31 = aot_run_words[3]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68C14: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_16); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A68C2Cu); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0001. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 93u, 0x08A68C2Cu, 0x08809984u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 323u, aot_mem); #else recomp_unit_0001_entry(rt, ctx, 323u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 323u, 0x08809984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A68C2Cu) goto L_08A68C2C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A68C2C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_4 = (16u << 16u); aot_gpr_4 = (aot_gpr_5 & aot_gpr_4); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (aot_gpr_4 & 255u); if (branch_taken) { goto L_08A68C78; } goto L_08A68C44; } L_08A68C44: { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A68CA4; } goto L_08A68C4C; } L_08A68C4C: aot_gpr_4 = (65520u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1)); aot_gpr_4 = (aot_gpr_5 & aot_gpr_4); aot_gpr_5 = (16u << 16u); aot_gpr_4 = (aot_gpr_4 | aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(76), aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_5 = (16384u << 16u); aot_gpr_4 = (aot_gpr_4 | aot_gpr_5); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); if (branch_taken) { goto L_08A68CA4; } goto L_08A68C78; } L_08A68C78: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A68CA4; } goto L_08A68C80; } L_08A68C80: aot_gpr_4 = (65520u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1)); aot_gpr_4 = (aot_gpr_5 & aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(76), aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_5 = (49152u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(-1)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); goto L_08A68CA4; L_08A68CA4: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68CB4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(473))); // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68CBC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(444))); // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68CC4: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(444), aot_gpr_5); // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68CCC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(448))); // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68CD4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2116))); // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68CDC: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(2116), aot_gpr_5); // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68CE4: aot_gpr_29 = (aot_gpr_29 + static_cast(-112)); { const std::uint32_t aot_run_words[10]{aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], ctx.gpr[30], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(68), aot_run_words); } ctx.gpr[22] = (aot_gpr_4 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(92))); aot_gpr_6 = (aot_gpr_4 + static_cast(80)); aot_gpr_4 = (aot_gpr_29 + static_cast(32)); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(0)))))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(4))); jump_target = aot_gpr_6; aot_gpr_31 = (0x08A68D30u); aot_gpr_5 = (ctx.gpr[22] + aot_gpr_5); ctx.pc = jump_target; if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A68D30u) goto L_08A68D30; AOT_REGCACHE_SYNC_OUT(); return; L_08A68D30: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); aot_gpr_5 = (std::bit_cast(aot_fpr_13)); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); aot_gpr_6 = (std::bit_cast(aot_fpr_14)); { const std::uint32_t aot_run_words[3]{aot_gpr_4, aot_gpr_5, aot_gpr_6}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(16), aot_run_words); } ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); aot_gpr_4 = (std::bit_cast(ctx.fpr[15])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_4); aot_gpr_5 = (0u | 49u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_4 = (17056u << 16u); ctx.fpr[16] = std::bit_cast(aot_gpr_4); aot_fpr_13 = aot_fpr_12 / ctx.fpr[16]; aot_gpr_4 = (16880u << 16u); ctx.fpr[17] = std::bit_cast(aot_gpr_4); aot_fpr_13 = aot_fpr_13 + ctx.fpr[17]; aot_fpr_13 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_13)); aot_gpr_4 = (std::bit_cast(aot_fpr_13)); aot_gpr_5 = (static_cast(aot_gpr_5) < static_cast(aot_gpr_4) ? 1u : 0u); { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); aot_fpr_13 = std::bit_cast(aot_run_words[0]); aot_fpr_14 = std::bit_cast(aot_run_words[1]); ctx.fpr[15] = std::bit_cast(aot_run_words[2]); } aot_gpr_6 = (16840u << 16u); ctx.fpr[18] = std::bit_cast(aot_gpr_6); aot_gpr_6 = (16128u << 16u); ctx.fpr[19] = std::bit_cast(aot_gpr_6); if (aot_gpr_5 != 0u) { aot_gpr_4 = (0u | 49u); goto L_08A68DB0; } goto L_08A68DB0; L_08A68DB0: ctx.gpr[8] = (aot_gpr_4 | 0u); aot_gpr_4 = (static_cast(ctx.gpr[8]) < 0 ? 1u : 0u); if (aot_gpr_4 != 0u) { ctx.gpr[8] = (0u | 0u); goto L_08A68DC0; } goto L_08A68DC0; L_08A68DC0: aot_gpr_5 = (0u | 49u); ctx.fpr[0] = ctx.fpr[15] / ctx.fpr[16]; ctx.fpr[0] = ctx.fpr[0] + ctx.fpr[18]; ctx.fpr[0] = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (std::bit_cast(ctx.fpr[0])); aot_gpr_5 = (static_cast(aot_gpr_5) < static_cast(aot_gpr_4) ? 1u : 0u); if (aot_gpr_5 != 0u) { aot_gpr_4 = (0u | 49u); goto L_08A68DE0; } goto L_08A68DE0; L_08A68DE0: aot_gpr_5 = (static_cast(aot_gpr_4) < 0 ? 1u : 0u); if (aot_gpr_5 != 0u) { aot_gpr_4 = (0u | 0u); goto L_08A68DEC; } goto L_08A68DEC; L_08A68DEC: aot_gpr_6 = (0u | 49u); ctx.fpr[0] = aot_fpr_14 / ctx.fpr[16]; ctx.fpr[0] = ctx.fpr[0] + ctx.fpr[17]; ctx.fpr[0] = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_5 = (std::bit_cast(ctx.fpr[0])); aot_gpr_6 = (static_cast(aot_gpr_6) < static_cast(aot_gpr_5) ? 1u : 0u); if (aot_gpr_6 != 0u) { aot_gpr_5 = (0u | 49u); goto L_08A68E0C; } goto L_08A68E0C; L_08A68E0C: aot_gpr_6 = (aot_gpr_5 | 0u); aot_gpr_5 = (static_cast(aot_gpr_6) < 0 ? 1u : 0u); if (aot_gpr_5 != 0u) { aot_gpr_6 = (0u | 0u); goto L_08A68E1C; } goto L_08A68E1C; L_08A68E1C: ctx.gpr[7] = (0u | 49u); ctx.fpr[0] = aot_fpr_13 / ctx.fpr[16]; ctx.fpr[0] = ctx.fpr[0] + ctx.fpr[18]; ctx.fpr[0] = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_5 = (std::bit_cast(ctx.fpr[0])); ctx.gpr[7] = (static_cast(ctx.gpr[7]) < static_cast(aot_gpr_5) ? 1u : 0u); if (ctx.gpr[7] != 0u) { aot_gpr_5 = (0u | 49u); goto L_08A68E3C; } goto L_08A68E3C; L_08A68E3C: ctx.gpr[7] = (static_cast(aot_gpr_5) < 0 ? 1u : 0u); { const bool branch_taken = ctx.gpr[7] == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), aot_gpr_5); if (branch_taken) { goto L_08A68E50; } goto L_08A68E48; } L_08A68E48: aot_gpr_5 = (0u | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), aot_gpr_5); goto L_08A68E50; L_08A68E50: ctx.gpr[7] = (0u | 49u); aot_fpr_12 = aot_fpr_12 + aot_fpr_14; { const float fs = aot_fpr_12; const float ft = ctx.fpr[19]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = aot_fpr_12 / ctx.fpr[16]; aot_fpr_12 = aot_fpr_12 + ctx.fpr[17]; aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); ctx.gpr[7] = (static_cast(ctx.gpr[7]) < static_cast(aot_gpr_5) ? 1u : 0u); if (ctx.gpr[7] != 0u) { aot_gpr_5 = (0u | 49u); goto L_08A68E78; } goto L_08A68E78; L_08A68E78: ctx.gpr[7] = (aot_gpr_5 | 0u); aot_gpr_5 = (static_cast(ctx.gpr[7]) < 0 ? 1u : 0u); if (aot_gpr_5 != 0u) { ctx.gpr[7] = (0u | 0u); goto L_08A68E88; } goto L_08A68E88; L_08A68E88: aot_gpr_5 = (0u | 49u); aot_fpr_12 = ctx.fpr[15] + aot_fpr_13; { const float fs = aot_fpr_12; const float ft = ctx.fpr[19]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = aot_fpr_12 / ctx.fpr[16]; aot_fpr_12 = aot_fpr_12 + ctx.fpr[18]; aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); ctx.gpr[30] = (std::bit_cast(aot_fpr_12)); aot_gpr_5 = (static_cast(aot_gpr_5) < static_cast(ctx.gpr[30]) ? 1u : 0u); if (aot_gpr_5 != 0u) { ctx.gpr[30] = (0u | 49u); goto L_08A68EB0; } goto L_08A68EB0; L_08A68EB0: aot_gpr_5 = (static_cast(ctx.gpr[30]) < 0 ? 1u : 0u); if (aot_gpr_5 != 0u) { ctx.gpr[30] = (0u | 0u); goto L_08A68EBC; } goto L_08A68EBC; L_08A68EBC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), ctx.gpr[7]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(52), aot_gpr_6); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); ctx.gpr[23] = (aot_gpr_4 | 0u); aot_gpr_5 = (static_cast(aot_gpr_5) < static_cast(ctx.gpr[23]) ? 1u : 0u); { const bool branch_taken = aot_gpr_5 != 0u; if (branch_taken) { goto L_08A690D4; } goto L_08A68ED8; } L_08A68ED8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(60), ctx.gpr[8]); aot_gpr_5 = (aot_gpr_4 << 4u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_5 = (aot_gpr_5 + aot_gpr_4); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), aot_gpr_4); goto L_08A68EF4; L_08A68EF4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(60))); ctx.gpr[20] = (aot_gpr_4 | 0u); aot_gpr_6 = (static_cast(aot_gpr_5) < static_cast(ctx.gpr[20]) ? 1u : 0u); { const bool branch_taken = aot_gpr_6 != 0u; if (branch_taken) { goto L_08A690B8; } goto L_08A68F08; } L_08A68F08: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); ctx.gpr[21] = (aot_gpr_4 << 6u); aot_gpr_4 = (aot_gpr_4 << 3u); ctx.gpr[21] = (ctx.gpr[21] - aot_gpr_4); goto L_08A68F1C; L_08A68F1C: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-25496))); ctx.gpr[18] = (ctx.gpr[18] + ctx.gpr[21]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); { const bool branch_taken = aot_gpr_5 != ctx.gpr[20]; aot_gpr_4 = (aot_gpr_4 >> 1u); if (branch_taken) { goto L_08A68FB8; } goto L_08A68F38; } L_08A68F38: { const bool branch_taken = ctx.gpr[30] != ctx.gpr[23]; if (branch_taken) { goto L_08A68FB8; } goto L_08A68F40; } L_08A68F40: aot_gpr_4 = (aot_gpr_4 + static_cast(-2)); aot_gpr_5 = (aot_gpr_4 < static_cast(6) ? 1u : 0u); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_08A69028; } goto L_08A68F50; } L_08A68F50: ctx.gpr[1] = (0u + static_cast(1)); { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; ctx.gpr[1] = (0u + static_cast(2)); if (branch_taken) { goto L_08A68F88; } goto L_08A68F5C; } L_08A68F5C: { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; ctx.gpr[1] = (0u + static_cast(3)); if (branch_taken) { goto L_08A68F94; } goto L_08A68F64; } L_08A68F64: { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; ctx.gpr[1] = (0u + static_cast(4)); if (branch_taken) { goto L_08A68FA0; } goto L_08A68F6C; } L_08A68F6C: { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; ctx.gpr[1] = (0u + static_cast(5)); if (branch_taken) { goto L_08A68FB0; } goto L_08A68F74; } L_08A68F74: { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; if (branch_taken) { goto L_08A68FAC; } goto L_08A68F7C; } L_08A68F7C: ctx.gpr[19] = (ctx.gpr[18] + static_cast(28)); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69028; } goto L_08A68F88; } L_08A68F88: ctx.gpr[19] = (ctx.gpr[18] + static_cast(36)); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69028; } goto L_08A68F94; } L_08A68F94: ctx.gpr[19] = (ctx.gpr[18] + static_cast(12)); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69028; } goto L_08A68FA0; } L_08A68FA0: ctx.gpr[19] = (ctx.gpr[18] + static_cast(20)); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69028; } goto L_08A68FAC; } L_08A68FAC: ctx.gpr[19] = (ctx.gpr[18] + static_cast(8)); goto L_08A68FB0; L_08A68FB0: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69028; } goto L_08A68FB8; } L_08A68FB8: aot_gpr_4 = (aot_gpr_4 + static_cast(-2)); aot_gpr_5 = (aot_gpr_4 < static_cast(6) ? 1u : 0u); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_08A69028; } goto L_08A68FC8; } L_08A68FC8: ctx.gpr[1] = (0u + static_cast(1)); { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; ctx.gpr[1] = (0u + static_cast(2)); if (branch_taken) { goto L_08A69000; } goto L_08A68FD4; } L_08A68FD4: { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; ctx.gpr[1] = (0u + static_cast(3)); if (branch_taken) { goto L_08A6900C; } goto L_08A68FDC; } L_08A68FDC: { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; ctx.gpr[1] = (0u + static_cast(4)); if (branch_taken) { goto L_08A69018; } goto L_08A68FE4; } L_08A68FE4: { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; ctx.gpr[1] = (0u + static_cast(5)); if (branch_taken) { goto L_08A69028; } goto L_08A68FEC; } L_08A68FEC: { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; if (branch_taken) { goto L_08A69024; } goto L_08A68FF4; } L_08A68FF4: ctx.gpr[19] = (ctx.gpr[18] + static_cast(32)); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69028; } goto L_08A69000; } L_08A69000: ctx.gpr[19] = (ctx.gpr[18] + static_cast(40)); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69028; } goto L_08A6900C; } L_08A6900C: ctx.gpr[19] = (ctx.gpr[18] + static_cast(16)); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69028; } goto L_08A69018; } L_08A69018: ctx.gpr[19] = (ctx.gpr[18] + static_cast(20)); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69028; } goto L_08A69024; } L_08A69024: ctx.gpr[19] = (ctx.gpr[18] + static_cast(8)); goto L_08A69028; L_08A69028: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08A69034u); aot_gpr_4 = (0u | 12u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0000. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 149u, 0x08A69034u, 0x08807C9Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 593u, aot_mem); #else recomp_unit_0000_entry(rt, ctx, 593u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 593u, 0x08807C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69034u) goto L_08A69034; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A69034: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A69048; } goto L_08A69040; } L_08A69040: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), ctx.gpr[22]); aot_gpr_16 = (aot_gpr_4 | 0u); goto L_08A69048; L_08A69048: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(8), aot_gpr_4); if (branch_taken) { goto L_08A69060; } goto L_08A69058; } L_08A69058: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_16); goto L_08A69060; L_08A69060: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(0), aot_gpr_16); ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08A69070u); aot_gpr_4 = (0u | 20u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0094. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 154u, 0x08A69070u, 0x0897EBD8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 722u, aot_mem); #else recomp_unit_0094_entry(rt, ctx, 722u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 722u, 0x0897EBD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69070u) goto L_08A69070; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A69070: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); if (branch_taken) { goto L_08A6908C; } goto L_08A6907C; } L_08A6907C: { const std::uint32_t aot_run_words[3]{ctx.gpr[19], aot_gpr_16, ctx.gpr[18]}; aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(0), aot_run_words); } ctx.gpr[17] = (aot_gpr_4 | 0u); goto L_08A6908C; L_08A6908C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(12), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(228))); { const bool branch_taken = aot_gpr_4 == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(16), aot_gpr_4); if (branch_taken) { goto L_08A690A4; } goto L_08A6909C; } L_08A6909C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(228))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), ctx.gpr[17]); goto L_08A690A4; L_08A690A4: aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(228), ctx.gpr[17]); ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_5) < static_cast(ctx.gpr[20]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[21] = (ctx.gpr[21] + static_cast(56)); if (branch_taken) { goto L_08A68F1C; } goto L_08A690B8; } L_08A690B8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); ctx.gpr[23] = (ctx.gpr[23] + static_cast(1)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_gpr_4 = (aot_gpr_4 + static_cast(50)); aot_gpr_6 = (static_cast(aot_gpr_6) < static_cast(ctx.gpr[23]) ? 1u : 0u); { const bool branch_taken = aot_gpr_6 == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), aot_gpr_4); if (branch_taken) { goto L_08A68EF4; } goto L_08A690D4; } L_08A690D4: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(68), aot_run_words); aot_gpr_16 = aot_run_words[0]; ctx.gpr[17] = aot_run_words[1]; ctx.gpr[18] = aot_run_words[2]; ctx.gpr[19] = aot_run_words[3]; ctx.gpr[20] = aot_run_words[4]; ctx.gpr[21] = aot_run_words[5]; ctx.gpr[22] = aot_run_words[6]; ctx.gpr[23] = aot_run_words[7]; ctx.gpr[30] = aot_run_words[8]; aot_gpr_31 = aot_run_words[9]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A69104: aot_gpr_29 = (aot_gpr_29 + static_cast(-112)); { const std::uint32_t aot_run_words[10]{aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], ctx.gpr[30], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(72), aot_run_words); } ctx.gpr[23] = (aot_gpr_4 | 0u); ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(228))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(92))); aot_gpr_6 = (aot_gpr_4 + static_cast(80)); aot_gpr_4 = (aot_gpr_29 + static_cast(32)); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(0)))))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(4))); jump_target = aot_gpr_6; aot_gpr_31 = (0x08A69154u); aot_gpr_5 = (ctx.gpr[23] + aot_gpr_5); ctx.pc = jump_target; if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69154u) goto L_08A69154; AOT_REGCACHE_SYNC_OUT(); return; L_08A69154: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); aot_gpr_5 = (std::bit_cast(aot_fpr_13)); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); aot_gpr_6 = (std::bit_cast(aot_fpr_14)); { const std::uint32_t aot_run_words[3]{aot_gpr_4, aot_gpr_5, aot_gpr_6}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(16), aot_run_words); } ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); aot_gpr_4 = (std::bit_cast(ctx.fpr[15])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_4); aot_gpr_5 = (0u | 49u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_4 = (17056u << 16u); ctx.fpr[16] = std::bit_cast(aot_gpr_4); aot_fpr_13 = aot_fpr_12 / ctx.fpr[16]; aot_gpr_4 = (16880u << 16u); ctx.fpr[17] = std::bit_cast(aot_gpr_4); aot_fpr_13 = aot_fpr_13 + ctx.fpr[17]; aot_fpr_13 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_13)); aot_gpr_4 = (std::bit_cast(aot_fpr_13)); aot_gpr_5 = (static_cast(aot_gpr_5) < static_cast(aot_gpr_4) ? 1u : 0u); { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); aot_fpr_13 = std::bit_cast(aot_run_words[0]); aot_fpr_14 = std::bit_cast(aot_run_words[1]); ctx.fpr[15] = std::bit_cast(aot_run_words[2]); } aot_gpr_6 = (16840u << 16u); ctx.fpr[18] = std::bit_cast(aot_gpr_6); aot_gpr_6 = (16128u << 16u); ctx.fpr[19] = std::bit_cast(aot_gpr_6); if (aot_gpr_5 != 0u) { aot_gpr_4 = (0u | 49u); goto L_08A691D4; } goto L_08A691D4; L_08A691D4: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_4 = (static_cast(aot_gpr_6) < 0 ? 1u : 0u); if (aot_gpr_4 != 0u) { aot_gpr_6 = (0u | 0u); goto L_08A691E4; } goto L_08A691E4; L_08A691E4: aot_gpr_5 = (0u | 49u); ctx.fpr[0] = ctx.fpr[15] / ctx.fpr[16]; ctx.fpr[0] = ctx.fpr[0] + ctx.fpr[18]; ctx.fpr[0] = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (std::bit_cast(ctx.fpr[0])); aot_gpr_5 = (static_cast(aot_gpr_5) < static_cast(aot_gpr_4) ? 1u : 0u); if (aot_gpr_5 != 0u) { aot_gpr_4 = (0u | 49u); goto L_08A69204; } goto L_08A69204; L_08A69204: aot_gpr_5 = (static_cast(aot_gpr_4) < 0 ? 1u : 0u); if (aot_gpr_5 != 0u) { aot_gpr_4 = (0u | 0u); goto L_08A69210; } goto L_08A69210; L_08A69210: ctx.gpr[7] = (0u | 49u); ctx.fpr[0] = aot_fpr_14 / ctx.fpr[16]; ctx.fpr[0] = ctx.fpr[0] + ctx.fpr[17]; ctx.fpr[0] = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_5 = (std::bit_cast(ctx.fpr[0])); ctx.gpr[7] = (static_cast(ctx.gpr[7]) < static_cast(aot_gpr_5) ? 1u : 0u); if (ctx.gpr[7] != 0u) { aot_gpr_5 = (0u | 49u); goto L_08A69230; } goto L_08A69230; L_08A69230: ctx.gpr[8] = (aot_gpr_5 | 0u); aot_gpr_5 = (static_cast(ctx.gpr[8]) < 0 ? 1u : 0u); if (aot_gpr_5 != 0u) { ctx.gpr[8] = (0u | 0u); goto L_08A69240; } goto L_08A69240; L_08A69240: ctx.gpr[7] = (0u | 49u); ctx.fpr[0] = aot_fpr_13 / ctx.fpr[16]; ctx.fpr[0] = ctx.fpr[0] + ctx.fpr[18]; ctx.fpr[0] = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_5 = (std::bit_cast(ctx.fpr[0])); ctx.gpr[7] = (static_cast(ctx.gpr[7]) < static_cast(aot_gpr_5) ? 1u : 0u); if (ctx.gpr[7] != 0u) { aot_gpr_5 = (0u | 49u); goto L_08A69260; } goto L_08A69260; L_08A69260: ctx.gpr[7] = (static_cast(aot_gpr_5) < 0 ? 1u : 0u); { const bool branch_taken = ctx.gpr[7] == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(68), aot_gpr_5); if (branch_taken) { goto L_08A69274; } goto L_08A6926C; } L_08A6926C: aot_gpr_5 = (0u | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(68), aot_gpr_5); goto L_08A69274; L_08A69274: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), aot_gpr_6); { const bool branch_taken = static_cast(aot_gpr_6) < 0; aot_gpr_5 = (static_cast(ctx.gpr[8]) < 50 ? 1u : 0u); if (branch_taken) { goto L_08A69298; } goto L_08A69280; } L_08A69280: { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_08A69298; } goto L_08A69288; } L_08A69288: { const bool branch_taken = static_cast(aot_gpr_4) < 0; aot_gpr_5 = (static_cast(aot_gpr_4) < 50 ? 1u : 0u); if (branch_taken) { goto L_08A69298; } goto L_08A69290; } L_08A69290: { const bool branch_taken = aot_gpr_5 != 0u; if (branch_taken) { goto L_08A69324; } goto L_08A69298; } L_08A69298: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(72))); aot_gpr_5 = (aot_gpr_5 & 14u); aot_gpr_6 = (aot_gpr_5 ^ 6u); aot_gpr_6 = (aot_gpr_6 < static_cast(1) ? 1u : 0u); aot_gpr_6 = (aot_gpr_6 & 255u); { const bool branch_taken = aot_gpr_6 != 0u; if (branch_taken) { goto L_08A692DC; } goto L_08A692B4; } L_08A692B4: ctx.gpr[7] = (aot_gpr_5 ^ 4u); ctx.gpr[7] = (ctx.gpr[7] < static_cast(1) ? 1u : 0u); ctx.gpr[7] = (ctx.gpr[7] & 255u); { const bool branch_taken = ctx.gpr[7] != 0u; if (branch_taken) { goto L_08A692DC; } goto L_08A692C8; } L_08A692C8: ctx.gpr[7] = (aot_gpr_5 ^ 8u); ctx.gpr[7] = (ctx.gpr[7] < static_cast(1) ? 1u : 0u); ctx.gpr[7] = (ctx.gpr[7] & 255u); { const bool branch_taken = ctx.gpr[7] != 0u; if (branch_taken) { goto L_08A692DC; } goto L_08A692DC; } L_08A692DC: { const bool branch_taken = aot_gpr_6 == 0u; if (branch_taken) { goto L_08A692EC; } goto L_08A692E4; } L_08A692E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69324; } goto L_08A692EC; } L_08A692EC: aot_gpr_6 = (aot_gpr_5 ^ 4u); aot_gpr_6 = (aot_gpr_6 < static_cast(1) ? 1u : 0u); aot_gpr_6 = (aot_gpr_6 & 255u); { const bool branch_taken = aot_gpr_6 == 0u; if (branch_taken) { goto L_08A69308; } goto L_08A69300; } L_08A69300: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69324; } goto L_08A69308; } L_08A69308: aot_gpr_5 = (aot_gpr_5 ^ 8u); aot_gpr_5 = (aot_gpr_5 < static_cast(1) ? 1u : 0u); aot_gpr_5 = (aot_gpr_5 & 255u); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_08A69324; } goto L_08A6931C; } L_08A6931C: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69324; } goto L_08A69324; } L_08A69324: aot_gpr_6 = (0u | 49u); aot_fpr_12 = aot_fpr_12 + aot_fpr_14; { const float fs = aot_fpr_12; const float ft = ctx.fpr[19]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = aot_fpr_12 / ctx.fpr[16]; aot_fpr_12 = aot_fpr_12 + ctx.fpr[17]; aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_gpr_6 = (static_cast(aot_gpr_6) < static_cast(aot_gpr_5) ? 1u : 0u); if (aot_gpr_6 != 0u) { aot_gpr_5 = (0u | 49u); goto L_08A6934C; } goto L_08A6934C; L_08A6934C: ctx.gpr[7] = (aot_gpr_5 | 0u); aot_gpr_5 = (static_cast(ctx.gpr[7]) < 0 ? 1u : 0u); if (aot_gpr_5 != 0u) { ctx.gpr[7] = (0u | 0u); goto L_08A6935C; } goto L_08A6935C; L_08A6935C: aot_gpr_6 = (0u | 49u); aot_fpr_12 = ctx.fpr[15] + aot_fpr_13; { const float fs = aot_fpr_12; const float ft = ctx.fpr[19]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = aot_fpr_12 / ctx.fpr[16]; aot_fpr_12 = aot_fpr_12 + ctx.fpr[18]; aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_gpr_6 = (static_cast(aot_gpr_6) < static_cast(aot_gpr_5) ? 1u : 0u); if (aot_gpr_6 != 0u) { aot_gpr_5 = (0u | 49u); goto L_08A69384; } goto L_08A69384; L_08A69384: aot_gpr_6 = (aot_gpr_5 | 0u); aot_gpr_5 = (static_cast(aot_gpr_6) < 0 ? 1u : 0u); if (aot_gpr_5 != 0u) { aot_gpr_6 = (0u | 0u); goto L_08A69394; } goto L_08A69394; L_08A69394: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), ctx.gpr[8]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(52), ctx.gpr[7]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_6); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); ctx.gpr[30] = (aot_gpr_4 | 0u); aot_gpr_5 = (static_cast(aot_gpr_5) < static_cast(ctx.gpr[30]) ? 1u : 0u); { const bool branch_taken = aot_gpr_5 != 0u; aot_gpr_5 = (aot_gpr_4 << 4u); if (branch_taken) { goto L_08A69620; } goto L_08A693B4; } L_08A693B4: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_5 = (aot_gpr_5 + aot_gpr_4); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(60), aot_gpr_4); goto L_08A693C8; L_08A693C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); ctx.gpr[20] = (aot_gpr_4 | 0u); aot_gpr_5 = (static_cast(ctx.gpr[7]) < static_cast(ctx.gpr[20]) ? 1u : 0u); { const bool branch_taken = aot_gpr_5 != 0u; if (branch_taken) { goto L_08A69604; } goto L_08A693DC; } L_08A693DC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(60))); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); ctx.gpr[22] = (aot_gpr_4 << 6u); aot_gpr_4 = (aot_gpr_4 << 3u); ctx.gpr[22] = (ctx.gpr[22] - aot_gpr_4); goto L_08A693F0; L_08A693F0: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-25496))); ctx.gpr[19] = (ctx.gpr[19] + ctx.gpr[22]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); { const bool branch_taken = aot_gpr_5 != ctx.gpr[20]; aot_gpr_4 = (aot_gpr_4 >> 1u); if (branch_taken) { goto L_08A69490; } goto L_08A6940C; } L_08A6940C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); { const bool branch_taken = aot_gpr_5 != ctx.gpr[30]; if (branch_taken) { goto L_08A69490; } goto L_08A69418; } L_08A69418: aot_gpr_4 = (aot_gpr_4 + static_cast(-2)); aot_gpr_5 = (aot_gpr_4 < static_cast(6) ? 1u : 0u); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_08A69500; } goto L_08A69428; } L_08A69428: ctx.gpr[1] = (0u + static_cast(1)); { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; ctx.gpr[1] = (0u + static_cast(2)); if (branch_taken) { goto L_08A69460; } goto L_08A69434; } L_08A69434: { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; ctx.gpr[1] = (0u + static_cast(3)); if (branch_taken) { goto L_08A6946C; } goto L_08A6943C; } L_08A6943C: { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; ctx.gpr[1] = (0u + static_cast(4)); if (branch_taken) { goto L_08A69484; } goto L_08A69444; } L_08A69444: { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; ctx.gpr[1] = (0u + static_cast(5)); if (branch_taken) { goto L_08A69488; } goto L_08A6944C; } L_08A6944C: { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; if (branch_taken) { goto L_08A69478; } goto L_08A69454; } L_08A69454: ctx.gpr[18] = (ctx.gpr[19] + static_cast(28)); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69500; } goto L_08A69460; } L_08A69460: ctx.gpr[18] = (ctx.gpr[19] + static_cast(36)); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69500; } goto L_08A6946C; } L_08A6946C: ctx.gpr[18] = (ctx.gpr[19] + static_cast(12)); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69500; } goto L_08A69478; } L_08A69478: ctx.gpr[18] = (ctx.gpr[19] + static_cast(8)); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69500; } goto L_08A69484; } L_08A69484: ctx.gpr[18] = (ctx.gpr[19] + static_cast(20)); goto L_08A69488; L_08A69488: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69500; } goto L_08A69490; } L_08A69490: aot_gpr_4 = (aot_gpr_4 + static_cast(-2)); aot_gpr_5 = (aot_gpr_4 < static_cast(6) ? 1u : 0u); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_08A69500; } goto L_08A694A0; } L_08A694A0: ctx.gpr[1] = (0u + static_cast(1)); { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; ctx.gpr[1] = (0u + static_cast(2)); if (branch_taken) { goto L_08A694D8; } goto L_08A694AC; } L_08A694AC: { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; ctx.gpr[1] = (0u + static_cast(3)); if (branch_taken) { goto L_08A694E4; } goto L_08A694B4; } L_08A694B4: { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; ctx.gpr[1] = (0u + static_cast(4)); if (branch_taken) { goto L_08A694FC; } goto L_08A694BC; } L_08A694BC: { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; ctx.gpr[1] = (0u + static_cast(5)); if (branch_taken) { goto L_08A69500; } goto L_08A694C4; } L_08A694C4: { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; if (branch_taken) { goto L_08A694F0; } goto L_08A694CC; } L_08A694CC: ctx.gpr[18] = (ctx.gpr[19] + static_cast(32)); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69500; } goto L_08A694D8; } L_08A694D8: ctx.gpr[18] = (ctx.gpr[19] + static_cast(40)); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69500; } goto L_08A694E4; } L_08A694E4: ctx.gpr[18] = (ctx.gpr[19] + static_cast(16)); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69500; } goto L_08A694F0; } L_08A694F0: ctx.gpr[18] = (ctx.gpr[19] + static_cast(8)); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69500; } goto L_08A694FC; } L_08A694FC: ctx.gpr[18] = (ctx.gpr[19] + static_cast(24)); goto L_08A69500; L_08A69500: { const bool branch_taken = ctx.gpr[21] == 0u; if (branch_taken) { goto L_08A69574; } goto L_08A69508; } L_08A69508: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(4))); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); { const bool branch_taken = ctx.gpr[8] != aot_gpr_6; aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(8))); if (branch_taken) { goto L_08A69524; } goto L_08A6951C; } L_08A6951C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(8))); goto L_08A69524; L_08A69524: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A69538; } goto L_08A69530; } L_08A69530: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(8))); goto L_08A69538; L_08A69538: { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_08A69548; } goto L_08A69540; } L_08A69540: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(4), aot_gpr_4); goto L_08A69548; L_08A69548: aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(4), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(8), aot_gpr_4); if (branch_taken) { goto L_08A69560; } goto L_08A69558; } L_08A69558: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_6); goto L_08A69560; L_08A69560: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), aot_gpr_6); aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(8), ctx.gpr[19]); aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(0), ctx.gpr[18]); { const bool branch_taken = 0u == 0u; ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(16))); if (branch_taken) { goto L_08A695F4; } goto L_08A69574; } L_08A69574: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08A69580u); aot_gpr_4 = (0u | 12u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0000. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 228u, 0x08A69580u, 0x08807C9Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 593u, aot_mem); #else recomp_unit_0000_entry(rt, ctx, 593u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 593u, 0x08807C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69580u) goto L_08A69580; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A69580: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A69594; } goto L_08A6958C; } L_08A6958C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), ctx.gpr[23]); aot_gpr_16 = (aot_gpr_4 | 0u); goto L_08A69594; L_08A69594: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(8), aot_gpr_4); if (branch_taken) { goto L_08A695AC; } goto L_08A695A4; } L_08A695A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_16); goto L_08A695AC; L_08A695AC: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), aot_gpr_16); ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08A695BCu); aot_gpr_4 = (0u | 20u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0094. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 233u, 0x08A695BCu, 0x0897EBD8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 722u, aot_mem); #else recomp_unit_0094_entry(rt, ctx, 722u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 722u, 0x0897EBD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A695BCu) goto L_08A695BC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A695BC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); if (branch_taken) { goto L_08A695D8; } goto L_08A695C8; } L_08A695C8: { const std::uint32_t aot_run_words[3]{ctx.gpr[18], aot_gpr_16, ctx.gpr[19]}; aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(0), aot_run_words); } ctx.gpr[17] = (aot_gpr_4 | 0u); goto L_08A695D8; L_08A695D8: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(12), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(228))); { const bool branch_taken = aot_gpr_4 == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(16), aot_gpr_4); if (branch_taken) { goto L_08A695F0; } goto L_08A695E8; } L_08A695E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(228))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), ctx.gpr[17]); goto L_08A695F0; L_08A695F0: aot_mem.aot_direct_store32(ctx.gpr[23] + static_cast(228), ctx.gpr[17]); goto L_08A695F4; L_08A695F4: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[7]) < static_cast(ctx.gpr[20]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[22] = (ctx.gpr[22] + static_cast(56)); if (branch_taken) { goto L_08A693F0; } goto L_08A69604; } L_08A69604: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(60))); ctx.gpr[30] = (ctx.gpr[30] + static_cast(1)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); aot_gpr_4 = (aot_gpr_4 + static_cast(50)); aot_gpr_5 = (static_cast(aot_gpr_5) < static_cast(ctx.gpr[30]) ? 1u : 0u); { const bool branch_taken = aot_gpr_5 == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(60), aot_gpr_4); if (branch_taken) { goto L_08A693C8; } goto L_08A69620; } L_08A69620: { const bool branch_taken = ctx.gpr[21] == 0u; if (branch_taken) { goto L_08A696C8; } goto L_08A69628; } L_08A69628: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(4))); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); { const bool branch_taken = ctx.gpr[7] != aot_gpr_5; aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); if (branch_taken) { goto L_08A69644; } goto L_08A6963C; } L_08A6963C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_6); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); goto L_08A69644; L_08A69644: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A69658; } goto L_08A69650; } L_08A69650: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_6); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); goto L_08A69658; L_08A69658: { const bool branch_taken = aot_gpr_6 == 0u; if (branch_taken) { goto L_08A69668; } goto L_08A69660; } L_08A69660: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(4), aot_gpr_4); goto L_08A69668; L_08A69668: { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_08A69678; } goto L_08A69670; } L_08A69670: aot_gpr_31 = (0x08A69678u); aot_gpr_4 = (aot_gpr_5 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0000. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 249u, 0x08A69678u, 0x08807CB8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 595u, aot_mem); #else recomp_unit_0000_entry(rt, ctx, 595u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 595u, 0x08807CB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69678u) goto L_08A69678; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A69678: aot_gpr_4 = (ctx.gpr[21] | 0u); ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(228))); { const bool branch_taken = aot_gpr_6 != aot_gpr_4; aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); if (branch_taken) { goto L_08A69694; } goto L_08A6968C; } L_08A6968C: aot_mem.aot_direct_store32(ctx.gpr[23] + static_cast(228), aot_gpr_5); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); goto L_08A69694; L_08A69694: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); { const bool branch_taken = aot_gpr_6 == 0u; if (branch_taken) { goto L_08A696A8; } goto L_08A696A0; } L_08A696A0: aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(16), aot_gpr_5); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); goto L_08A696A8; L_08A696A8: { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_08A696B8; } goto L_08A696B0; } L_08A696B0: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(12), aot_gpr_6); goto L_08A696B8; L_08A696B8: aot_gpr_31 = (0x08A696C0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0094. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 256u, 0x08A696C0u, 0x0897EBF4u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 724u, aot_mem); #else recomp_unit_0094_entry(rt, ctx, 724u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 724u, 0x0897EBF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A696C0u) goto L_08A696C0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A696C0: { const bool branch_taken = ctx.gpr[21] != 0u; if (branch_taken) { goto L_08A69628; } goto L_08A696C8; } L_08A696C8: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(72), aot_run_words); aot_gpr_16 = aot_run_words[0]; ctx.gpr[17] = aot_run_words[1]; ctx.gpr[18] = aot_run_words[2]; ctx.gpr[19] = aot_run_words[3]; ctx.gpr[20] = aot_run_words[4]; ctx.gpr[21] = aot_run_words[5]; ctx.gpr[22] = aot_run_words[6]; ctx.gpr[23] = aot_run_words[7]; ctx.gpr[30] = aot_run_words[8]; aot_gpr_31 = aot_run_words[9]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A696F8: aot_gpr_29 = (aot_gpr_29 + static_cast(-64)); { const std::uint32_t aot_run_words[10]{std::bit_cast(aot_fpr_20), aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(16), aot_run_words); } aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A69730u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0179. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 259u, 0x08A69730u, 0x08AD1B88u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 349u, aot_mem); #else recomp_unit_0179_entry(rt, ctx, 349u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 349u, 0x08AD1B88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69730u) goto L_08A69730; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A69730: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(30528)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(92), aot_gpr_4); ctx.gpr[19] = (aot_gpr_16 + static_cast(112)); ctx.gpr[20] = (aot_gpr_16 + static_cast(128)); ctx.gpr[21] = (aot_gpr_16 + static_cast(144)); ctx.gpr[22] = (aot_gpr_16 + static_cast(160)); ctx.gpr[23] = (aot_gpr_16 + static_cast(176)); ctx.gpr[18] = (aot_gpr_16 + static_cast(192)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(228), 0u); ctx.gpr[17] = (aot_gpr_16 + static_cast(288)); aot_gpr_4 = (15820u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(208), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(212), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (49024u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(272), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(216), std::bit_cast(aot_fpr_12)); aot_fpr_20 = std::bit_cast(0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A697A0u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 260u, 0x08A697A0u, 0x08A6669Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A697A0u) goto L_08A697A0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A697A0: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; 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); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; 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[20] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; 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); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; 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); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; 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); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(232), 0u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(309), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(310), static_cast(0u)); aot_gpr_5 = (0u | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); goto L_08A69818; L_08A69818: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(240), 0u); aot_gpr_5 = (aot_gpr_5 + static_cast(1)); aot_gpr_6 = (aot_gpr_5 < static_cast(6) ? 1u : 0u); { const bool branch_taken = aot_gpr_6 != 0u; aot_gpr_4 = (aot_gpr_4 + static_cast(4)); if (branch_taken) { goto L_08A69818; } goto L_08A6982C; } L_08A6982C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_5 = (0u + static_cast(-16385)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_5 = (65535u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(32767)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_5 = (65408u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(-1)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_mem.aot_direct_store16(aot_gpr_16 + static_cast(306), static_cast(0u)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(268), std::bit_cast(aot_fpr_20)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(336), 0u); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; 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); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(304)))))); aot_gpr_4 = (aot_gpr_4 | 1u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(304), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (0u + static_cast(-513)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_gpr_4 = (aot_gpr_4 | 512u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_4 = (0u + static_cast(-5)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), aot_gpr_4); aot_gpr_5 = (17096u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(100), std::bit_cast(aot_fpr_12)); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; 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); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(308), static_cast(0u)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_6 = (0u + static_cast(-2)); aot_gpr_5 = (aot_gpr_5 & aot_gpr_6); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_5); aot_gpr_5 = (aot_gpr_5 | 2u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_5); aot_gpr_4 = (aot_gpr_5 & aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_5 = (0u + static_cast(-9)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_5 = (0u + static_cast(-257)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_5 = (0u + static_cast(-2049)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_5 = (0u + static_cast(-4097)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(264), std::bit_cast(aot_fpr_20)); aot_gpr_5 = (0u + static_cast(-1025)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(312), static_cast(0u)); aot_gpr_5 = (49152u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(-1)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_5 = (32768u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(-1)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_5 = (0u + static_cast(-8193)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_5 = (64512u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(-1)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(304)))))); aot_gpr_5 = (0u + static_cast(-3)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(304), static_cast(aot_gpr_4)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(340), static_cast(0u)); ctx.gpr[2] = (aot_gpr_16 | 0u); { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); aot_fpr_20 = std::bit_cast(aot_run_words[0]); aot_gpr_16 = aot_run_words[1]; ctx.gpr[17] = aot_run_words[2]; ctx.gpr[18] = aot_run_words[3]; ctx.gpr[19] = aot_run_words[4]; ctx.gpr[20] = aot_run_words[5]; ctx.gpr[21] = aot_run_words[6]; ctx.gpr[22] = aot_run_words[7]; ctx.gpr[23] = aot_run_words[8]; aot_gpr_31 = aot_run_words[9]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A699B0: aot_gpr_29 = (aot_gpr_29 + static_cast(-336)); { const std::uint32_t aot_run_words[16]{std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[24]), std::bit_cast(ctx.fpr[26]), std::bit_cast(ctx.fpr[28]), std::bit_cast(ctx.fpr[30]), aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], ctx.gpr[30], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(260), aot_run_words); } aot_fpr_20 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(264), std::bit_cast(aot_fpr_20)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(236))); ctx.gpr[17] = (0u + static_cast(-16385)); aot_gpr_5 = (aot_gpr_5 & ctx.gpr[17]); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(236), aot_gpr_5); ctx.gpr[18] = (0u + static_cast(-4097)); aot_gpr_5 = (aot_gpr_5 & ctx.gpr[18]); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(236), aot_gpr_5); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); aot_gpr_5 = (aot_gpr_5 & 512u); aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u); aot_gpr_5 = (aot_gpr_5 & 255u); { const bool branch_taken = aot_gpr_5 != 0u; aot_gpr_16 = (aot_gpr_4 | 0u); if (branch_taken) { goto L_08A69A6C; } goto L_08A69A30; } L_08A69A30: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(184)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); jump_target = aot_gpr_5; aot_gpr_31 = (0x08A69A48u); aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); ctx.pc = jump_target; if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69A48u) goto L_08A69A48; AOT_REGCACHE_SYNC_OUT(); return; L_08A69A48: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_08A69A6C; } goto L_08A69A50; } L_08A69A50: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(328), std::bit_cast(aot_fpr_20)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(192)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); jump_target = aot_gpr_5; aot_gpr_31 = (0x08A69A6Cu); aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); ctx.pc = jump_target; if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69A6Cu) goto L_08A69A6C; AOT_REGCACHE_SYNC_OUT(); return; L_08A69A6C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 512u); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A69ABC; } goto L_08A69A84; } L_08A69A84: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 14u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A69ABC; } goto L_08A69AA0; } L_08A69AA0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 496u); ctx.gpr[19] = (0u | 32u); { const bool branch_taken = aot_gpr_4 == ctx.gpr[19]; if (branch_taken) { goto L_08A69AEC; } goto L_08A69AB4; } L_08A69AB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69BA4; } goto L_08A69ABC; } L_08A69ABC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[17]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_5 = (65535u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(32767)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_gpr_4 = (aot_gpr_4 | 32768u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08A69AE4u); aot_gpr_4 = (aot_gpr_16 | 0u); goto L_08A69104; L_08A69AE4: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6A80C; } goto L_08A69AEC; } L_08A69AEC: aot_gpr_31 = (0x08A69AF4u); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 274u, 0x08A69AF4u, 0x08A67BDCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 738u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 738u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 738u, 0x08A67BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69AF4u) goto L_08A69AF4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A69AF4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_08A69B74; } goto L_08A69AFC; } L_08A69AFC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 496u); { const bool branch_taken = aot_gpr_4 != ctx.gpr[19]; if (branch_taken) { goto L_08A69B74; } goto L_08A69B0C; } L_08A69B0C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (0u + static_cast(-497)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_gpr_4 = (aot_gpr_4 | 48u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 4u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A69B48; } goto L_08A69B38; } L_08A69B38: aot_gpr_31 = (0x08A69B40u); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0207. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 278u, 0x08A69B40u, 0x08B41608u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); #else recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 365u, 0x08B41608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69B40u) goto L_08A69B40; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A69B40: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69B74; } goto L_08A69B48; } L_08A69B48: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 14u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A69B74; } goto L_08A69B64; } L_08A69B64: aot_gpr_4 = (2237u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08A69B74u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0182. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 281u, 0x08A69B74u, 0x08ADCEA0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 264u, aot_mem); #else recomp_unit_0182_entry(rt, ctx, 264u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 264u, 0x08ADCEA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69B74u) goto L_08A69B74; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A69B74: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[17]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_5 = (65535u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(32767)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_gpr_4 = (aot_gpr_4 | 32768u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08A69B9Cu); aot_gpr_4 = (aot_gpr_16 | 0u); goto L_08A69104; L_08A69B9C: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6A80C; } goto L_08A69BA4; } L_08A69BA4: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(224))); ctx.gpr[19] = (0u | 0u); ctx.gpr[20] = (aot_gpr_16 + static_cast(320)); { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[21] = (aot_gpr_29 + static_cast(16)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } ctx.gpr[22] = (0u | 1u); ctx.fpr[24] = std::bit_cast(std::bit_cast(aot_fpr_20)); ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); ctx.gpr[23] = (aot_gpr_29 + static_cast(32)); aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A69BD8u); aot_gpr_5 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0022. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 284u, 0x08A69BD8u, 0x0885F828u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); #else recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69BD8u) goto L_08A69BD8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A69BD8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 6u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A69D54; } goto L_08A69BF4; } L_08A69BF4: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.fpr[28] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[28]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } { const float fs = aot_fpr_12; const float ft = ctx.fpr[28]; 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; } aot_gpr_4 = (15800u << 16u); aot_gpr_4 = (aot_gpr_4 | 20972u); aot_fpr_13 = std::bit_cast(aot_gpr_4); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[28] < aot_fpr_13)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A69C3C; } goto L_08A69C2C; } L_08A69C2C: aot_gpr_31 = (0x08A69C34u); aot_gpr_4 = (aot_gpr_16 | 0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0890D44C, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69C34u) goto L_08A69C34; AOT_REGCACHE_SYNC_OUT(); return; L_08A69C34: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_08A69D54; } goto L_08A69C3C; } L_08A69C3C: aot_gpr_31 = (0x08A69C44u); aot_gpr_4 = (aot_gpr_16 | 0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0890D44C, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69C44u) goto L_08A69C44; AOT_REGCACHE_SYNC_OUT(); return; L_08A69C44: aot_gpr_4 = (ctx.gpr[2] | 0u); ctx.fpr[28] = std::sqrt(ctx.fpr[28]); aot_gpr_5 = (16384u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_5); aot_gpr_5 = (16025u << 16u); aot_gpr_5 = (aot_gpr_5 | 39322u); { const bool branch_taken = aot_gpr_4 == 0u; aot_fpr_13 = std::bit_cast(aot_gpr_5); if (branch_taken) { goto L_08A69CD8; } goto L_08A69C64; } L_08A69C64: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1300))); { const bool branch_taken = aot_gpr_5 == 0u; { const float fs = ctx.fpr[28]; const float ft = aot_fpr_12; 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; } if (branch_taken) { goto L_08A69CA8; } goto L_08A69C70; } L_08A69C70: aot_fpr_12 = ctx.fpr[28] / aot_fpr_13; ctx.fpr[28] = std::bit_cast(ctx.fpu_float_to_word_ct<2u>(aot_fpr_12)); ctx.fpr[28] = static_cast(static_cast(std::bit_cast(ctx.fpr[28]))); aot_gpr_5 = (16512u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_5); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[28])) ? 0x00800000u : 0u); if (!((ctx.fcr31 & 0x00800000u) != 0u)) { ctx.fpr[28] = std::bit_cast(std::bit_cast(aot_fpr_12)); goto L_08A69C94; } goto L_08A69C94; L_08A69C94: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[28])); ctx.gpr[22] = (std::bit_cast(aot_fpr_12)); ctx.gpr[22] = (ctx.gpr[22] & 255u); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69D00; } goto L_08A69CA8; } L_08A69CA8: aot_fpr_13 = ctx.fpr[28] / aot_fpr_13; aot_fpr_13 = std::bit_cast(ctx.fpu_float_to_word_ct<2u>(aot_fpr_13)); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_13)) ? 0x00800000u : 0u); if (!((ctx.fcr31 & 0x00800000u) != 0u)) { aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); goto L_08A69CC4; } goto L_08A69CC4; L_08A69CC4: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_13)); ctx.gpr[22] = (std::bit_cast(aot_fpr_12)); ctx.gpr[22] = (ctx.gpr[22] & 255u); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A69D00; } goto L_08A69CD8; } L_08A69CD8: aot_fpr_13 = ctx.fpr[28] / aot_fpr_13; aot_fpr_13 = std::bit_cast(ctx.fpu_float_to_word_ct<2u>(aot_fpr_13)); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_13)) ? 0x00800000u : 0u); if (!((ctx.fcr31 & 0x00800000u) != 0u)) { aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); goto L_08A69CF4; } goto L_08A69CF4; L_08A69CF4: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_13)); ctx.gpr[22] = (std::bit_cast(aot_fpr_12)); ctx.gpr[22] = (ctx.gpr[22] & 255u); goto L_08A69D00; L_08A69D00: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A69D28; } goto L_08A69D08; } L_08A69D08: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_5 = (aot_gpr_5 & 2u); aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u); aot_gpr_5 = (aot_gpr_5 & 255u); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_08A69D28; } goto L_08A69D20; } L_08A69D20: ctx.gpr[22] = (ctx.gpr[22] + ctx.gpr[22]); ctx.gpr[22] = (ctx.gpr[22] & 255u); goto L_08A69D28; L_08A69D28: aot_fpr_12 = std::bit_cast(ctx.gpr[22]); ctx.fpr[24] = static_cast(static_cast(std::bit_cast(aot_fpr_12))); ctx.fpr[24] = ctx.fpr[26] / ctx.fpr[24]; { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A69D4C; } goto L_08A69D3C; } L_08A69D3C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(224))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5732))); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(224), std::bit_cast(aot_fpr_12)); goto L_08A69D4C; L_08A69D4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6A244; } goto L_08A69D54; } L_08A69D54: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 4u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A69F38; } goto L_08A69D70; } L_08A69D70: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 22u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_4 = (16076u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 496u); { const bool branch_taken = aot_gpr_4 != 0u; aot_gpr_4 = (0u | 0u); if (branch_taken) { goto L_08A69DB0; } goto L_08A69DA8; } L_08A69DA8: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (0u | 1u); if (branch_taken) { goto L_08A69DB0; } goto L_08A69DB0; } L_08A69DB0: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A69DC4; } goto L_08A69DB8; } L_08A69DB8: aot_gpr_4 = (16025u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); aot_fpr_13 = std::bit_cast(aot_gpr_4); goto L_08A69DC4; L_08A69DC4: aot_fpr_12 = aot_fpr_12 / aot_fpr_13; aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<2u>(aot_fpr_12)); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); ctx.gpr[22] = (std::bit_cast(aot_fpr_12)); ctx.gpr[22] = (ctx.gpr[22] & 255u); aot_gpr_4 = (static_cast(ctx.gpr[22]) < 1 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A69DEC; } goto L_08A69DE8; } L_08A69DE8: ctx.gpr[22] = (0u | 1u); goto L_08A69DEC; L_08A69DEC: aot_fpr_12 = std::bit_cast(ctx.gpr[22]); ctx.fpr[24] = static_cast(static_cast(std::bit_cast(aot_fpr_12))); ctx.fpr[24] = ctx.fpr[26] / ctx.fpr[24]; aot_gpr_4 = (static_cast(ctx.gpr[22]) < 3 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A69F30; } goto L_08A69E04; } L_08A69E04: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); aot_gpr_4 = (aot_gpr_4 << 2u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(24))); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); ctx.gpr[30] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_16 + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) & 0x7FFFFFFFu); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(36))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(20))); aot_fpr_14 = aot_fpr_14 - ctx.fpr[15]; aot_fpr_12 = aot_fpr_12 / aot_fpr_14; { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[16] = std::bit_cast(aot_gpr_4); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[16]) & 0x7FFFFFFFu); { const float fs = ctx.fpr[15]; const float ft = aot_fpr_13; 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; } aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(32))); ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(16))); aot_fpr_14 = aot_fpr_14 - ctx.fpr[17]; ctx.fpr[28] = ctx.fpr[28] / aot_fpr_14; ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[28] < aot_fpr_12)) ? 0x00800000u : 0u); if (((ctx.fcr31 & 0x00800000u) != 0u)) { ctx.fpr[28] = std::bit_cast(std::bit_cast(aot_fpr_12)); goto L_08A69E8C; } goto L_08A69E8C; L_08A69E8C: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_16 + static_cast(32)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08A69EACu); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 313u, 0x08A69EACu, 0x08A65D60u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 412u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 412u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 412u, 0x08A65D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69EACu) goto L_08A69EAC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A69EAC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); { const float fs = ctx.fpr[0]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[30] = std::bit_cast(0x7FC00000u); else ctx.fpr[30] = fs * ft; } aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(40))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(24))); aot_fpr_13 = aot_fpr_13 - aot_fpr_14; ctx.fpr[30] = ctx.fpr[30] / aot_fpr_13; ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[30] < ctx.fpr[28])) ? 0x00800000u : 0u); if (((ctx.fcr31 & 0x00800000u) != 0u)) { ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[28])); goto L_08A69ED4; } goto L_08A69ED4; L_08A69ED4: ctx.fpr[28] = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x08A69EE0u); aot_gpr_4 = (aot_gpr_16 | 0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B01E00, 191u, 504u, 0x08B01E00u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0191_entry, 191u, 504u, 0x08B01E00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69EE0u) goto L_08A69EE0; AOT_REGCACHE_SYNC_OUT(); return; L_08A69EE0: aot_gpr_4 = (0u | 2u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; if (branch_taken) { goto L_08A69EF8; } goto L_08A69EEC; } L_08A69EEC: aot_gpr_4 = (16320u << 16u); ctx.fpr[28] = std::bit_cast(aot_gpr_4); { const float fs = ctx.fpr[30]; const float ft = ctx.fpr[28]; 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; } goto L_08A69EF8; L_08A69EF8: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[28] < aot_fpr_12)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A69F18; } goto L_08A69F10; } L_08A69F10: { const bool branch_taken = 0u == 0u; ctx.gpr[19] = (0u | 1u); if (branch_taken) { goto L_08A69F30; } goto L_08A69F18; } L_08A69F18: aot_gpr_4 = (16384u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[28] < aot_fpr_12)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A69F30; } goto L_08A69F30; } L_08A69F30: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6A244; } goto L_08A69F38; } L_08A69F38: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 8u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A244; } goto L_08A69F54; } L_08A69F54: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(476))); aot_gpr_5 = (0u | 3u); { const bool branch_taken = aot_gpr_4 == aot_gpr_5; if (branch_taken) { goto L_08A6A244; } goto L_08A69F64; } L_08A69F64: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(474))); aot_gpr_6 = (0u | 1u); { const bool branch_taken = aot_gpr_5 != aot_gpr_6; if (branch_taken) { goto L_08A6A0C0; } goto L_08A69F78; } L_08A69F78: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(256), ctx.gpr[23]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); aot_gpr_4 = (aot_gpr_4 << 2u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(24))); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(176), aot_run_words); } ctx.gpr[20] = (aot_gpr_29 + static_cast(176)); { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[30] = (aot_gpr_29 + static_cast(192)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(40))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(184), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(200), std::bit_cast(aot_fpr_12)); { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(16); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(32); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); } ctx.execute_vfpu_vtfm_ct<0u, 36u, 7u, 3u, 3u>(); ctx.gpr[23] = (aot_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[23] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; 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[20] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(16); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(32); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); } ctx.execute_vfpu_vtfm_ct<0u, 36u, 7u, 3u, 3u>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; 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); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A6A014u); aot_gpr_6 = (ctx.gpr[20] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 325u, 0x08A6A014u, 0x08A67154u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 639u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 639u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 639u, 0x08A67154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A014u) goto L_08A6A014; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6A014: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; 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[20] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A6A02Cu); aot_gpr_6 = (ctx.gpr[30] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 326u, 0x08A6A02Cu, 0x08A67154u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 639u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 639u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 639u, 0x08A67154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A02Cu) goto L_08A6A02C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6A02C: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; 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); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A6A03Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 327u, 0x08A6A03Cu, 0x08A65D8Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 414u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 414u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 414u, 0x08A65D8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A03Cu) goto L_08A6A03C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6A03C: ctx.fpr[28] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08A6A048u); aot_gpr_4 = (ctx.gpr[30] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 328u, 0x08A6A048u, 0x08A65D8Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 414u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 414u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 414u, 0x08A65D8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A048u) goto L_08A6A048; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6A048: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[28] <= aot_fpr_12)) ? 0x00800000u : 0u); ctx.gpr[23] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(256))); if (!((ctx.fcr31 & 0x00800000u) != 0u)) { aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); goto L_08A6A05C; } goto L_08A6A05C; L_08A6A05C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_4 = (15800u << 16u); aot_gpr_4 = (aot_gpr_4 | 20972u); aot_fpr_14 = std::bit_cast(aot_gpr_4); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_14)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6A0B8; } goto L_08A6A084; } L_08A6A084: aot_fpr_12 = std::sqrt(aot_fpr_12); aot_gpr_4 = (16025u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 / aot_fpr_13; aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<2u>(aot_fpr_12)); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); ctx.gpr[22] = (std::bit_cast(aot_fpr_12)); ctx.gpr[22] = (ctx.gpr[22] & 255u); aot_fpr_14 = std::bit_cast(ctx.gpr[22]); ctx.fpr[24] = static_cast(static_cast(std::bit_cast(aot_fpr_14))); ctx.fpr[24] = ctx.fpr[26] / ctx.fpr[24]; goto L_08A6A0B8; L_08A6A0B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6A244; } goto L_08A6A0C0; } L_08A6A0C0: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(474))); aot_gpr_6 = (0u | 5u); { const bool branch_taken = aot_gpr_5 != aot_gpr_6; if (branch_taken) { goto L_08A6A144; } goto L_08A6A0D0; } L_08A6A0D0: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_4 = (15379u << 16u); aot_gpr_4 = (aot_gpr_4 | 29885u); aot_fpr_14 = std::bit_cast(aot_gpr_4); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_14)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6A244; } goto L_08A6A108; } L_08A6A108: aot_fpr_12 = std::sqrt(aot_fpr_12); aot_gpr_4 = (15800u << 16u); aot_gpr_4 = (aot_gpr_4 | 20972u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 / aot_fpr_13; aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<2u>(aot_fpr_12)); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); ctx.gpr[22] = (std::bit_cast(aot_fpr_12)); ctx.gpr[22] = (ctx.gpr[22] & 255u); aot_fpr_14 = std::bit_cast(ctx.gpr[22]); ctx.fpr[24] = static_cast(static_cast(std::bit_cast(aot_fpr_14))); ctx.fpr[24] = ctx.fpr[26] / ctx.fpr[24]; { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6A244; } goto L_08A6A144; } L_08A6A144: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(474))); aot_gpr_6 = (0u | 2u); { const bool branch_taken = aot_gpr_5 == aot_gpr_6; if (branch_taken) { goto L_08A6A164; } goto L_08A6A154; } L_08A6A154: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(474))); aot_gpr_5 = (0u | 4u); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_08A6A1D8; } goto L_08A6A164; } L_08A6A164: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_4 = (15544u << 16u); aot_gpr_4 = (aot_gpr_4 | 20972u); aot_fpr_14 = std::bit_cast(aot_gpr_4); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_14)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6A244; } goto L_08A6A19C; } L_08A6A19C: aot_fpr_12 = std::sqrt(aot_fpr_12); aot_gpr_4 = (15897u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 / aot_fpr_13; aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<2u>(aot_fpr_12)); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); ctx.gpr[22] = (std::bit_cast(aot_fpr_12)); ctx.gpr[22] = (ctx.gpr[22] & 255u); aot_fpr_14 = std::bit_cast(ctx.gpr[22]); ctx.fpr[24] = static_cast(static_cast(std::bit_cast(aot_fpr_14))); ctx.fpr[24] = ctx.fpr[26] / ctx.fpr[24]; { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6A244; } goto L_08A6A1D8; } L_08A6A1D8: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_4 = (15800u << 16u); aot_gpr_4 = (aot_gpr_4 | 20972u); aot_fpr_14 = std::bit_cast(aot_gpr_4); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_14)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6A244; } goto L_08A6A210; } L_08A6A210: aot_fpr_12 = std::sqrt(aot_fpr_12); aot_gpr_4 = (16025u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 / aot_fpr_13; aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<2u>(aot_fpr_12)); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); ctx.gpr[22] = (std::bit_cast(aot_fpr_12)); ctx.gpr[22] = (ctx.gpr[22] & 255u); aot_fpr_14 = std::bit_cast(ctx.gpr[22]); ctx.fpr[24] = static_cast(static_cast(std::bit_cast(aot_fpr_14))); ctx.fpr[24] = ctx.fpr[26] / ctx.fpr[24]; goto L_08A6A244; L_08A6A244: { const bool branch_taken = ctx.gpr[19] == 0u; if (branch_taken) { goto L_08A6A3A0; } goto L_08A6A24C; } L_08A6A24C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(192)); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(0)))))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); jump_target = aot_gpr_6; aot_gpr_31 = (0x08A6A264u); aot_gpr_4 = (aot_gpr_16 + aot_gpr_5); ctx.pc = jump_target; if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A264u) goto L_08A6A264; AOT_REGCACHE_SYNC_OUT(); return; L_08A6A264: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(200)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); jump_target = aot_gpr_5; aot_gpr_31 = (0x08A6A27Cu); aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); ctx.pc = jump_target; if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A27Cu) goto L_08A6A27C; AOT_REGCACHE_SYNC_OUT(); return; L_08A6A27C: aot_gpr_31 = (0x08A6A284u); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0023. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 345u, 0x08A6A284u, 0x08860314u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0023_entry(rt, ctx, 6u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 6u, 0x08860314u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A284u) goto L_08A6A284; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6A284: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[17]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[18]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); ctx.gpr[19] = (aot_gpr_5 & 512u); ctx.gpr[19] = (0u < ctx.gpr[19] ? 1u : 0u); ctx.gpr[20] = (0u + static_cast(-513)); aot_gpr_5 = (aot_gpr_5 & ctx.gpr[20]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_5); aot_gpr_4 = (aot_gpr_4 | 32768u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_31 = (0x08A6A2C0u); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 346u, 0x08A6A2C0u, 0x08A67B3Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A2C0u) goto L_08A6A2C0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6A2C0: aot_gpr_4 = (65535u << 16u); { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (aot_gpr_4 + static_cast(32767)); if (branch_taken) { goto L_08A6A34C; } goto L_08A6A2CC; } L_08A6A2CC: aot_gpr_5 = (ctx.gpr[19] & 255u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_6 = (aot_gpr_6 & ctx.gpr[20]); aot_gpr_5 = (aot_gpr_5 & 1u); aot_gpr_5 = (aot_gpr_5 << 9u); aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_5); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_4 = (aot_gpr_5 & aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A6A300u); aot_gpr_5 = (ctx.gpr[23] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0023. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 348u, 0x08A6A300u, 0x08860358u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); #else recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A300u) goto L_08A6A300; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6A300: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A6A30Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 349u, 0x08A6A30Cu, 0x08A666C0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A30Cu) goto L_08A6A30C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6A30C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 4u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A3A0; } goto L_08A6A328; } L_08A6A328: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(613)))))); aot_gpr_4 = (aot_gpr_4 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A3A0; } goto L_08A6A338; } L_08A6A338: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(224))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5728))); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(224), std::bit_cast(aot_fpr_12)); if (branch_taken) { goto L_08A6A3A0; } goto L_08A6A34C; } L_08A6A34C: aot_gpr_5 = (ctx.gpr[19] & 255u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_6 = (aot_gpr_6 & ctx.gpr[20]); aot_gpr_5 = (aot_gpr_5 & 1u); aot_gpr_5 = (aot_gpr_5 << 9u); aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_5); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_4 = (aot_gpr_6 & aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_4 = (aot_gpr_5 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 4u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A398; } goto L_08A6A38C; } L_08A6A38C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(616)))))); aot_gpr_4 = (aot_gpr_4 | 16u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(616), static_cast(aot_gpr_4)); goto L_08A6A398; L_08A6A398: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6A770; } goto L_08A6A3A0; } L_08A6A3A0: ctx.gpr[19] = (0u | 1u); aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(ctx.gpr[22]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[20] = (0u | 9u); if (branch_taken) { goto L_08A6A5D0; } goto L_08A6A3B0; } L_08A6A3B0: ctx.gpr[21] = (0u | 6u); ctx.gpr[30] = (0u | 8u); goto L_08A6A3B8; L_08A6A3B8: aot_fpr_12 = std::bit_cast(ctx.gpr[19]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7676), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(192)); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(0)))))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); jump_target = aot_gpr_6; aot_gpr_31 = (0x08A6A3E0u); aot_gpr_4 = (aot_gpr_16 + aot_gpr_5); ctx.pc = jump_target; if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A3E0u) goto L_08A6A3E0; AOT_REGCACHE_SYNC_OUT(); return; L_08A6A3E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(200)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); jump_target = aot_gpr_5; aot_gpr_31 = (0x08A6A3F8u); aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); ctx.pc = jump_target; if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A3F8u) goto L_08A6A3F8; AOT_REGCACHE_SYNC_OUT(); return; L_08A6A3F8: aot_gpr_31 = (0x08A6A400u); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 360u, 0x08A6A400u, 0x08A67B3Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A400u) goto L_08A6A400; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6A400: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_08A6A4A8; } goto L_08A6A408; } L_08A6A408: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 6u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A468; } goto L_08A6A424; } L_08A6A424: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(328))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(aot_fpr_20)) && aot_fpr_12 == aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6A468; } goto L_08A6A438; } L_08A6A438: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & 2u); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6A468; } goto L_08A6A450; } L_08A6A450: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A468; } goto L_08A6A460; } L_08A6A460: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(56))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), std::bit_cast(aot_fpr_12)); goto L_08A6A468; L_08A6A468: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A6A474u); aot_gpr_5 = (ctx.gpr[23] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0023. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 367u, 0x08A6A474u, 0x08860358u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); #else recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A474u) goto L_08A6A474; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6A474: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7676), std::bit_cast(ctx.fpr[26])); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(224), std::bit_cast(ctx.fpr[22])); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); aot_gpr_4 = (aot_gpr_4 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A80C; } goto L_08A6A48C; } L_08A6A48C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A80C; } goto L_08A6A498; } L_08A6A498: aot_gpr_31 = (0x08A6A4A0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0117. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 370u, 0x08A6A4A0u, 0x089D89E0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); #else recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A4A0u) goto L_08A6A4A0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6A4A0: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6A80C; } goto L_08A6A4A8; } L_08A6A4A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 6u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A508; } goto L_08A6A4C4; } L_08A6A4C4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(328))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(aot_fpr_20)) && aot_fpr_12 == aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6A508; } goto L_08A6A4D8; } L_08A6A4D8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & 2u); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6A508; } goto L_08A6A4F0; } L_08A6A4F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A508; } goto L_08A6A500; } L_08A6A500: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(56))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), std::bit_cast(aot_fpr_12)); goto L_08A6A508; L_08A6A508: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A6A514u); aot_gpr_5 = (ctx.gpr[23] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0023. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 377u, 0x08A6A514u, 0x08860358u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); #else recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A514u) goto L_08A6A514; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6A514: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7676), std::bit_cast(ctx.fpr[26])); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 4u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A5BC; } goto L_08A6A534; } L_08A6A534: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(852))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A54C; } goto L_08A6A540; } L_08A6A540: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(852))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[20]; if (branch_taken) { goto L_08A6A57C; } goto L_08A6A54C; } L_08A6A54C: aot_gpr_4 = (0u | 0u); goto L_08A6A550; L_08A6A550: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5736))); aot_gpr_5 = (aot_gpr_4 << 2u); aot_gpr_5 = (aot_gpr_16 + aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(1520), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); aot_gpr_4 = (aot_gpr_4 & 65535u); aot_gpr_5 = (static_cast(aot_gpr_4) < 4 ? 1u : 0u); { const bool branch_taken = aot_gpr_5 != 0u; if (branch_taken) { goto L_08A6A550; } goto L_08A6A574; } L_08A6A574: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6A5BC; } goto L_08A6A57C; } L_08A6A57C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(852))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[21]; if (branch_taken) { goto L_08A6A594; } goto L_08A6A588; } L_08A6A588: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(852))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[30]; if (branch_taken) { goto L_08A6A5BC; } goto L_08A6A594; } L_08A6A594: aot_gpr_4 = (0u | 0u); goto L_08A6A598; L_08A6A598: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5736))); aot_gpr_5 = (aot_gpr_4 << 2u); aot_gpr_5 = (aot_gpr_16 + aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(1216), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); aot_gpr_4 = (aot_gpr_4 & 65535u); aot_gpr_5 = (static_cast(aot_gpr_4) < 4 ? 1u : 0u); { const bool branch_taken = aot_gpr_5 != 0u; if (branch_taken) { goto L_08A6A598; } goto L_08A6A5BC; } L_08A6A5BC: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); ctx.gpr[19] = (ctx.gpr[19] & 65535u); aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(ctx.gpr[22]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6A3B8; } goto L_08A6A5D0; } L_08A6A5D0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(192)); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(0)))))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); jump_target = aot_gpr_6; aot_gpr_31 = (0x08A6A5E8u); aot_gpr_4 = (aot_gpr_16 + aot_gpr_5); ctx.pc = jump_target; if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A5E8u) goto L_08A6A5E8; AOT_REGCACHE_SYNC_OUT(); return; L_08A6A5E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(200)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); jump_target = aot_gpr_5; aot_gpr_31 = (0x08A6A600u); aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); ctx.pc = jump_target; if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A600u) goto L_08A6A600; AOT_REGCACHE_SYNC_OUT(); return; L_08A6A600: aot_gpr_31 = (0x08A6A608u); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0023. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 391u, 0x08A6A608u, 0x08860314u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0023_entry(rt, ctx, 6u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 6u, 0x08860314u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A608u) goto L_08A6A608; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6A608: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[17]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[18]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(320))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(aot_fpr_20)) && aot_fpr_12 == aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6A6FC; } goto L_08A6A630; } L_08A6A630: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(324))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(aot_fpr_20)) && aot_fpr_12 == aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6A6FC; } goto L_08A6A644; } L_08A6A644: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(328))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(aot_fpr_20)) && aot_fpr_12 == aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6A6FC; } goto L_08A6A658; } L_08A6A658: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(aot_fpr_20)) && aot_fpr_12 == aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6A6FC; } goto L_08A6A66C; } L_08A6A66C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(116))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(aot_fpr_20)) && aot_fpr_12 == aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6A6FC; } goto L_08A6A680; } L_08A6A680: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(120))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(aot_fpr_20)) && aot_fpr_12 == aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6A6FC; } goto L_08A6A694; } L_08A6A694: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 496u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A6FC; } goto L_08A6A6A4; } L_08A6A6A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 4u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); if (aot_gpr_4 == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); goto L_08A6A6D4; } goto L_08A6A6C0; L_08A6A6C0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(617)))))); aot_gpr_4 = (aot_gpr_4 & 32u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6A6FC; } goto L_08A6A6D0; } L_08A6A6D0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); goto L_08A6A6D4; L_08A6A6D4: aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 6u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A770; } goto L_08A6A6EC; } L_08A6A6EC: aot_gpr_31 = (0x08A6A6F4u); aot_gpr_4 = (aot_gpr_16 | 0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0890D44C, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A6F4u) goto L_08A6A6F4; AOT_REGCACHE_SYNC_OUT(); return; L_08A6A6F4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_08A6A770; } goto L_08A6A6FC; } L_08A6A6FC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 4u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A724; } goto L_08A6A718; } L_08A6A718: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(616)))))); aot_gpr_4 = (aot_gpr_4 | 16u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(616), static_cast(aot_gpr_4)); goto L_08A6A724; L_08A6A724: aot_gpr_31 = (0x08A6A72Cu); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 407u, 0x08A6A72Cu, 0x08A67B3Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A72Cu) goto L_08A6A72C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6A72C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_08A6A770; } goto L_08A6A734; } L_08A6A734: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A6A740u); aot_gpr_5 = (ctx.gpr[23] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0023. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 409u, 0x08A6A740u, 0x08860358u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); #else recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A740u) goto L_08A6A740; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6A740: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(224), std::bit_cast(ctx.fpr[22])); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); aot_gpr_4 = (aot_gpr_4 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A80C; } goto L_08A6A754; } L_08A6A754: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A80C; } goto L_08A6A760; } L_08A6A760: aot_gpr_31 = (0x08A6A768u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0117. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 412u, 0x08A6A768u, 0x089D89E0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); #else recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A768u) goto L_08A6A768; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6A768: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6A80C; } goto L_08A6A770; } L_08A6A770: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[17]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_5 = (65535u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(32767)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_gpr_4 = (aot_gpr_4 | 32768u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_5 = (0u + static_cast(-2049)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_4 = (aot_gpr_16 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(80)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 22u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(264), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[18]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(224), std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A6A7E8u); aot_gpr_4 = (aot_gpr_16 | 0u); goto L_08A69104; L_08A6A7E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); aot_gpr_4 = (aot_gpr_4 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A80C; } goto L_08A6A7F8; } L_08A6A7F8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A80C; } goto L_08A6A804; } L_08A6A804: aot_gpr_31 = (0x08A6A80Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0117. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 417u, 0x08A6A80Cu, 0x089D89E0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); #else recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A80Cu) goto L_08A6A80C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6A80C: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(260), aot_run_words); aot_fpr_20 = std::bit_cast(aot_run_words[0]); ctx.fpr[22] = std::bit_cast(aot_run_words[1]); ctx.fpr[24] = std::bit_cast(aot_run_words[2]); ctx.fpr[26] = std::bit_cast(aot_run_words[3]); ctx.fpr[28] = std::bit_cast(aot_run_words[4]); ctx.fpr[30] = std::bit_cast(aot_run_words[5]); aot_gpr_16 = aot_run_words[6]; ctx.gpr[17] = aot_run_words[7]; ctx.gpr[18] = aot_run_words[8]; ctx.gpr[19] = aot_run_words[9]; ctx.gpr[20] = aot_run_words[10]; ctx.gpr[21] = aot_run_words[11]; ctx.gpr[22] = aot_run_words[12]; ctx.gpr[23] = aot_run_words[13]; ctx.gpr[30] = aot_run_words[14]; aot_gpr_31 = aot_run_words[15]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(336)); // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A6A854: aot_gpr_29 = (aot_gpr_29 + static_cast(-176)); { const std::uint32_t aot_run_words[8]{std::bit_cast(aot_fpr_20), aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(144), aot_run_words); } aot_fpr_20 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(264), std::bit_cast(aot_fpr_20)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); aot_gpr_5 = (aot_gpr_5 & 496u); aot_gpr_6 = (0u | 32u); ctx.gpr[18] = (0u + static_cast(-16385)); { const bool branch_taken = aot_gpr_5 == aot_gpr_6; aot_gpr_16 = (aot_gpr_4 | 0u); if (branch_taken) { goto L_08A6A8AC; } goto L_08A6A898; } L_08A6A898: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); if (aot_gpr_4 != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); goto L_08A6A8DC; } goto L_08A6A8A4; L_08A6A8A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6A900; } goto L_08A6A8AC; } L_08A6A8AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[18]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_5 = (65535u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(32767)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_gpr_4 = (aot_gpr_4 | 32768u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08A6A8D4u); aot_gpr_4 = (aot_gpr_16 | 0u); goto L_08A69104; L_08A6A8D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6AD00; } goto L_08A6A8DC; } L_08A6A8DC: aot_gpr_4 = (aot_gpr_4 & 2u); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A900; } goto L_08A6A8F0; } L_08A6A8F0: aot_gpr_31 = (0x08A6A8F8u); aot_gpr_4 = (aot_gpr_16 | 0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0890D44C, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A8F8u) goto L_08A6A8F8; AOT_REGCACHE_SYNC_OUT(); return; L_08A6A8F8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { goto L_08A6A924; } goto L_08A6A900; } L_08A6A900: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_4 = (aot_gpr_4 & 2u); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); ctx.gpr[17] = (aot_gpr_29 + static_cast(16)); { const bool branch_taken = aot_gpr_4 != 0u; ctx.gpr[21] = (0u | 65535u); if (branch_taken) { goto L_08A6A980; } goto L_08A6A91C; } L_08A6A91C: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6AA30; } goto L_08A6A924; } L_08A6A924: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A6A938u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 429u, 0x08A6A938u, 0x08A6669Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A938u) goto L_08A6A938; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6A938: aot_gpr_4 = (std::bit_cast(aot_fpr_20)); ctx.set_vfpu_scalar_bits_ct<1u>(aot_gpr_4); aot_gpr_4 = (aot_gpr_16 + static_cast(112)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; 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 = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[18]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_5 = (65535u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(32767)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_gpr_4 = (aot_gpr_4 | 32768u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08A6A978u); aot_gpr_4 = (aot_gpr_16 | 0u); goto L_08A69104; L_08A6A978: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6AD00; } goto L_08A6A980; } L_08A6A980: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 6u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); if (aot_gpr_4 == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(8425))); goto L_08A6A9D4; } goto L_08A6A99C; L_08A6A99C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1300))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A9DC; } goto L_08A6A9A8; } L_08A6A9A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1300))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6A9DC; } goto L_08A6A9BC; } L_08A6A9BC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1300))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 8u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6A9DC; } goto L_08A6A9D0; } L_08A6A9D0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(8425))); goto L_08A6A9D4; L_08A6A9D4: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6AA30; } goto L_08A6A9DC; } L_08A6A9DC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5724))); aot_gpr_31 = (0x08A6A9E8u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 438u, 0x08A6A9E8u, 0x08A65D34u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 411u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 411u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 411u, 0x08A65D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A9E8u) goto L_08A6A9E8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6A9E8: aot_gpr_4 = (std::bit_cast(ctx.fpr[0])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); aot_gpr_4 = (aot_gpr_16 + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_5 = (aot_gpr_29 + static_cast(96)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A6AA0Cu); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 439u, 0x08A6AA0Cu, 0x08A666C0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AA0Cu) goto L_08A6AA0C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6AA0C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5724))); aot_gpr_31 = (0x08A6AA18u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 440u, 0x08A6AA18u, 0x08A65D34u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 411u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 411u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 411u, 0x08A65D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AA18u) goto L_08A6AA18; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6AA18: aot_gpr_4 = (std::bit_cast(ctx.fpr[0])); ctx.set_vfpu_scalar_bits_ct<1u>(aot_gpr_4); aot_gpr_4 = (aot_gpr_16 + static_cast(112)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; 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 = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } goto L_08A6AA30; L_08A6AA30: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A6AA3Cu); aot_gpr_5 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0022. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 442u, 0x08A6AA3Cu, 0x0885F828u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); #else recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AA3Cu) goto L_08A6AA3C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6AA3C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(192)); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(0)))))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); jump_target = aot_gpr_6; aot_gpr_31 = (0x08A6AA54u); aot_gpr_4 = (aot_gpr_16 + aot_gpr_5); ctx.pc = jump_target; if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AA54u) goto L_08A6AA54; AOT_REGCACHE_SYNC_OUT(); return; L_08A6AA54: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(200)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); jump_target = aot_gpr_5; aot_gpr_31 = (0x08A6AA6Cu); aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); ctx.pc = jump_target; if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AA6Cu) goto L_08A6AA6C; AOT_REGCACHE_SYNC_OUT(); return; L_08A6AA6C: aot_gpr_31 = (0x08A6AA74u); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0023. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 445u, 0x08A6AA74u, 0x08860314u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0023_entry(rt, ctx, 6u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 6u, 0x08860314u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AA74u) goto L_08A6AA74; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6AA74: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(-25492))); aot_gpr_4 = (static_cast(aot_gpr_4) < static_cast(ctx.gpr[21]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6AA94; } goto L_08A6AA84; } L_08A6AA84: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(-25492))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); if (branch_taken) { goto L_08A6AAA4; } goto L_08A6AA94; } L_08A6AA94: aot_gpr_31 = (0x08A6AA9Cu); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0036. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 448u, 0x08A6AA9Cu, 0x088954BCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); #else recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AA9Cu) goto L_08A6AA9C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6AA9C: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); goto L_08A6AAA4; L_08A6AAA4: ctx.gpr[20] = (0u | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 4u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6AAD0; } goto L_08A6AAC4; } L_08A6AAC4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 | 16384u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); goto L_08A6AAD0; L_08A6AAD0: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(228))); { const bool branch_taken = ctx.gpr[19] == 0u; if (branch_taken) { goto L_08A6AB00; } goto L_08A6AADC; } L_08A6AADC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); aot_gpr_31 = (0x08A6AAE8u); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0155. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 453u, 0x08A6AAE8u, 0x08A7125Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0155_entry(rt, ctx, 270u, aot_mem); #else recomp_unit_0155_entry(rt, ctx, 270u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0155_entry, 155u, 270u, 0x08A7125Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AAE8u) goto L_08A6AAE8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6AAE8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_08A6AAF4; } goto L_08A6AAF0; } L_08A6AAF0: ctx.gpr[20] = (0u | 1u); goto L_08A6AAF4; L_08A6AAF4: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(16))); { const bool branch_taken = ctx.gpr[19] != 0u; if (branch_taken) { goto L_08A6AADC; } goto L_08A6AB00; } L_08A6AB00: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[18]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); { const bool branch_taken = ctx.gpr[20] == 0u; if (branch_taken) { goto L_08A6AC00; } goto L_08A6AB14; } L_08A6AB14: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(-25492))); aot_gpr_4 = (static_cast(aot_gpr_4) < static_cast(ctx.gpr[21]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6AB34; } goto L_08A6AB24; } L_08A6AB24: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(-25492))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); if (branch_taken) { goto L_08A6AB44; } goto L_08A6AB34; } L_08A6AB34: aot_gpr_31 = (0x08A6AB3Cu); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0036. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 460u, 0x08A6AB3Cu, 0x088954BCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); #else recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AB3Cu) goto L_08A6AB3C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6AB3C: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); goto L_08A6AB44; L_08A6AB44: ctx.gpr[20] = (0u | 0u); ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(228))); { const bool branch_taken = ctx.gpr[19] == 0u; if (branch_taken) { goto L_08A6ABC0; } goto L_08A6AB54; } L_08A6AB54: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); aot_gpr_31 = (0x08A6AB60u); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0154. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 463u, 0x08A6AB60u, 0x08A6E6FCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0154_entry(rt, ctx, 238u, aot_mem); #else recomp_unit_0154_entry(rt, ctx, 238u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0154_entry, 154u, 238u, 0x08A6E6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AB60u) goto L_08A6AB60; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6AB60: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_08A6ABB4; } goto L_08A6AB68; } L_08A6AB68: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(8425))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6AB7C; } goto L_08A6AB74; } L_08A6AB74: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (0u | 1u); if (branch_taken) { goto L_08A6ABB4; } goto L_08A6AB7C; } L_08A6AB7C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A6AB88u); aot_gpr_5 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0023. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 467u, 0x08A6AB88u, 0x08860358u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); #else recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AB88u) goto L_08A6AB88; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6AB88: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); aot_gpr_4 = (aot_gpr_4 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6AD00; } goto L_08A6AB98; } L_08A6AB98: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6AD00; } goto L_08A6ABA4; } L_08A6ABA4: aot_gpr_31 = (0x08A6ABACu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0117. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 470u, 0x08A6ABACu, 0x089D89E0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); #else recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6ABACu) goto L_08A6ABAC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6ABAC: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6AD00; } goto L_08A6ABB4; } L_08A6ABB4: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(16))); { const bool branch_taken = ctx.gpr[19] != 0u; if (branch_taken) { goto L_08A6AB54; } goto L_08A6ABC0; } L_08A6ABC0: { const bool branch_taken = ctx.gpr[20] == 0u; if (branch_taken) { goto L_08A6AC00; } goto L_08A6ABC8; } L_08A6ABC8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A6ABD4u); aot_gpr_5 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0023. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 474u, 0x08A6ABD4u, 0x08860358u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); #else recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6ABD4u) goto L_08A6ABD4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6ABD4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); aot_gpr_4 = (aot_gpr_4 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6AD00; } goto L_08A6ABE4; } L_08A6ABE4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6AD00; } goto L_08A6ABF0; } L_08A6ABF0: aot_gpr_31 = (0x08A6ABF8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0117. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 477u, 0x08A6ABF8u, 0x089D89E0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); #else recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6ABF8u) goto L_08A6ABF8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6ABF8: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6AD00; } goto L_08A6AC00; } L_08A6AC00: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[18]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); ctx.gpr[19] = (65535u << 16u); ctx.gpr[19] = (ctx.gpr[19] + static_cast(32767)); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[19]); aot_gpr_4 = (aot_gpr_4 | 32768u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_4 = (aot_gpr_16 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(64)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 22u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(264), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6ACD4; } goto L_08A6AC5C; } L_08A6AC5C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_4 = (aot_gpr_4 & 2u); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6ACD4; } goto L_08A6AC74; } L_08A6AC74: aot_gpr_31 = (0x08A6AC7Cu); aot_gpr_4 = (aot_gpr_16 | 0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0890D44C, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AC7Cu) goto L_08A6AC7C; AOT_REGCACHE_SYNC_OUT(); return; L_08A6AC7C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_08A6ACD4; } goto L_08A6AC84; } L_08A6AC84: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A6AC90u); aot_gpr_5 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0023. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 483u, 0x08A6AC90u, 0x08860358u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); #else recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AC90u) goto L_08A6AC90; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6AC90: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A6ACA4u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 484u, 0x08A6ACA4u, 0x08A6669Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6ACA4u) goto L_08A6ACA4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6ACA4: aot_gpr_4 = (std::bit_cast(aot_fpr_20)); ctx.set_vfpu_scalar_bits_ct<1u>(aot_gpr_4); aot_gpr_4 = (aot_gpr_16 + static_cast(112)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; 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 = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[18]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[19]); aot_gpr_4 = (aot_gpr_4 | 32768u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); goto L_08A6ACD4; L_08A6ACD4: aot_gpr_31 = (0x08A6ACDCu); aot_gpr_4 = (aot_gpr_16 | 0u); goto L_08A69104; L_08A6ACDC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); aot_gpr_4 = (aot_gpr_4 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6AD00; } goto L_08A6ACEC; } L_08A6ACEC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6AD00; } goto L_08A6ACF8; } L_08A6ACF8: aot_gpr_31 = (0x08A6AD00u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0117. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 489u, 0x08A6AD00u, 0x089D89E0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); #else recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AD00u) goto L_08A6AD00; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6AD00: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(144), aot_run_words); aot_fpr_20 = std::bit_cast(aot_run_words[0]); aot_gpr_16 = aot_run_words[1]; ctx.gpr[17] = aot_run_words[2]; ctx.gpr[18] = aot_run_words[3]; ctx.gpr[19] = aot_run_words[4]; ctx.gpr[20] = aot_run_words[5]; ctx.gpr[21] = aot_run_words[6]; aot_gpr_31 = aot_run_words[7]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A6AD28: aot_gpr_29 = (aot_gpr_29 + static_cast(-2096)); { const std::uint32_t aot_run_words[14]{std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[24]), std::bit_cast(ctx.fpr[26]), aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], ctx.gpr[30], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(2036), aot_run_words); } aot_gpr_16 = (aot_gpr_4 | 0u); ctx.gpr[21] = (0u | 0u); ctx.gpr[22] = (0u | 0u); ctx.gpr[23] = (0u | 0u); aot_gpr_4 = (0u | 0u); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); ctx.gpr[9] = (ctx.gpr[9] & 14u); ctx.gpr[9] = (ctx.gpr[9] ^ 6u); ctx.gpr[9] = (ctx.gpr[9] < static_cast(1) ? 1u : 0u); ctx.gpr[9] = (ctx.gpr[9] & 255u); ctx.gpr[17] = (aot_gpr_5 | 0u); ctx.gpr[18] = (aot_gpr_6 | 0u); ctx.gpr[19] = (ctx.gpr[7] | 0u); ctx.gpr[20] = (ctx.gpr[8] | 0u); if (ctx.gpr[9] != 0u) { aot_gpr_4 = (aot_gpr_16 | 0u); goto L_08A6ADA4; } goto L_08A6ADA4; L_08A6ADA4: aot_gpr_5 = (0u | 0u); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_6 = (aot_gpr_6 & 14u); aot_gpr_6 = (aot_gpr_6 ^ 6u); aot_gpr_6 = (aot_gpr_6 < static_cast(1) ? 1u : 0u); aot_gpr_6 = (aot_gpr_6 & 255u); if (aot_gpr_6 != 0u) { aot_gpr_5 = (ctx.gpr[17] | 0u); goto L_08A6ADC4; } goto L_08A6ADC4; L_08A6ADC4: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8428))); { const bool branch_taken = aot_gpr_16 == aot_gpr_6; if (branch_taken) { goto L_08A6ADFC; } goto L_08A6ADD0; } L_08A6ADD0: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8428))); { const bool branch_taken = ctx.gpr[17] == aot_gpr_6; if (branch_taken) { goto L_08A6ADFC; } goto L_08A6ADDC; } L_08A6ADDC: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_6 = (aot_gpr_6 & 8192u); aot_gpr_6 = (0u < aot_gpr_6 ? 1u : 0u); aot_gpr_6 = (aot_gpr_6 & 255u); { const bool branch_taken = aot_gpr_6 != 0u; if (branch_taken) { goto L_08A6AE04; } goto L_08A6ADF4; } L_08A6ADF4: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6AE28; } goto L_08A6ADFC; } L_08A6ADFC: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0154_entry, 154u, 98u, 0x08A6CF68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return; } goto L_08A6AE04; } L_08A6AE04: aot_gpr_6 = (16672u << 16u); aot_fpr_20 = std::bit_cast(aot_gpr_6); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_08A6AE4C; } goto L_08A6AE14; } L_08A6AE14: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(1300))); { const bool branch_taken = aot_gpr_5 != aot_gpr_4; if (branch_taken) { goto L_08A6AE4C; } goto L_08A6AE20; } L_08A6AE20: { const bool branch_taken = 0u == 0u; ctx.gpr[22] = (0u | 1u); if (branch_taken) { goto L_08A6AE4C; } goto L_08A6AE28; } L_08A6AE28: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_5 = (aot_gpr_5 & 1u); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_08A6AE44; } goto L_08A6AE38; } L_08A6AE38: aot_gpr_5 = (16384u << 16u); { const bool branch_taken = 0u == 0u; aot_fpr_20 = std::bit_cast(aot_gpr_5); if (branch_taken) { goto L_08A6AE4C; } goto L_08A6AE44; } L_08A6AE44: aot_gpr_5 = (16256u << 16u); aot_fpr_20 = std::bit_cast(aot_gpr_5); goto L_08A6AE4C; L_08A6AE4C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (aot_gpr_5 & 8192u); aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u); aot_gpr_5 = (aot_gpr_5 & 255u); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_08A6AF54; } goto L_08A6AE64; } L_08A6AE64: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6AF1C; } goto L_08A6AE6C; } L_08A6AE6C: aot_gpr_31 = (0x08A6AE74u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0890D44C, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AE74u) goto L_08A6AE74; AOT_REGCACHE_SYNC_OUT(); return; L_08A6AE74: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_08A6AF1C; } goto L_08A6AE7C; } L_08A6AE7C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 4u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6AF1C; } goto L_08A6AE98; } L_08A6AE98: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 496u); aot_gpr_5 = (0u | 64u); { const bool branch_taken = aot_gpr_4 == aot_gpr_5; if (branch_taken) { goto L_08A6AED0; } goto L_08A6AEAC; } L_08A6AEAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 496u); aot_gpr_5 = (0u | 80u); { const bool branch_taken = aot_gpr_4 == aot_gpr_5; if (branch_taken) { goto L_08A6AED0; } goto L_08A6AEC0; } L_08A6AEC0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_4 = (aot_gpr_4 & 2u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6AF1C; } goto L_08A6AED0; } L_08A6AED0: aot_fpr_12 = std::bit_cast(0u); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(208))); aot_gpr_4 = (17658u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); ctx.fpr[22] = ctx.fpr[22] - aot_fpr_13; ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[22])) ? 0x00800000u : 0u); if (!((ctx.fcr31 & 0x00800000u) != 0u)) { ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_12)); goto L_08A6AEF4; } goto L_08A6AEF4; L_08A6AEF4: aot_gpr_4 = (14673u << 16u); aot_gpr_4 = (aot_gpr_4 | 46871u); aot_fpr_12 = std::bit_cast(aot_gpr_4); { const float fs = ctx.fpr[22]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_4 = (16256u << 16u); ctx.fpr[22] = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 + ctx.fpr[22]; ctx.fpr[22] = ctx.fpr[22] / aot_fpr_12; { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6AF24; } goto L_08A6AF1C; } L_08A6AF1C: aot_gpr_4 = (16672u << 16u); ctx.fpr[22] = std::bit_cast(aot_gpr_4); goto L_08A6AF24; L_08A6AF24: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 6u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6AF78; } goto L_08A6AF40; } L_08A6AF40: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1300))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[17]; if (branch_taken) { goto L_08A6AF78; } goto L_08A6AF4C; } L_08A6AF4C: { const bool branch_taken = 0u == 0u; ctx.gpr[21] = (0u | 1u); if (branch_taken) { goto L_08A6AF78; } goto L_08A6AF54; } L_08A6AF54: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6AF70; } goto L_08A6AF64; } L_08A6AF64: aot_gpr_4 = (16384u << 16u); { const bool branch_taken = 0u == 0u; ctx.fpr[22] = std::bit_cast(aot_gpr_4); if (branch_taken) { goto L_08A6AF78; } goto L_08A6AF70; } L_08A6AF70: aot_gpr_4 = (16256u << 16u); ctx.fpr[22] = std::bit_cast(aot_gpr_4); goto L_08A6AF78; L_08A6AF78: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6AFA0; } goto L_08A6AF88; } L_08A6AF88: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 8u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6AFA0; } goto L_08A6AF98; } L_08A6AF98: ctx.gpr[23] = (0u | 1u); ctx.gpr[21] = (0u | 0u); goto L_08A6AFA0; L_08A6AFA0: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(16); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(32); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_16 + static_cast(192)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); } ctx.execute_vfpu_vtfm_ct<0u, 36u, 7u, 3u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(96)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(16); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(32); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); } aot_gpr_4 = (ctx.gpr[17] + static_cast(192)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); } ctx.execute_vfpu_vtfm_ct<0u, 36u, 7u, 3u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(112)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 4u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); if (aot_gpr_4 == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); goto L_08A6B034; } goto L_08A6AFFC; L_08A6AFFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 8u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); if (aot_gpr_4 == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); goto L_08A6B034; } goto L_08A6B018; L_08A6B018: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(483)))))); aot_gpr_4 = (aot_gpr_4 & 2u); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6B080; } goto L_08A6B030; } L_08A6B030: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); goto L_08A6B034; L_08A6B034: aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 4u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6B088; } goto L_08A6B04C; } L_08A6B04C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 8u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6B088; } goto L_08A6B068; } L_08A6B068: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(483)))))); aot_gpr_4 = (aot_gpr_4 & 2u); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6B088; } goto L_08A6B080; } L_08A6B080: aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(24), std::bit_cast(aot_fpr_12)); goto L_08A6B088; L_08A6B088: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_5 = (aot_gpr_5 & 2048u); { const bool branch_taken = aot_gpr_5 != 0u; aot_gpr_4 = (0u | 0u); if (branch_taken) { goto L_08A6B0A8; } goto L_08A6B098; } L_08A6B098: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(76))); aot_gpr_5 = (aot_gpr_5 & 2048u); { const bool branch_taken = aot_gpr_5 == 0u; aot_gpr_4 = (aot_gpr_4 & 255u); if (branch_taken) { goto L_08A6B0B0; } goto L_08A6B0A8; } L_08A6B0A8: aot_gpr_4 = (0u | 1u); aot_gpr_4 = (aot_gpr_4 & 255u); goto L_08A6B0B0; L_08A6B0B0: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6BD44; } goto L_08A6B0B8; } L_08A6B0B8: { const bool branch_taken = ctx.gpr[23] != 0u; if (branch_taken) { goto L_08A6BD44; } goto L_08A6B0C0; } L_08A6B0C0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 8192u); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6B520; } goto L_08A6B0D8; } L_08A6B0D8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(144), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(20))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(148), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(152), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_gpr_16 + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(144)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[24] = std::bit_cast(aot_gpr_4); aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[24] < aot_fpr_12)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6B518; } goto L_08A6B120; } L_08A6B120: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 8u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6B170; } goto L_08A6B13C; } L_08A6B13C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6B438; } goto L_08A6B14C; } L_08A6B14C: aot_gpr_4 = (0u | 0u); aot_gpr_4 = (aot_gpr_4 & 1u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_6 = (0u + static_cast(-2049)); aot_gpr_5 = (aot_gpr_5 & aot_gpr_6); aot_gpr_4 = (aot_gpr_4 << 11u); aot_gpr_4 = (aot_gpr_5 | aot_gpr_4); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(72), aot_gpr_4); if (branch_taken) { goto L_08A6B438; } goto L_08A6B170; } L_08A6B170: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(208))); { const float fs = ctx.fpr[24]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(0), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(0), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(456))); aot_fpr_13 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_13)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6B2FC; } goto L_08A6B1A0; } L_08A6B1A0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(456))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_13)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6B2FC; } goto L_08A6B1B8; } L_08A6B1B8: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); ctx.gpr[7] = (static_cast(aot_gpr_5) < static_cast(ctx.gpr[7]) ? 1u : 0u); { const bool branch_taken = ctx.gpr[7] == 0u; aot_gpr_6 = (0u | 0u); if (branch_taken) { goto L_08A6B1DC; } goto L_08A6B1CC; } L_08A6B1CC: aot_gpr_5 = (aot_gpr_5 << 2u); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(24))); aot_gpr_5 = (aot_gpr_6 + aot_gpr_5); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); goto L_08A6B1DC; L_08A6B1DC: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast(16))); ctx.gpr[7] = (0u | 1u); if (aot_gpr_5 == ctx.gpr[7]) { ctx.gpr[7] = (aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(58))); goto L_08A6B204; } goto L_08A6B1EC; L_08A6B1EC: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast(16))); ctx.gpr[7] = (0u | 3u); if (aot_gpr_5 == ctx.gpr[7]) { ctx.gpr[7] = (aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(58))); goto L_08A6B204; } goto L_08A6B1FC; L_08A6B1FC: { const bool branch_taken = 0u == 0u; aot_gpr_5 = (0u | 0u); if (branch_taken) { goto L_08A6B228; } goto L_08A6B204; } L_08A6B204: ctx.gpr[7] = (ctx.gpr[7] & 8192u); { const bool branch_taken = ctx.gpr[7] != 0u; aot_gpr_5 = (0u | 0u); if (branch_taken) { goto L_08A6B220; } goto L_08A6B210; } L_08A6B210: aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(58))); aot_gpr_6 = (aot_gpr_6 & 16384u); { const bool branch_taken = aot_gpr_6 == 0u; aot_gpr_5 = (aot_gpr_5 & 255u); if (branch_taken) { goto L_08A6B228; } goto L_08A6B220; } L_08A6B220: aot_gpr_5 = (0u | 1u); aot_gpr_5 = (aot_gpr_5 & 255u); goto L_08A6B228; L_08A6B228: { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_08A6B270; } goto L_08A6B230; } L_08A6B230: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_5 = (aot_gpr_16 + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_5 = (aot_gpr_29 + static_cast(160)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(176), std::bit_cast(aot_fpr_13)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(180), std::bit_cast(aot_fpr_13)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(184), std::bit_cast(aot_fpr_13)); aot_gpr_6 = (aot_gpr_29 + static_cast(176)); aot_gpr_31 = (0x08A6B268u); ctx.gpr[7] = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0009. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 553u, 0x08A6B268u, 0x08829F60u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 186u, aot_mem); #else recomp_unit_0009_entry(rt, ctx, 186u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 186u, 0x08829F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B268u) goto L_08A6B268; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6B268: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6B438; } goto L_08A6B270; } L_08A6B270: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(236))); aot_gpr_5 = (aot_gpr_5 & 4u); { const bool branch_taken = aot_gpr_5 != 0u; if (branch_taken) { goto L_08A6B438; } goto L_08A6B280; } L_08A6B280: aot_gpr_5 = (0u | 0u); aot_gpr_5 = (aot_gpr_5 & 1u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); ctx.gpr[7] = (0u + static_cast(-2049)); aot_gpr_6 = (aot_gpr_6 & ctx.gpr[7]); aot_gpr_5 = (aot_gpr_5 << 11u); aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 << 8u); aot_gpr_6 = (aot_gpr_4 + aot_gpr_4); aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); aot_gpr_4 = (aot_gpr_4 << 5u); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_gpr_5 = (2238u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(-6992)); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(316))); aot_gpr_5 = (aot_gpr_5 + static_cast(2)); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(316), aot_gpr_5); aot_gpr_31 = (0x08A6B2D8u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B2D8u) goto L_08A6B2D8; AOT_REGCACHE_SYNC_OUT(); return; L_08A6B2D8: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_5 = (0u | 30u); { const std::int32_t dividend = static_cast(aot_gpr_4); const std::int32_t divisor = static_cast(aot_gpr_5); 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); } } aot_gpr_4 = (ctx.hi); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7904))); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_4 = (aot_gpr_4 + static_cast(30)); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7904), aot_gpr_4); if (branch_taken) { goto L_08A6B438; } goto L_08A6B2FC; } L_08A6B2FC: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); ctx.gpr[7] = (static_cast(aot_gpr_5) < static_cast(ctx.gpr[7]) ? 1u : 0u); { const bool branch_taken = ctx.gpr[7] == 0u; aot_gpr_6 = (0u | 0u); if (branch_taken) { goto L_08A6B320; } goto L_08A6B310; } L_08A6B310: aot_gpr_5 = (aot_gpr_5 << 2u); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(24))); aot_gpr_5 = (aot_gpr_6 + aot_gpr_5); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); goto L_08A6B320; L_08A6B320: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast(16))); ctx.gpr[7] = (0u | 1u); if (aot_gpr_5 == ctx.gpr[7]) { ctx.gpr[7] = (aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(58))); goto L_08A6B348; } goto L_08A6B330; L_08A6B330: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast(16))); ctx.gpr[7] = (0u | 3u); if (aot_gpr_5 == ctx.gpr[7]) { ctx.gpr[7] = (aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(58))); goto L_08A6B348; } goto L_08A6B340; L_08A6B340: { const bool branch_taken = 0u == 0u; aot_gpr_5 = (0u | 0u); if (branch_taken) { goto L_08A6B36C; } goto L_08A6B348; } L_08A6B348: ctx.gpr[7] = (ctx.gpr[7] & 8192u); { const bool branch_taken = ctx.gpr[7] != 0u; aot_gpr_5 = (0u | 0u); if (branch_taken) { goto L_08A6B364; } goto L_08A6B354; } L_08A6B354: aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(58))); aot_gpr_6 = (aot_gpr_6 & 16384u); { const bool branch_taken = aot_gpr_6 == 0u; aot_gpr_5 = (aot_gpr_5 & 255u); if (branch_taken) { goto L_08A6B36C; } goto L_08A6B364; } L_08A6B364: aot_gpr_5 = (0u | 1u); aot_gpr_5 = (aot_gpr_5 & 255u); goto L_08A6B36C; L_08A6B36C: { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_08A6B37C; } goto L_08A6B374; } L_08A6B374: aot_gpr_31 = (0x08A6B37Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0008. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 567u, 0x08A6B37Cu, 0x08827C4Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 578u, aot_mem); #else recomp_unit_0008_entry(rt, ctx, 578u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 578u, 0x08827C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B37Cu) goto L_08A6B37C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6B37C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(224))); aot_gpr_4 = (16256u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(224), std::bit_cast(aot_fpr_14)); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(20))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(228), std::bit_cast(aot_fpr_14)); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(232), std::bit_cast(aot_fpr_14)); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); aot_gpr_4 = (aot_gpr_29 + static_cast(224)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(208)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_5 = (std::bit_cast(aot_fpr_13)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_5); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(192)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(208))); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_5); ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 16u>(); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(240)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6B430; } goto L_08A6B40C; } L_08A6B40C: aot_gpr_4 = (aot_gpr_16 + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(240)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 0u>(); aot_gpr_5 = (aot_gpr_29 + static_cast(256)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A6B430u); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 569u, 0x08A6B430u, 0x08A666C0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B430u) goto L_08A6B430; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6B430: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0154_entry, 154u, 98u, 0x08A6CF68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return; } goto L_08A6B438; } L_08A6B438: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6B518; } goto L_08A6B448; } L_08A6B448: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(208))); { const float fs = ctx.fpr[24]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(0), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(0), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6B510; } goto L_08A6B470; } L_08A6B470: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(224))); aot_gpr_4 = (16256u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(336), std::bit_cast(aot_fpr_14)); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(20))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(340), std::bit_cast(aot_fpr_14)); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(344), std::bit_cast(aot_fpr_14)); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); aot_gpr_4 = (aot_gpr_29 + static_cast(336)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(320)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_5 = (std::bit_cast(aot_fpr_13)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_5); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(304)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(208))); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_5); ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 16u>(); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(288)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_5 = (aot_gpr_16 + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 0u>(); aot_gpr_5 = (aot_gpr_29 + static_cast(272)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A6B510u); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 573u, 0x08A6B510u, 0x08A666C0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B510u) goto L_08A6B510; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6B510: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0154_entry, 154u, 98u, 0x08A6CF68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return; } goto L_08A6B518; } L_08A6B518: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6BCEC; } goto L_08A6B520; } L_08A6B520: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(368), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(372), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(376), std::bit_cast(aot_fpr_12)); ctx.gpr[30] = (aot_gpr_29 + static_cast(368)); { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_16 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>(); ctx.gpr[30] = (aot_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[30] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; 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 = aot_gpr_29 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A6B56Cu); aot_gpr_6 = (aot_gpr_29 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 576u, 0x08A6B56Cu, 0x08A67154u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 639u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 639u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 639u, 0x08A67154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B56Cu) goto L_08A6B56C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6B56C: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(32)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(368), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(20))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(372), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(376), std::bit_cast(aot_fpr_12)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(368)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_13 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_13)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6BCEC; } goto L_08A6B5BC; } L_08A6B5BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 8u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6B664; } goto L_08A6B5D8; } L_08A6B5D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6BCEC; } goto L_08A6B5E8; } L_08A6B5E8: aot_gpr_4 = (0u | 0u); aot_gpr_4 = (aot_gpr_4 & 1u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_6 = (0u + static_cast(-2049)); aot_gpr_5 = (aot_gpr_5 & aot_gpr_6); aot_gpr_4 = (aot_gpr_4 << 11u); aot_gpr_4 = (aot_gpr_5 | aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(72), aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 << 8u); aot_gpr_6 = (aot_gpr_4 + aot_gpr_4); aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); aot_gpr_4 = (aot_gpr_4 << 5u); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_gpr_5 = (2238u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(-6992)); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(316))); aot_gpr_5 = (aot_gpr_5 + static_cast(2)); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(316), aot_gpr_5); aot_gpr_31 = (0x08A6B640u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B640u) goto L_08A6B640; AOT_REGCACHE_SYNC_OUT(); return; L_08A6B640: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_5 = (0u | 30u); { const std::int32_t dividend = static_cast(aot_gpr_4); const std::int32_t divisor = static_cast(aot_gpr_5); 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); } } aot_gpr_4 = (ctx.hi); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7904))); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_4 = (aot_gpr_4 + static_cast(30)); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7904), aot_gpr_4); if (branch_taken) { goto L_08A6BCEC; } goto L_08A6B664; } L_08A6B664: ctx.gpr[30] = (ctx.gpr[17] | 0u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(208))); aot_gpr_4 = (16256u << 16u); aot_fpr_14 = std::bit_cast(aot_gpr_4); aot_fpr_13 = aot_fpr_14 / aot_fpr_13; { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(96)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(400)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(416), std::bit_cast(ctx.fpr[15])); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(20))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(420), std::bit_cast(ctx.fpr[15])); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(424), std::bit_cast(ctx.fpr[15])); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(416)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<2u, 4u>(vfpu_value); } ctx.execute_vfpu_cross_quat_ct<0u, 1u, 2u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(384)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[15] = std::bit_cast(aot_gpr_4); ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(212))); ctx.fpr[15] = ctx.fpr[15] / ctx.fpr[16]; aot_fpr_13 = aot_fpr_13 + ctx.fpr[15]; aot_fpr_13 = aot_fpr_14 / aot_fpr_13; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_4 = (aot_gpr_4 & 2u); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6B708; } goto L_08A6B6F8; } L_08A6B6F8: { const float fs = aot_fpr_13; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(0), std::bit_cast(aot_fpr_12)); if (branch_taken) { goto L_08A6B728; } goto L_08A6B708; } L_08A6B708: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(224))); aot_gpr_4 = (16256u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_4); aot_fpr_14 = aot_fpr_14 + ctx.fpr[15]; { const float fs = aot_fpr_14; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(0), std::bit_cast(aot_fpr_12)); goto L_08A6B728; L_08A6B728: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(0), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[30] + static_cast(473))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6B82C; } goto L_08A6B73C; } L_08A6B73C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_4 = (16800u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_13)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6B82C; } goto L_08A6B758; } L_08A6B758: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A6B768u); aot_gpr_5 = (ctx.gpr[18] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0009. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 587u, 0x08A6B768u, 0x0882BFC8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); #else recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 482u, 0x0882BFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B768u) goto L_08A6B768; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6B768: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 512u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6B82C; } goto L_08A6B778; } L_08A6B778: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6B824; } goto L_08A6B788; } L_08A6B788: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(464), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(20))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(468), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(472), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (15948u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); aot_gpr_4 = (aot_gpr_29 + static_cast(464)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(448)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_5 = (std::bit_cast(aot_fpr_13)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_5); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(432)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(64)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(64), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } aot_gpr_31 = (0x08A6B804u); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 590u, 0x08A6B804u, 0x08A66CD8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B804u) goto L_08A6B804; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6B804: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(64), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); ctx.fpr[15] = std::bit_cast(aot_run_words[0]); ctx.fpr[16] = std::bit_cast(aot_run_words[1]); ctx.fpr[17] = std::bit_cast(aot_run_words[2]); } aot_gpr_31 = (0x08A6B824u); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 591u, 0x08A6B824u, 0x08A66E08u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B824u) goto L_08A6B824; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6B824: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0154_entry, 154u, 98u, 0x08A6CF68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return; } goto L_08A6B82C; } L_08A6B82C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(456))); aot_fpr_13 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_13)) ? 0x00800000u : 0u); if (((ctx.fcr31 & 0x00800000u) != 0u)) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); goto L_08A6B860; } goto L_08A6B844; L_08A6B844: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(456))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_13)) ? 0x00800000u : 0u); if (!((ctx.fcr31 & 0x00800000u) != 0u)) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(236))); goto L_08A6B878; } goto L_08A6B85C; L_08A6B85C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); goto L_08A6B860; L_08A6B860: aot_gpr_4 = (aot_gpr_4 & 16384u); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6BB5C; } goto L_08A6B874; } L_08A6B874: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(236))); goto L_08A6B878; L_08A6B878: aot_gpr_4 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6BB5C; } goto L_08A6B884; } L_08A6B884: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[30] + static_cast(86)))))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); aot_gpr_6 = (static_cast(aot_gpr_4) < static_cast(aot_gpr_6) ? 1u : 0u); { const bool branch_taken = aot_gpr_6 == 0u; aot_gpr_5 = (0u | 0u); if (branch_taken) { goto L_08A6B8A8; } goto L_08A6B898; } L_08A6B898: aot_gpr_4 = (aot_gpr_4 << 2u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(24))); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); goto L_08A6B8A8; L_08A6B8A8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(16))); aot_gpr_6 = (0u | 1u); if (aot_gpr_4 == aot_gpr_6) { aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(58))); goto L_08A6B8D0; } goto L_08A6B8B8; L_08A6B8B8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(16))); aot_gpr_6 = (0u | 3u); if (aot_gpr_4 == aot_gpr_6) { aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(58))); goto L_08A6B8D0; } goto L_08A6B8C8; L_08A6B8C8: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (0u | 0u); if (branch_taken) { goto L_08A6B8F4; } goto L_08A6B8D0; } L_08A6B8D0: aot_gpr_6 = (aot_gpr_6 & 8192u); { const bool branch_taken = aot_gpr_6 != 0u; aot_gpr_4 = (0u | 0u); if (branch_taken) { goto L_08A6B8EC; } goto L_08A6B8DC; } L_08A6B8DC: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(58))); aot_gpr_5 = (aot_gpr_5 & 16384u); { const bool branch_taken = aot_gpr_5 == 0u; aot_gpr_4 = (aot_gpr_4 & 255u); if (branch_taken) { goto L_08A6B8F4; } goto L_08A6B8EC; } L_08A6B8EC: aot_gpr_4 = (0u | 1u); aot_gpr_4 = (aot_gpr_4 & 255u); goto L_08A6B8F4; L_08A6B8F4: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6B940; } goto L_08A6B8FC; } L_08A6B8FC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_4 = (aot_gpr_16 + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_5 = (aot_gpr_29 + static_cast(480)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(496), std::bit_cast(aot_fpr_13)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(500), std::bit_cast(aot_fpr_13)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(504), std::bit_cast(aot_fpr_13)); aot_gpr_6 = (aot_gpr_29 + static_cast(496)); aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A6B938u); ctx.gpr[7] = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0009. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 608u, 0x08A6B938u, 0x08829F60u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 186u, aot_mem); #else recomp_unit_0009_entry(rt, ctx, 186u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 186u, 0x08829F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B938u) goto L_08A6B938; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6B938: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6B970; } goto L_08A6B940; } L_08A6B940: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6B970; } goto L_08A6B950; } L_08A6B950: aot_gpr_4 = (0u | 0u); aot_gpr_4 = (aot_gpr_4 & 1u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(72))); aot_gpr_6 = (0u + static_cast(-2049)); aot_gpr_5 = (aot_gpr_5 & aot_gpr_6); aot_gpr_4 = (aot_gpr_4 << 11u); aot_gpr_4 = (aot_gpr_5 | aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[30] + static_cast(72), aot_gpr_4); goto L_08A6B970; L_08A6B970: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(76))); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_08A6BA20; } goto L_08A6B984; } L_08A6B984: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(482)))))); aot_gpr_4 = (aot_gpr_4 & 64u); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6BA20; } goto L_08A6B99C; } L_08A6B99C: aot_gpr_4 = (ctx.gpr[17] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[30] = (aot_gpr_29 + static_cast(512)); { 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); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A6B9B4u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(520))); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B61B60, 215u, 341u, 0x08B61B60u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], aot_gpr_29, aot_gpr_31, aot_fpr_12); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0215_entry, 215u, 341u, 0x08B61B60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B9B4u) goto L_08A6B9B4; AOT_REGCACHE_SYNC_OUT(); return; L_08A6B9B4: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5692))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5696))); aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08A6B9C8u); aot_gpr_4 = (ctx.gpr[2] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0215. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 615u, 0x08A6B9C8u, 0x08B61F5Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); #else recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B9C8u) goto L_08A6B9C8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6B9C8: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08A6B9D4u); aot_gpr_4 = (ctx.gpr[2] | 0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B627F0, 215u, 515u, 0x08B627F0u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0215_entry, 215u, 515u, 0x08B627F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B9D4u) goto L_08A6B9D4; AOT_REGCACHE_SYNC_OUT(); return; L_08A6B9D4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(520), std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (0u | 5u); aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A6B9E8u); aot_gpr_6 = (0u | 1u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0079. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 617u, 0x08A6B9E8u, 0x08941D04u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 280u, aot_mem); #else recomp_unit_0079_entry(rt, ctx, 280u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 280u, 0x08941D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B9E8u) goto L_08A6B9E8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6B9E8: aot_gpr_4 = (0u | 6u); aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A6B9F8u); aot_gpr_6 = (0u | 1u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0079. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 618u, 0x08A6B9F8u, 0x08941D04u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 280u, aot_mem); #else recomp_unit_0079_entry(rt, ctx, 280u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 280u, 0x08941D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B9F8u) goto L_08A6B9F8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6B9F8: aot_gpr_4 = (0u | 1u); aot_gpr_4 = (aot_gpr_4 & 1u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(482)))))); aot_gpr_6 = (0u + static_cast(-65)); aot_gpr_5 = (aot_gpr_5 & aot_gpr_6); aot_gpr_4 = (aot_gpr_4 << 6u); aot_gpr_4 = (aot_gpr_5 | aot_gpr_4); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(482), static_cast(aot_gpr_4)); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6BCEC; } goto L_08A6BA20; } L_08A6BA20: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(42))); if (aot_gpr_4 == aot_gpr_5) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(482)))))); goto L_08A6BA4C; } goto L_08A6BA34; L_08A6BA34: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(44))); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_08A6BAB8; } goto L_08A6BA48; } L_08A6BA48: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(482)))))); goto L_08A6BA4C; L_08A6BA4C: aot_gpr_4 = (aot_gpr_4 & 64u); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6BAB8; } goto L_08A6BA60; } L_08A6BA60: aot_gpr_4 = (ctx.gpr[17] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[30] = (aot_gpr_29 + static_cast(528)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A6BA78u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6BA78u) goto L_08A6BA78; AOT_REGCACHE_SYNC_OUT(); return; L_08A6BA78: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_5 = (0u | 100u); { const std::int32_t dividend = static_cast(aot_gpr_4); const std::int32_t divisor = static_cast(aot_gpr_5); 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); } } aot_gpr_5 = (ctx.hi); aot_gpr_31 = (0x08A6BA90u); aot_gpr_4 = (ctx.gpr[30] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0059. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 625u, 0x08A6BA90u, 0x088F36B8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 682u, aot_mem); #else recomp_unit_0059_entry(rt, ctx, 682u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 682u, 0x088F36B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6BA90u) goto L_08A6BA90; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6BA90: aot_gpr_4 = (0u | 1u); aot_gpr_4 = (aot_gpr_4 & 1u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(482)))))); aot_gpr_6 = (0u + static_cast(-65)); aot_gpr_5 = (aot_gpr_5 & aot_gpr_6); aot_gpr_4 = (aot_gpr_4 << 6u); aot_gpr_4 = (aot_gpr_5 | aot_gpr_4); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(482), static_cast(aot_gpr_4)); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6BCEC; } goto L_08A6BAB8; } L_08A6BAB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 8u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6BCEC; } goto L_08A6BAD4; } L_08A6BAD4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(32)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); jump_target = aot_gpr_5; aot_gpr_31 = (0x08A6BAECu); aot_gpr_4 = (ctx.gpr[17] + aot_gpr_4); ctx.pc = jump_target; if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6BAECu) goto L_08A6BAEC; AOT_REGCACHE_SYNC_OUT(); return; L_08A6BAEC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { goto L_08A6BCEC; } goto L_08A6BAF4; } L_08A6BAF4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(138))); { const bool branch_taken = aot_gpr_4 == aot_gpr_5; if (branch_taken) { goto L_08A6BB28; } goto L_08A6BB08; } L_08A6BB08: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(190))); { const bool branch_taken = aot_gpr_4 == aot_gpr_5; if (branch_taken) { goto L_08A6BB28; } goto L_08A6BB18; } L_08A6BB18: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(192))); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; aot_gpr_4 = (0u | 0u); if (branch_taken) { goto L_08A6BB30; } goto L_08A6BB28; } L_08A6BB28: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (0u | 1u); if (branch_taken) { goto L_08A6BB30; } goto L_08A6BB30; } L_08A6BB30: { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6BCEC; } goto L_08A6BB38; } L_08A6BB38: aot_gpr_4 = (0u | 1u); aot_gpr_4 = (aot_gpr_4 & 1u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(482)))))); aot_gpr_6 = (0u + static_cast(-65)); aot_gpr_5 = (aot_gpr_5 & aot_gpr_6); aot_gpr_4 = (aot_gpr_4 << 6u); aot_gpr_4 = (aot_gpr_5 | aot_gpr_4); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(482), static_cast(aot_gpr_4)); if (branch_taken) { goto L_08A6BCEC; } goto L_08A6BB5C; } L_08A6BB5C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[30] + static_cast(86)))))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); aot_gpr_6 = (static_cast(aot_gpr_4) < static_cast(aot_gpr_6) ? 1u : 0u); { const bool branch_taken = aot_gpr_6 == 0u; aot_gpr_5 = (0u | 0u); if (branch_taken) { goto L_08A6BB80; } goto L_08A6BB70; } L_08A6BB70: aot_gpr_4 = (aot_gpr_4 << 2u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(24))); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); goto L_08A6BB80; L_08A6BB80: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(16))); aot_gpr_6 = (0u | 1u); if (aot_gpr_4 == aot_gpr_6) { aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(58))); goto L_08A6BBA8; } goto L_08A6BB90; L_08A6BB90: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(16))); aot_gpr_6 = (0u | 3u); if (aot_gpr_4 == aot_gpr_6) { aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(58))); goto L_08A6BBA8; } goto L_08A6BBA0; L_08A6BBA0: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (0u | 0u); if (branch_taken) { goto L_08A6BBCC; } goto L_08A6BBA8; } L_08A6BBA8: aot_gpr_6 = (aot_gpr_6 & 8192u); { const bool branch_taken = aot_gpr_6 != 0u; aot_gpr_4 = (0u | 0u); if (branch_taken) { goto L_08A6BBC4; } goto L_08A6BBB4; } L_08A6BBB4: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(58))); aot_gpr_5 = (aot_gpr_5 & 16384u); { const bool branch_taken = aot_gpr_5 == 0u; aot_gpr_4 = (aot_gpr_4 & 255u); if (branch_taken) { goto L_08A6BBCC; } goto L_08A6BBC4; } L_08A6BBC4: aot_gpr_4 = (0u | 1u); aot_gpr_4 = (aot_gpr_4 & 255u); goto L_08A6BBCC; L_08A6BBCC: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6BBE0; } goto L_08A6BBD4; } L_08A6BBD4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_31 = (0x08A6BBE0u); aot_gpr_4 = (ctx.gpr[30] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0008. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 645u, 0x08A6BBE0u, 0x08827C4Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 578u, aot_mem); #else recomp_unit_0008_entry(rt, ctx, 578u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 578u, 0x08827C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6BBE0u) goto L_08A6BBE0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6BBE0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(560), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(20))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(564), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(568), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); aot_gpr_4 = (aot_gpr_29 + static_cast(560)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(544)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(64)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 4u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6BC78; } goto L_08A6BC40; } L_08A6BC40: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); aot_gpr_4 = (16179u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); aot_fpr_13 = std::bit_cast(aot_gpr_4); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_13)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6BC78; } goto L_08A6BC60; } L_08A6BC60: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (16025u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); aot_fpr_13 = std::bit_cast(aot_gpr_4); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), std::bit_cast(aot_fpr_12)); goto L_08A6BC78; L_08A6BC78: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6BCE4; } goto L_08A6BC88; } L_08A6BC88: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(64), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } aot_gpr_31 = (0x08A6BC9Cu); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 650u, 0x08A6BC9Cu, 0x08A66CD8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6BC9Cu) goto L_08A6BC9C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6BC9C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 4u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6BCC4; } goto L_08A6BCB8; } L_08A6BCB8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(8421))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6BCE4; } goto L_08A6BCC4; } L_08A6BCC4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(64), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); ctx.fpr[15] = std::bit_cast(aot_run_words[0]); ctx.fpr[16] = std::bit_cast(aot_run_words[1]); ctx.fpr[17] = std::bit_cast(aot_run_words[2]); } aot_gpr_31 = (0x08A6BCE4u); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 653u, 0x08A6BCE4u, 0x08A66E08u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6BCE4u) goto L_08A6BCE4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6BCE4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0154_entry, 154u, 98u, 0x08A6CF68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return; } goto L_08A6BCEC; } L_08A6BCEC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_5 = (aot_gpr_5 & 2048u); { const bool branch_taken = aot_gpr_5 != 0u; aot_gpr_4 = (0u | 0u); if (branch_taken) { goto L_08A6BD0C; } goto L_08A6BCFC; } L_08A6BCFC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(76))); aot_gpr_5 = (aot_gpr_5 & 2048u); { const bool branch_taken = aot_gpr_5 == 0u; aot_gpr_4 = (aot_gpr_4 & 255u); if (branch_taken) { goto L_08A6BD14; } goto L_08A6BD0C; } L_08A6BD0C: aot_gpr_4 = (0u | 1u); aot_gpr_4 = (aot_gpr_4 & 255u); goto L_08A6BD14; L_08A6BD14: { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6BD3C; } goto L_08A6BD1C; } L_08A6BD1C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6BD44; } goto L_08A6BD2C; } L_08A6BD2C: aot_gpr_31 = (0x08A6BD34u); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 660u, 0x08A6BD34u, 0x08A66048u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6BD34u) goto L_08A6BD34; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6BD34: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6BD44; } goto L_08A6BD3C; } L_08A6BD3C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0154_entry, 154u, 98u, 0x08A6CF68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return; } goto L_08A6BD44; } L_08A6BD44: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 8192u); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6BFF4; } goto L_08A6BD5C; } L_08A6BD5C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 8192u); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6BFF4; } goto L_08A6BD74; } L_08A6BD74: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(576), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(20))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(580), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(584), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_gpr_16 + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(576)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>(); aot_gpr_5 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_14 = std::bit_cast(aot_gpr_5); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(576), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(20))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(580), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(584), std::bit_cast(aot_fpr_12)); aot_gpr_5 = (ctx.gpr[17] + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[26] = std::bit_cast(aot_gpr_4); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(208))); ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(208))); ctx.gpr[21] = (0u | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 6u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6BE38; } goto L_08A6BE00; } L_08A6BE00: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); aot_gpr_5 = (0u | 11u); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_08A6BE38; } goto L_08A6BE10; } L_08A6BE10: aot_gpr_4 = (16384u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); { const float fs = aot_fpr_13; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } { const float fs = aot_fpr_12; const float ft = aot_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; } { const float fs = ctx.fpr[24]; const float ft = ctx.fpr[26]; 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[22] = ctx.fpr[15] + ctx.fpr[16]; aot_fpr_12 = aot_fpr_12 + ctx.fpr[24]; ctx.fpr[22] = ctx.fpr[22] / aot_fpr_12; { const bool branch_taken = 0u == 0u; ctx.gpr[21] = (0u | 1u); if (branch_taken) { goto L_08A6BE58; } goto L_08A6BE38; } L_08A6BE38: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[26] < aot_fpr_12)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6BE54; } goto L_08A6BE4C; } L_08A6BE4C: { const bool branch_taken = 0u == 0u; ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[26])); if (branch_taken) { goto L_08A6BE58; } goto L_08A6BE54; } L_08A6BE54: ctx.fpr[22] = std::bit_cast(0u); goto L_08A6BE58; L_08A6BE58: aot_fpr_12 = aot_fpr_14 - ctx.fpr[22]; ctx.fpr[15] = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[15])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6BFEC; } goto L_08A6BE70; } L_08A6BE70: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(224))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(224))); aot_fpr_20 = aot_fpr_12 + ctx.fpr[15]; aot_gpr_4 = (16128u << 16u); ctx.fpr[16] = std::bit_cast(aot_gpr_4); { const float fs = aot_fpr_20; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_4 = (aot_gpr_4 & 2u); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6BEA8; } goto L_08A6BEA0; } L_08A6BEA0: { const bool branch_taken = 0u == 0u; aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); if (branch_taken) { goto L_08A6BEB4; } goto L_08A6BEA8; } L_08A6BEA8: aot_fpr_12 = ctx.fpr[22] - aot_fpr_14; { const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = aot_fpr_12 + ctx.fpr[22]; goto L_08A6BEB4; L_08A6BEB4: aot_fpr_12 = aot_fpr_12 - aot_fpr_14; { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(0), std::bit_cast(aot_fpr_12)); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(608), std::bit_cast(ctx.fpr[15])); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(20))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(612), std::bit_cast(ctx.fpr[15])); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(616), std::bit_cast(ctx.fpr[15])); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); aot_gpr_4 = (aot_gpr_29 + static_cast(608)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(592)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(64)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6BF24; } goto L_08A6BF10; } L_08A6BF10: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(64), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } aot_gpr_31 = (0x08A6BF24u); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 676u, 0x08A6BF24u, 0x08A66CD8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6BF24u) goto L_08A6BF24; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6BF24: { const bool branch_taken = ctx.gpr[21] == 0u; if (branch_taken) { goto L_08A6BFE4; } goto L_08A6BF2C; } L_08A6BF2C: aot_fpr_12 = ctx.fpr[26] - ctx.fpr[22]; aot_fpr_13 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_13)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_08A6BFE4; } goto L_08A6BF44; } L_08A6BF44: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(76))); aot_gpr_4 = (aot_gpr_4 & 2u); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_08A6BF64; } goto L_08A6BF5C; } L_08A6BF5C: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_08A6BF70; } goto L_08A6BF64; } L_08A6BF64: aot_fpr_12 = ctx.fpr[22] - ctx.fpr[26]; { const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } ctx.fpr[22] = aot_fpr_12 + ctx.fpr[22]; goto L_08A6BF70; L_08A6BF70: aot_fpr_12 = ctx.fpr[26] - ctx.fpr[22]; { const float fs = aot_fpr_12; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(0), std::bit_cast(aot_fpr_12)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(640), std::bit_cast(aot_fpr_13)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(20))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(644), std::bit_cast(aot_fpr_13)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(648), std::bit_cast(aot_fpr_13)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); aot_gpr_4 = (aot_gpr_29 + static_cast(640)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(624)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(80)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_08A6BFE4; } goto L_08A6BFD0; } L_08A6BFD0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } aot_gpr_31 = (0x08A6BFE4u); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 683u, 0x08A6BFE4u, 0x08A66CD8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); #else recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6BFE4u) goto L_08A6BFE4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_08A6BFE4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0154_entry, 154u, 98u, 0x08A6CF68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return; } goto L_08A6BFEC; } L_08A6BFEC: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0154_entry, 154u, 98u, 0x08A6CF68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return; } goto L_08A6BFF4; } L_08A6BFF4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 8192u); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); ctx.pc = 0x08A6C000u; AOT_REGCACHE_SYNC_OUT(); return; } #undef AOT_REGCACHE_SYNC_IN #undef AOT_REGCACHE_SYNC_OUT void recomp_unit_0153(Runtime &rt, AllegrexContext &ctx) { auto aot_mem = rt.memory().aot_fast_view(); recomp_unit_0153_entry(rt, ctx, 0u, aot_mem); } void register_generated_unit_153(Runtime &runtime) { runtime.register_generated_unit(153u, 0x08A68000u, 16384u, &recomp_unit_0153, &recomp_unit_0153_entry); // PSPRECOMP_V812_COMPACT_REGISTRATION: same entry set, looped once in Runtime instead of source-expanded calls. runtime.register_generated_entry_mask(0x08A68000u, &recomp_unit_0153, "recomp_unit_0153", kEntryMasks_recomp_unit_0153, 64u); } } // namespace psprecomp