#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_0018[64] = { 0x4100108000040001ull, 0x4008100408024000ull, 0x0148044544550000ull, 0x020800840000A000ull, 0x4550002020401200ull, 0x9282A80080008014ull, 0x0A5021080900056Aull, 0x8000100002009091ull, 0x4010AC8504094908ull, 0x5204A84008024424ull, 0x042A200049055528ull, 0x0810A11122244840ull, 0x5100000135C88801ull, 0x1514065804025148ull, 0x00056288C888430Aull, 0x8011085144510002ull, 0x4056000294888000ull, 0x0320A208042A4444ull, 0x080080200A201411ull, 0x4000A52220009488ull, 0x10224142A4444054ull, 0x2820080000222801ull, 0x05228808A8020235ull, 0x1108090908102382ull, 0x1000000000231108ull, 0x0022020AA22202B5ull, 0x0404828820085622ull, 0x4028220440044440ull, 0x8080000020010004ull, 0x0000002000808800ull, 0x88082A88880AC000ull, 0x4091120241021544ull, 0x0000244002200A08ull, 0xA880000000010008ull, 0x4400440415488880ull, 0x4440040482042A24ull, 0x0004450022044004ull, 0x0000200080002001ull, 0x0415444405600000ull, 0x48890120810AA244ull, 0x0002440088A00420ull, 0x06E1550122500080ull, 0x0002010000000042ull, 0x540814B54AA95510ull, 0x2800500008001022ull, 0x2A90100201025290ull, 0x0000C502252AAA80ull, 0x0204C5252AAA10A5ull, 0x0000500000240000ull, 0x8480000120000120ull, 0x0008080900104100ull, 0x2910A90024912441ull, 0x0000400044148A85ull, 0x15001480A800A405ull, 0x8521400520A800A4ull, 0x0080125254985214ull, 0x8002245429080008ull, 0x2142944A2629A486ull, 0x98A6921A00112321ull, 0x28000100210A5128ull, 0x0004AA4806140005ull, 0x8520C2A400012D10ull, 0x922AA48A0200C2A0ull, 0x549195491524528Aull, }; static constexpr std::uint16_t kEntryBases_recomp_unit_0018[64] = { 1u, 7u, 14u, 27u, 33u, 43u, 55u, 70u, 78u, 94u, 108u, 124u, 138u, 152u, 169u, 186u, 199u, 211u, 226u, 236u, 249u, 265u, 274u, 290u, 304u, 311u, 327u, 341u, 352u, 357u, 361u, 375u, 390u, 398u, 404u, 417u, 430u, 439u, 443u, 455u, 471u, 480u, 496u, 500u, 523u, 531u, 545u, 561u, 582u, 586u, 593u, 600u, 617u, 628u, 642u, 657u, 674u, 686u, 708u, 728u, 740u, 753u, 769u, 787u, }; void recomp_unit_0018_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,29,5,16,31,6 fprs=12,13,20,14 gpr_occ=3754 fpr_occ=1026 gpr_total=5241 fpr_total=1186 std::uint32_t aot_gpr_4 = ctx.gpr[4]; std::uint32_t aot_gpr_29 = ctx.gpr[29]; std::uint32_t aot_gpr_5 = ctx.gpr[5]; std::uint32_t aot_gpr_16 = ctx.gpr[16]; std::uint32_t aot_gpr_31 = ctx.gpr[31]; std::uint32_t aot_gpr_6 = ctx.gpr[6]; 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[29] = aot_gpr_29; ctx.gpr[5] = aot_gpr_5; ctx.gpr[16] = aot_gpr_16; ctx.gpr[31] = aot_gpr_31; ctx.gpr[6] = aot_gpr_6; 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_29 = ctx.gpr[29]; aot_gpr_5 = ctx.gpr[5]; aot_gpr_16 = ctx.gpr[16]; aot_gpr_31 = ctx.gpr[31]; aot_gpr_6 = ctx.gpr[6]; 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 - 0x0884C000u; entry_id = 0u; if (entry_delta < 16380u && (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_0018[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_0018[entry_group] + std::popcount(entry_mask & (entry_bit - 1ull))); } } } switch (entry_id) { case 1u: goto L_0884C000; case 2u: goto L_0884C048; case 3u: goto L_0884C09C; case 4u: goto L_0884C0B0; case 5u: goto L_0884C0E0; case 6u: goto L_0884C0F8; case 7u: goto L_0884C138; case 8u: goto L_0884C144; case 9u: goto L_0884C16C; case 10u: goto L_0884C188; case 11u: goto L_0884C1B0; case 12u: goto L_0884C1CC; case 13u: goto L_0884C1F8; case 14u: goto L_0884C240; case 15u: goto L_0884C248; case 16u: goto L_0884C250; case 17u: goto L_0884C258; case 18u: goto L_0884C268; case 19u: goto L_0884C278; case 20u: goto L_0884C280; case 21u: goto L_0884C288; case 22u: goto L_0884C298; case 23u: goto L_0884C2A8; case 24u: goto L_0884C2CC; case 25u: goto L_0884C2D8; case 26u: goto L_0884C2E0; case 27u: goto L_0884C334; case 28u: goto L_0884C33C; case 29u: goto L_0884C388; case 30u: goto L_0884C39C; case 31u: goto L_0884C3CC; case 32u: goto L_0884C3E4; case 33u: goto L_0884C424; case 34u: goto L_0884C430; case 35u: goto L_0884C458; case 36u: goto L_0884C474; case 37u: goto L_0884C494; case 38u: goto L_0884C4D0; case 39u: goto L_0884C4D8; case 40u: goto L_0884C4E0; case 41u: goto L_0884C4E8; case 42u: goto L_0884C4F8; case 43u: goto L_0884C508; case 44u: goto L_0884C510; case 45u: goto L_0884C53C; case 46u: goto L_0884C57C; case 47u: goto L_0884C5AC; case 48u: goto L_0884C5B4; case 49u: goto L_0884C5BC; case 50u: goto L_0884C5C4; case 51u: goto L_0884C5DC; case 52u: goto L_0884C5E4; case 53u: goto L_0884C5F0; case 54u: goto L_0884C5FC; case 55u: goto L_0884C604; case 56u: goto L_0884C60C; case 57u: goto L_0884C614; case 58u: goto L_0884C618; case 59u: goto L_0884C620; case 60u: goto L_0884C628; case 61u: goto L_0884C660; case 62u: goto L_0884C66C; case 63u: goto L_0884C68C; case 64u: goto L_0884C6A0; case 65u: goto L_0884C6B4; case 66u: goto L_0884C6D0; case 67u: goto L_0884C6D8; case 68u: goto L_0884C6E4; case 69u: goto L_0884C6EC; case 70u: goto L_0884C700; case 71u: goto L_0884C710; case 72u: goto L_0884C71C; case 73u: goto L_0884C730; case 74u: goto L_0884C73C; case 75u: goto L_0884C764; case 76u: goto L_0884C7B0; case 77u: goto L_0884C7FC; case 78u: goto L_0884C80C; case 79u: goto L_0884C820; case 80u: goto L_0884C82C; case 81u: goto L_0884C838; case 82u: goto L_0884C840; case 83u: goto L_0884C84C; case 84u: goto L_0884C868; case 85u: goto L_0884C880; case 86u: goto L_0884C888; case 87u: goto L_0884C89C; case 88u: goto L_0884C8A8; case 89u: goto L_0884C8AC; case 90u: goto L_0884C8B4; case 91u: goto L_0884C8BC; case 92u: goto L_0884C8D0; case 93u: goto L_0884C8F8; case 94u: goto L_0884C908; case 95u: goto L_0884C914; case 96u: goto L_0884C928; case 97u: goto L_0884C938; case 98u: goto L_0884C944; case 99u: goto L_0884C96C; case 100u: goto L_0884C998; case 101u: goto L_0884C9AC; case 102u: goto L_0884C9B4; case 103u: goto L_0884C9BC; case 104u: goto L_0884C9C8; case 105u: goto L_0884C9E4; case 106u: goto L_0884C9F0; case 107u: goto L_0884C9F8; case 108u: goto L_0884CA0C; case 109u: goto L_0884CA14; case 110u: goto L_0884CA20; case 111u: goto L_0884CA28; case 112u: goto L_0884CA30; case 113u: goto L_0884CA38; case 114u: goto L_0884CA40; case 115u: goto L_0884CA48; case 116u: goto L_0884CA60; case 117u: goto L_0884CA6C; case 118u: goto L_0884CA78; case 119u: goto L_0884CAB4; case 120u: goto L_0884CAC4; case 121u: goto L_0884CACC; case 122u: goto L_0884CAD4; case 123u: goto L_0884CAE8; case 124u: goto L_0884CB18; case 125u: goto L_0884CB2C; case 126u: goto L_0884CB38; case 127u: goto L_0884CB48; case 128u: goto L_0884CB54; case 129u: goto L_0884CB64; case 130u: goto L_0884CB74; case 131u: goto L_0884CB80; case 132u: goto L_0884CB90; case 133u: goto L_0884CBA0; case 134u: goto L_0884CBB4; case 135u: goto L_0884CBBC; case 136u: goto L_0884CBD0; case 137u: goto L_0884CBEC; case 138u: goto L_0884CC00; case 139u: goto L_0884CC2C; case 140u: goto L_0884CC3C; case 141u: goto L_0884CC4C; case 142u: goto L_0884CC58; case 143u: goto L_0884CC5C; case 144u: goto L_0884CC60; case 145u: goto L_0884CC68; case 146u: goto L_0884CC70; case 147u: goto L_0884CC74; case 148u: goto L_0884CC80; case 149u: goto L_0884CCE0; case 150u: goto L_0884CCF0; case 151u: goto L_0884CCF8; case 152u: goto L_0884CD0C; case 153u: goto L_0884CD18; case 154u: goto L_0884CD20; case 155u: goto L_0884CD30; case 156u: goto L_0884CD38; case 157u: goto L_0884CD44; case 158u: goto L_0884CD68; case 159u: goto L_0884CD8C; case 160u: goto L_0884CD90; case 161u: goto L_0884CD98; case 162u: goto L_0884CDA4; case 163u: goto L_0884CDA8; case 164u: goto L_0884CDC8; case 165u: goto L_0884CDD0; case 166u: goto L_0884CDE0; case 167u: goto L_0884CDE8; case 168u: goto L_0884CDF0; case 169u: goto L_0884CE04; case 170u: goto L_0884CE0C; case 171u: goto L_0884CE20; case 172u: goto L_0884CE24; case 173u: goto L_0884CE38; case 174u: goto L_0884CE4C; case 175u: goto L_0884CE5C; case 176u: goto L_0884CE6C; case 177u: goto L_0884CE78; case 178u: goto L_0884CE7C; case 179u: goto L_0884CE8C; case 180u: goto L_0884CE9C; case 181u: goto L_0884CEA4; case 182u: goto L_0884CEB4; case 183u: goto L_0884CEB8; case 184u: goto L_0884CEC0; case 185u: goto L_0884CEC8; case 186u: goto L_0884CF04; case 187u: goto L_0884CF40; case 188u: goto L_0884CF50; case 189u: goto L_0884CF58; case 190u: goto L_0884CF68; case 191u: goto L_0884CF78; case 192u: goto L_0884CF80; case 193u: goto L_0884CF90; case 194u: goto L_0884CF98; case 195u: goto L_0884CFAC; case 196u: goto L_0884CFC0; case 197u: goto L_0884CFD0; case 198u: goto L_0884CFFC; case 199u: goto L_0884D03C; case 200u: goto L_0884D04C; case 201u: goto L_0884D05C; case 202u: goto L_0884D068; case 203u: goto L_0884D070; case 204u: goto L_0884D07C; case 205u: goto L_0884D084; case 206u: goto L_0884D0C4; case 207u: goto L_0884D0C8; case 208u: goto L_0884D0D0; case 209u: goto L_0884D0D8; case 210u: goto L_0884D0F8; case 211u: goto L_0884D108; case 212u: goto L_0884D118; case 213u: goto L_0884D128; case 214u: goto L_0884D138; case 215u: goto L_0884D144; case 216u: goto L_0884D14C; case 217u: goto L_0884D154; case 218u: goto L_0884D168; case 219u: goto L_0884D18C; case 220u: goto L_0884D1A4; case 221u: goto L_0884D1B4; case 222u: goto L_0884D1BC; case 223u: goto L_0884D1D4; case 224u: goto L_0884D1E0; case 225u: goto L_0884D1E4; case 226u: goto L_0884D200; case 227u: goto L_0884D210; case 228u: goto L_0884D228; case 229u: goto L_0884D230; case 230u: goto L_0884D254; case 231u: goto L_0884D264; case 232u: goto L_0884D26C; case 233u: goto L_0884D294; case 234u: goto L_0884D2BC; case 235u: goto L_0884D2EC; case 236u: goto L_0884D30C; case 237u: goto L_0884D31C; case 238u: goto L_0884D328; case 239u: goto L_0884D330; case 240u: goto L_0884D33C; case 241u: goto L_0884D374; case 242u: goto L_0884D384; case 243u: goto L_0884D394; case 244u: goto L_0884D3A0; case 245u: goto L_0884D3A8; case 246u: goto L_0884D3B4; case 247u: goto L_0884D3BC; case 248u: goto L_0884D3F8; case 249u: goto L_0884D408; case 250u: goto L_0884D410; case 251u: goto L_0884D418; case 252u: goto L_0884D438; case 253u: goto L_0884D448; case 254u: goto L_0884D458; case 255u: goto L_0884D468; case 256u: goto L_0884D474; case 257u: goto L_0884D47C; case 258u: goto L_0884D484; case 259u: goto L_0884D498; case 260u: goto L_0884D4A0; case 261u: goto L_0884D4B8; case 262u: goto L_0884D4C4; case 263u: goto L_0884D4D4; case 264u: goto L_0884D4F0; case 265u: goto L_0884D500; case 266u: goto L_0884D52C; case 267u: goto L_0884D534; case 268u: goto L_0884D544; case 269u: goto L_0884D554; case 270u: goto L_0884D5AC; case 271u: goto L_0884D5D4; case 272u: goto L_0884D5EC; case 273u: goto L_0884D5F4; case 274u: goto L_0884D600; case 275u: goto L_0884D608; case 276u: goto L_0884D610; case 277u: goto L_0884D614; case 278u: goto L_0884D624; case 279u: goto L_0884D644; case 280u: goto L_0884D66C; case 281u: goto L_0884D674; case 282u: goto L_0884D67C; case 283u: goto L_0884D68C; case 284u: goto L_0884D6AC; case 285u: goto L_0884D6BC; case 286u: goto L_0884D6C4; case 287u: goto L_0884D6D4; case 288u: goto L_0884D6E0; case 289u: goto L_0884D6E8; case 290u: goto L_0884D704; case 291u: goto L_0884D71C; case 292u: goto L_0884D720; case 293u: goto L_0884D724; case 294u: goto L_0884D734; case 295u: goto L_0884D750; case 296u: goto L_0884D76C; case 297u: goto L_0884D780; case 298u: goto L_0884D78C; case 299u: goto L_0884D7A0; case 300u: goto L_0884D7AC; case 301u: goto L_0884D7CC; case 302u: goto L_0884D7E0; case 303u: goto L_0884D7F0; case 304u: goto L_0884D80C; case 305u: goto L_0884D820; case 306u: goto L_0884D830; case 307u: goto L_0884D840; case 308u: goto L_0884D844; case 309u: goto L_0884D854; case 310u: goto L_0884D8F0; case 311u: goto L_0884D900; case 312u: goto L_0884D908; case 313u: goto L_0884D910; case 314u: goto L_0884D914; case 315u: goto L_0884D91C; case 316u: goto L_0884D924; case 317u: goto L_0884D944; case 318u: goto L_0884D954; case 319u: goto L_0884D964; case 320u: goto L_0884D974; case 321u: goto L_0884D97C; case 322u: goto L_0884D984; case 323u: goto L_0884D98C; case 324u: goto L_0884D9A4; case 325u: goto L_0884D9C4; case 326u: goto L_0884D9D4; case 327u: goto L_0884DA04; case 328u: goto L_0884DA14; case 329u: goto L_0884DA24; case 330u: goto L_0884DA28; case 331u: goto L_0884DA30; case 332u: goto L_0884DA38; case 333u: goto L_0884DA4C; case 334u: goto L_0884DA74; case 335u: goto L_0884DA8C; case 336u: goto L_0884DA9C; case 337u: goto L_0884DAA4; case 338u: goto L_0884DABC; case 339u: goto L_0884DAC8; case 340u: goto L_0884DAE8; case 341u: goto L_0884DB18; case 342u: goto L_0884DB28; case 343u: goto L_0884DB38; case 344u: goto L_0884DB48; case 345u: goto L_0884DB78; case 346u: goto L_0884DB88; case 347u: goto L_0884DBA4; case 348u: goto L_0884DBB4; case 349u: goto L_0884DBCC; case 350u: goto L_0884DBD4; case 351u: goto L_0884DBF8; case 352u: goto L_0884DC08; case 353u: goto L_0884DC40; case 354u: goto L_0884DC74; case 355u: goto L_0884DCDC; case 356u: goto L_0884DCFC; case 357u: goto L_0884DD2C; case 358u: goto L_0884DD3C; case 359u: goto L_0884DD5C; case 360u: goto L_0884DD94; case 361u: goto L_0884DE38; case 362u: goto L_0884DE3C; case 363u: goto L_0884DE44; case 364u: goto L_0884DE4C; case 365u: goto L_0884DE6C; case 366u: goto L_0884DE7C; case 367u: goto L_0884DE8C; case 368u: goto L_0884DE9C; case 369u: goto L_0884DEA4; case 370u: goto L_0884DEAC; case 371u: goto L_0884DEB4; case 372u: goto L_0884DECC; case 373u: goto L_0884DEEC; case 374u: goto L_0884DEFC; case 375u: goto L_0884DF08; case 376u: goto L_0884DF18; case 377u: goto L_0884DF20; case 378u: goto L_0884DF28; case 379u: goto L_0884DF30; case 380u: goto L_0884DF44; case 381u: goto L_0884DF60; case 382u: goto L_0884DF78; case 383u: goto L_0884DF84; case 384u: goto L_0884DFA4; case 385u: goto L_0884DFB0; case 386u: goto L_0884DFC0; case 387u: goto L_0884DFD0; case 388u: goto L_0884DFDC; case 389u: goto L_0884DFF8; case 390u: goto L_0884E00C; case 391u: goto L_0884E024; case 392u: goto L_0884E02C; case 393u: goto L_0884E054; case 394u: goto L_0884E064; case 395u: goto L_0884E098; case 396u: goto L_0884E0A8; case 397u: goto L_0884E0B4; case 398u: goto L_0884E10C; case 399u: goto L_0884E140; case 400u: goto L_0884E1DC; case 401u: goto L_0884E1EC; case 402u: goto L_0884E1F4; case 403u: goto L_0884E1FC; case 404u: goto L_0884E21C; case 405u: goto L_0884E22C; case 406u: goto L_0884E23C; case 407u: goto L_0884E24C; case 408u: goto L_0884E258; case 409u: goto L_0884E260; case 410u: goto L_0884E268; case 411u: goto L_0884E270; case 412u: goto L_0884E288; case 413u: goto L_0884E2A8; case 414u: goto L_0884E2B8; case 415u: goto L_0884E2E8; case 416u: goto L_0884E2F8; case 417u: goto L_0884E308; case 418u: goto L_0884E314; case 419u: goto L_0884E324; case 420u: goto L_0884E32C; case 421u: goto L_0884E334; case 422u: goto L_0884E348; case 423u: goto L_0884E364; case 424u: goto L_0884E37C; case 425u: goto L_0884E388; case 426u: goto L_0884E3A8; case 427u: goto L_0884E3D8; case 428u: goto L_0884E3E8; case 429u: goto L_0884E3F8; case 430u: goto L_0884E408; case 431u: goto L_0884E438; case 432u: goto L_0884E448; case 433u: goto L_0884E464; case 434u: goto L_0884E474; case 435u: goto L_0884E4A0; case 436u: goto L_0884E4A8; case 437u: goto L_0884E4B8; case 438u: goto L_0884E4C8; case 439u: goto L_0884E500; case 440u: goto L_0884E534; case 441u: goto L_0884E57C; case 442u: goto L_0884E5B4; case 443u: goto L_0884E654; case 444u: goto L_0884E658; case 445u: goto L_0884E660; case 446u: goto L_0884E668; case 447u: goto L_0884E688; case 448u: goto L_0884E698; case 449u: goto L_0884E6A8; case 450u: goto L_0884E6B8; case 451u: goto L_0884E6C0; case 452u: goto L_0884E6C8; case 453u: goto L_0884E6D0; case 454u: goto L_0884E6E8; case 455u: goto L_0884E708; case 456u: goto L_0884E718; case 457u: goto L_0884E724; case 458u: goto L_0884E734; case 459u: goto L_0884E73C; case 460u: goto L_0884E744; case 461u: goto L_0884E74C; case 462u: goto L_0884E760; case 463u: goto L_0884E77C; case 464u: goto L_0884E794; case 465u: goto L_0884E7A0; case 466u: goto L_0884E7C0; case 467u: goto L_0884E7CC; case 468u: goto L_0884E7DC; case 469u: goto L_0884E7EC; case 470u: goto L_0884E7F8; case 471u: goto L_0884E814; case 472u: goto L_0884E828; case 473u: goto L_0884E854; case 474u: goto L_0884E85C; case 475u: goto L_0884E86C; case 476u: goto L_0884E87C; case 477u: goto L_0884E8A8; case 478u: goto L_0884E8B8; case 479u: goto L_0884E8C4; case 480u: goto L_0884E91C; case 481u: goto L_0884E950; case 482u: goto L_0884E958; case 483u: goto L_0884E964; case 484u: goto L_0884E974; case 485u: goto L_0884E980; case 486u: goto L_0884E9A0; case 487u: goto L_0884E9A8; case 488u: goto L_0884E9B0; case 489u: goto L_0884E9B8; case 490u: goto L_0884E9C0; case 491u: goto L_0884E9D4; case 492u: goto L_0884E9D8; case 493u: goto L_0884E9DC; case 494u: goto L_0884E9E4; case 495u: goto L_0884E9E8; case 496u: goto L_0884EA04; case 497u: goto L_0884EA18; case 498u: goto L_0884EAA0; case 499u: goto L_0884EAC4; case 500u: goto L_0884EB10; case 501u: goto L_0884EB20; case 502u: goto L_0884EB28; case 503u: goto L_0884EB30; case 504u: goto L_0884EB38; case 505u: goto L_0884EB40; case 506u: goto L_0884EB4C; case 507u: goto L_0884EB54; case 508u: goto L_0884EB5C; case 509u: goto L_0884EB64; case 510u: goto L_0884EB6C; case 511u: goto L_0884EB78; case 512u: goto L_0884EB80; case 513u: goto L_0884EB88; case 514u: goto L_0884EB90; case 515u: goto L_0884EB94; case 516u: goto L_0884EB9C; case 517u: goto L_0884EBA8; case 518u: goto L_0884EBB0; case 519u: goto L_0884EBCC; case 520u: goto L_0884EBE8; case 521u: goto L_0884EBF0; case 522u: goto L_0884EBF8; case 523u: goto L_0884EC04; case 524u: goto L_0884EC14; case 525u: goto L_0884EC30; case 526u: goto L_0884EC6C; case 527u: goto L_0884ECB0; case 528u: goto L_0884ECB8; case 529u: goto L_0884ECEC; case 530u: goto L_0884ECF4; case 531u: goto L_0884ED10; case 532u: goto L_0884ED1C; case 533u: goto L_0884ED24; case 534u: goto L_0884ED30; case 535u: goto L_0884ED38; case 536u: goto L_0884ED44; case 537u: goto L_0884ED60; case 538u: goto L_0884ED84; case 539u: goto L_0884EDB0; case 540u: goto L_0884EDD0; case 541u: goto L_0884EDDC; case 542u: goto L_0884EDE4; case 543u: goto L_0884EDEC; case 544u: goto L_0884EDF4; case 545u: goto L_0884EE1C; case 546u: goto L_0884EE24; case 547u: goto L_0884EE2C; case 548u: goto L_0884EE34; case 549u: goto L_0884EE3C; case 550u: goto L_0884EE44; case 551u: goto L_0884EE4C; case 552u: goto L_0884EE54; case 553u: goto L_0884EE60; case 554u: goto L_0884EE68; case 555u: goto L_0884EE74; case 556u: goto L_0884EE84; case 557u: goto L_0884EEA0; case 558u: goto L_0884EEA8; case 559u: goto L_0884EEB8; case 560u: goto L_0884EEBC; case 561u: goto L_0884EF00; case 562u: goto L_0884EF08; case 563u: goto L_0884EF14; case 564u: goto L_0884EF1C; case 565u: goto L_0884EF30; case 566u: goto L_0884EF44; case 567u: goto L_0884EF4C; case 568u: goto L_0884EF54; case 569u: goto L_0884EF5C; case 570u: goto L_0884EF64; case 571u: goto L_0884EF6C; case 572u: goto L_0884EF74; case 573u: goto L_0884EF80; case 574u: goto L_0884EF88; case 575u: goto L_0884EF94; case 576u: goto L_0884EFA0; case 577u: goto L_0884EFA8; case 578u: goto L_0884EFB8; case 579u: goto L_0884EFBC; case 580u: goto L_0884EFC8; case 581u: goto L_0884EFE4; case 582u: goto L_0884F048; case 583u: goto L_0884F054; case 584u: goto L_0884F0B0; case 585u: goto L_0884F0B8; case 586u: goto L_0884F114; case 587u: goto L_0884F120; case 588u: goto L_0884F174; case 589u: goto L_0884F180; case 590u: goto L_0884F1DC; case 591u: goto L_0884F1E8; case 592u: goto L_0884F1FC; case 593u: goto L_0884F220; case 594u: goto L_0884F238; case 595u: goto L_0884F250; case 596u: goto L_0884F280; case 597u: goto L_0884F28C; case 598u: goto L_0884F2AC; case 599u: goto L_0884F2CC; case 600u: goto L_0884F300; case 601u: goto L_0884F318; case 602u: goto L_0884F328; case 603u: goto L_0884F334; case 604u: goto L_0884F340; case 605u: goto L_0884F350; case 606u: goto L_0884F35C; case 607u: goto L_0884F368; case 608u: goto L_0884F374; case 609u: goto L_0884F3A0; case 610u: goto L_0884F3AC; case 611u: goto L_0884F3B4; case 612u: goto L_0884F3BC; case 613u: goto L_0884F3D0; case 614u: goto L_0884F3E0; case 615u: goto L_0884F3EC; case 616u: goto L_0884F3F4; case 617u: goto L_0884F400; case 618u: goto L_0884F408; case 619u: goto L_0884F41C; case 620u: goto L_0884F424; case 621u: goto L_0884F42C; case 622u: goto L_0884F43C; case 623u: goto L_0884F448; case 624u: goto L_0884F450; case 625u: goto L_0884F468; case 626u: goto L_0884F478; case 627u: goto L_0884F4B8; case 628u: goto L_0884F500; case 629u: goto L_0884F508; case 630u: goto L_0884F528; case 631u: goto L_0884F534; case 632u: goto L_0884F53C; case 633u: goto L_0884F56C; case 634u: goto L_0884F574; case 635u: goto L_0884F57C; case 636u: goto L_0884F59C; case 637u: goto L_0884F5A8; case 638u: goto L_0884F5B0; case 639u: goto L_0884F5E0; case 640u: goto L_0884F5E8; case 641u: goto L_0884F5F0; case 642u: goto L_0884F608; case 643u: goto L_0884F614; case 644u: goto L_0884F61C; case 645u: goto L_0884F64C; case 646u: goto L_0884F654; case 647u: goto L_0884F65C; case 648u: goto L_0884F674; case 649u: goto L_0884F680; case 650u: goto L_0884F688; case 651u: goto L_0884F6B8; case 652u: goto L_0884F6C0; case 653u: goto L_0884F6D4; case 654u: goto L_0884F6E0; case 655u: goto L_0884F6E8; case 656u: goto L_0884F6FC; case 657u: goto L_0884F708; case 658u: goto L_0884F710; case 659u: goto L_0884F724; case 660u: goto L_0884F730; case 661u: goto L_0884F738; case 662u: goto L_0884F74C; case 663u: goto L_0884F750; case 664u: goto L_0884F75C; case 665u: goto L_0884F768; case 666u: goto L_0884F770; case 667u: goto L_0884F778; case 668u: goto L_0884F784; case 669u: goto L_0884F790; case 670u: goto L_0884F798; case 671u: goto L_0884F7A4; case 672u: goto L_0884F7B0; case 673u: goto L_0884F7DC; case 674u: goto L_0884F80C; case 675u: goto L_0884F84C; case 676u: goto L_0884F860; case 677u: goto L_0884F86C; case 678u: goto L_0884F874; case 679u: goto L_0884F888; case 680u: goto L_0884F890; case 681u: goto L_0884F898; case 682u: goto L_0884F8A8; case 683u: goto L_0884F8B4; case 684u: goto L_0884F8C4; case 685u: goto L_0884F8FC; case 686u: goto L_0884F904; case 687u: goto L_0884F908; case 688u: goto L_0884F91C; case 689u: goto L_0884F928; case 690u: goto L_0884F934; case 691u: goto L_0884F93C; case 692u: goto L_0884F940; case 693u: goto L_0884F94C; case 694u: goto L_0884F954; case 695u: goto L_0884F964; case 696u: goto L_0884F968; case 697u: goto L_0884F974; case 698u: goto L_0884F984; case 699u: goto L_0884F98C; case 700u: goto L_0884F998; case 701u: goto L_0884F9A8; case 702u: goto L_0884F9B0; case 703u: goto L_0884F9BC; case 704u: goto L_0884F9C4; case 705u: goto L_0884F9D8; case 706u: goto L_0884F9E0; case 707u: goto L_0884F9F4; case 708u: goto L_0884FA00; case 709u: goto L_0884FA14; case 710u: goto L_0884FA20; case 711u: goto L_0884FA24; case 712u: goto L_0884FA34; case 713u: goto L_0884FA40; case 714u: goto L_0884FA50; case 715u: goto L_0884FA84; case 716u: goto L_0884FA8C; case 717u: goto L_0884FA90; case 718u: goto L_0884FAA4; case 719u: goto L_0884FAB0; case 720u: goto L_0884FABC; case 721u: goto L_0884FAC4; case 722u: goto L_0884FAC8; case 723u: goto L_0884FAD4; case 724u: goto L_0884FADC; case 725u: goto L_0884FAEC; case 726u: goto L_0884FAF0; case 727u: goto L_0884FAFC; case 728u: goto L_0884FB0C; case 729u: goto L_0884FB14; case 730u: goto L_0884FB20; case 731u: goto L_0884FB30; case 732u: goto L_0884FB38; case 733u: goto L_0884FB44; case 734u: goto L_0884FB4C; case 735u: goto L_0884FB60; case 736u: goto L_0884FB74; case 737u: goto L_0884FBA0; case 738u: goto L_0884FBEC; case 739u: goto L_0884FBF4; case 740u: goto L_0884FC00; case 741u: goto L_0884FC08; case 742u: goto L_0884FC48; case 743u: goto L_0884FC50; case 744u: goto L_0884FC64; case 745u: goto L_0884FC68; case 746u: goto L_0884FC8C; case 747u: goto L_0884FC98; case 748u: goto L_0884FCA4; case 749u: goto L_0884FCAC; case 750u: goto L_0884FCB4; case 751u: goto L_0884FCBC; case 752u: goto L_0884FCC8; case 753u: goto L_0884FD10; case 754u: goto L_0884FD20; case 755u: goto L_0884FD28; case 756u: goto L_0884FD2C; case 757u: goto L_0884FD34; case 758u: goto L_0884FD40; case 759u: goto L_0884FD88; case 760u: goto L_0884FD94; case 761u: goto L_0884FD9C; case 762u: goto L_0884FDA4; case 763u: goto L_0884FDB8; case 764u: goto L_0884FDBC; case 765u: goto L_0884FDD4; case 766u: goto L_0884FDE0; case 767u: goto L_0884FDE8; case 768u: goto L_0884FDFC; case 769u: goto L_0884FE14; case 770u: goto L_0884FE1C; case 771u: goto L_0884FE24; case 772u: goto L_0884FE38; case 773u: goto L_0884FE3C; case 774u: goto L_0884FE64; case 775u: goto L_0884FE84; case 776u: goto L_0884FE8C; case 777u: goto L_0884FE9C; case 778u: goto L_0884FEA8; case 779u: goto L_0884FEB4; case 780u: goto L_0884FEBC; case 781u: goto L_0884FEC4; case 782u: goto L_0884FECC; case 783u: goto L_0884FED4; case 784u: goto L_0884FEE4; case 785u: goto L_0884FEF0; case 786u: goto L_0884FEFC; case 787u: goto L_0884FF04; case 788u: goto L_0884FF0C; case 789u: goto L_0884FF1C; case 790u: goto L_0884FF24; case 791u: goto L_0884FF30; case 792u: goto L_0884FF38; case 793u: goto L_0884FF48; case 794u: goto L_0884FF54; case 795u: goto L_0884FF60; case 796u: goto L_0884FF68; case 797u: goto L_0884FF70; case 798u: goto L_0884FF80; case 799u: goto L_0884FF8C; case 800u: goto L_0884FF98; case 801u: goto L_0884FFA0; case 802u: goto L_0884FFA8; case 803u: goto L_0884FFB0; case 804u: goto L_0884FFBC; case 805u: goto L_0884FFC0; case 806u: goto L_0884FFD0; case 807u: goto L_0884FFDC; case 808u: goto L_0884FFE8; case 809u: goto L_0884FFF0; case 810u: goto L_0884FFF8; 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 - 0x0884C000u; if (local_delta_v813 >= 16380u || (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_0884C000: aot_gpr_5 = (aot_gpr_5 + static_cast(32)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_4 = (aot_gpr_4 << 2u); aot_gpr_4 = (aot_gpr_6 + 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))); aot_gpr_4 = (aot_gpr_4 + static_cast(16)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(84), std::bit_cast(aot_fpr_13)); aot_fpr_12 = std::bit_cast(0u); 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); } { 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 bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884C09C; } goto L_0884C048; } L_0884C048: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(86)))))); aot_gpr_5 = (aot_gpr_4 << 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_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(20))); aot_gpr_5 = (aot_gpr_5 + static_cast(32)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 << 2u); aot_gpr_4 = (aot_gpr_6 + 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))); aot_gpr_4 = (aot_gpr_4 + static_cast(32)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(84), std::bit_cast(aot_fpr_13)); aot_fpr_12 = std::bit_cast(0u); 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); } { 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); } goto L_0884C09C; L_0884C09C: ctx.gpr[21] = (aot_gpr_29 + static_cast(48)); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884C0B0u); aot_gpr_6 = (aot_gpr_29 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0011. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 4u, 0x0884C0B0u, 0x08830288u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); #else recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C0B0u) goto L_0884C0B0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C0B0: { const std::uint32_t vfpu_address = ctx.gpr[21] + 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(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); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_4 = (aot_gpr_16 + static_cast(48)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_fpr_12 = aot_fpr_12 - aot_fpr_13; aot_fpr_14 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_14)) ? 0x00800000u : 0u); if (((ctx.fcr31 & 0x00800000u) != 0u)) { aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); goto L_0884C0E0; } goto L_0884C0E0; L_0884C0E0: aot_gpr_4 = (16384u << 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_0884C268; } goto L_0884C0F8; } L_0884C0F8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_4 = (aot_gpr_16 + static_cast(48)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_fpr_12 = aot_fpr_12 - aot_fpr_13; { const float fs = aot_fpr_12; 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_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_fpr_14 = aot_fpr_14 - ctx.fpr[15]; { const float fs = aot_fpr_14; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_14 = std::bit_cast(0x7FC00000u); else aot_fpr_14 = fs * ft; } aot_fpr_12 = aot_fpr_12 + aot_fpr_14; aot_gpr_4 = (16256u << 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_0884C268; } goto L_0884C138; } L_0884C138: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-1040))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884C16C; } goto L_0884C144; } L_0884C144: aot_gpr_4 = (0u | 1u); aot_gpr_5 = (ctx.gpr[20] + ctx.gpr[18]); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1596), static_cast(aot_gpr_4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(96))); aot_gpr_6 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_6 = (0u | 166u); aot_gpr_31 = (0x0884C16Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0128. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 9u, 0x0884C16Cu, 0x08A05F80u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); #else recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C16Cu) goto L_0884C16C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C16C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(208))); aot_gpr_4 = (17402u << 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_0884C268; } goto L_0884C188; } L_0884C188: aot_gpr_4 = (16256u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(208))); aot_gpr_4 = (17530u << 16u); aot_fpr_14 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 / aot_fpr_14; ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 < aot_fpr_12)) ? 0x00800000u : 0u); if (((ctx.fcr31 & 0x00800000u) != 0u)) { aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); goto L_0884C1B0; } goto L_0884C1B0; L_0884C1B0: aot_gpr_4 = (16968u << 16u); aot_fpr_14 = std::bit_cast(aot_gpr_4); { 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_14 = std::bit_cast(0x7FC00000u); else aot_fpr_14 = fs * ft; } aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884C1CCu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 12u, 0x0884C1CCu, 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 == 0x0884C1CCu) goto L_0884C1CC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C1CC: aot_fpr_14 = std::bit_cast(0u); aot_gpr_4 = (16256u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(212))); aot_gpr_4 = (17658u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 / ctx.fpr[15]; ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_13)) ? 0x00800000u : 0u); if (!((ctx.fcr31 & 0x00800000u) != 0u)) { aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); goto L_0884C1F8; } goto L_0884C1F8; L_0884C1F8: aot_gpr_4 = (16968u << 16u); 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)) ctx.fpr[18] = std::bit_cast(0x7FC00000u); else ctx.fpr[18] = fs * ft; } ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_4 = (ctx.gpr[18] + static_cast(48)); ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); ctx.fpr[15] = ctx.fpr[15] - ctx.fpr[16]; ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); ctx.fpr[16] = ctx.fpr[16] - aot_fpr_12; ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); ctx.fpr[17] = ctx.fpr[17] - aot_fpr_13; aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x0884C240u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[18])); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 14u, 0x0884C240u, 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 == 0x0884C240u) goto L_0884C240; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C240: aot_gpr_31 = (0x0884C248u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0087. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 15u, 0x0884C248u, 0x089602C8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); #else recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C248u) goto L_0884C248; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C248: { const bool branch_taken = ctx.gpr[18] != ctx.gpr[2]; if (branch_taken) { goto L_0884C268; } goto L_0884C250; } L_0884C250: aot_gpr_31 = (0x0884C258u); aot_gpr_4 = (0u | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_0898B428, 97u, 0x0898B428u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C258u) goto L_0884C258; AOT_REGCACHE_SYNC_OUT(); return; L_0884C258: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 300u); aot_gpr_31 = (0x0884C268u); aot_gpr_6 = (0u | 70u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 18u, 0x0884C268u, 0x0898BB3Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); #else recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 954u, 0x0898BB3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C268u) goto L_0884C268; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C268: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[20]) < 4 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0017_entry, 17u, 662u, 0x0884BEC8u>(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_0884C278; } L_0884C278: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884C508; } goto L_0884C280; } L_0884C280: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { goto L_0884C508; } goto L_0884C288; } L_0884C288: ctx.gpr[20] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[20]) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884C508; } goto L_0884C298; } L_0884C298: aot_gpr_4 = (ctx.gpr[20] + ctx.gpr[17]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(1276))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884C4F8; } goto L_0884C2A8; } L_0884C2A8: aot_gpr_4 = (ctx.gpr[20] << 3u); aot_gpr_4 = (ctx.gpr[17] + aot_gpr_4); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1216))); aot_gpr_4 = (16256u << 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_0884C4F8; } goto L_0884C2CC; } L_0884C2CC: aot_gpr_4 = (ctx.gpr[20] | 0u); if (static_cast(aot_gpr_4) > 0) { aot_gpr_4 = (static_cast(aot_gpr_4) < 2 ? 1u : 0u); goto L_0884C334; } goto L_0884C2D8; L_0884C2D8: { const bool branch_taken = static_cast(aot_gpr_4) < 0; if (branch_taken) { goto L_0884C388; } goto L_0884C2E0; } L_0884C2E0: 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_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); aot_gpr_4 = (aot_gpr_4 + static_cast(32)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_4 = (16204u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); 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_fpr_14 = std::bit_cast(0u); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_14), std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_14)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(144), aot_run_words); } 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<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); } { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884C388; } goto L_0884C334; } L_0884C334: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884C388; } goto L_0884C33C; } L_0884C33C: 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_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); aot_gpr_4 = (aot_gpr_4 + static_cast(16)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_4 = (16204u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); 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_fpr_14 = std::bit_cast(0u); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_14), std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_14)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(144), aot_run_words); } 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<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); } goto L_0884C388; L_0884C388: ctx.gpr[21] = (aot_gpr_29 + static_cast(112)); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0884C39Cu); aot_gpr_6 = (aot_gpr_29 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0011. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 30u, 0x0884C39Cu, 0x08830288u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); #else recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C39Cu) goto L_0884C39C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C39C: { const std::uint32_t vfpu_address = ctx.gpr[21] + 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(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); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_4 = (aot_gpr_16 + static_cast(48)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_fpr_12 = aot_fpr_12 - aot_fpr_13; aot_fpr_14 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_14)) ? 0x00800000u : 0u); if (((ctx.fcr31 & 0x00800000u) != 0u)) { aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); goto L_0884C3CC; } goto L_0884C3CC; L_0884C3CC: aot_gpr_4 = (16384u << 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_0884C4F8; } goto L_0884C3E4; } L_0884C3E4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_4 = (aot_gpr_16 + static_cast(48)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_fpr_12 = aot_fpr_12 - aot_fpr_13; { const float fs = aot_fpr_12; 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_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_fpr_14 = aot_fpr_14 - ctx.fpr[15]; { const float fs = aot_fpr_14; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_14 = std::bit_cast(0x7FC00000u); else aot_fpr_14 = fs * ft; } aot_fpr_12 = aot_fpr_12 + aot_fpr_14; aot_gpr_4 = (16256u << 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_0884C4F8; } goto L_0884C424; } L_0884C424: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-1040))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884C458; } goto L_0884C430; } L_0884C430: aot_gpr_4 = (0u | 1u); aot_gpr_5 = (ctx.gpr[20] + ctx.gpr[17]); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1276), static_cast(aot_gpr_4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(96))); aot_gpr_6 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_6 = (0u | 166u); aot_gpr_31 = (0x0884C458u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0128. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 35u, 0x0884C458u, 0x08A05F80u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); #else recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C458u) goto L_0884C458; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C458: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(208))); aot_gpr_4 = (17096u << 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_0884C4F8; } goto L_0884C474; } L_0884C474: aot_fpr_20 = std::bit_cast(0u); aot_gpr_4 = (16672u << 16u); ctx.fpr[22] = std::bit_cast(aot_gpr_4); aot_gpr_4 = (ctx.gpr[17] | 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 = (0x0884C494u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[22])); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 37u, 0x0884C494u, 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 == 0x0884C494u) goto L_0884C494; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C494: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_4 = (ctx.gpr[17] + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); ctx.fpr[15] = ctx.fpr[15] - aot_fpr_12; ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); ctx.fpr[16] = ctx.fpr[16] - aot_fpr_13; ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); ctx.fpr[17] = ctx.fpr[17] - aot_fpr_14; aot_gpr_4 = (ctx.gpr[17] | 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 = (0x0884C4D0u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[22])); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0152. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 38u, 0x0884C4D0u, 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 == 0x0884C4D0u) goto L_0884C4D0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C4D0: aot_gpr_31 = (0x0884C4D8u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0087. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 39u, 0x0884C4D8u, 0x089602C8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); #else recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C4D8u) goto L_0884C4D8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C4D8: { const bool branch_taken = ctx.gpr[17] != ctx.gpr[2]; if (branch_taken) { goto L_0884C4F8; } goto L_0884C4E0; } L_0884C4E0: aot_gpr_31 = (0x0884C4E8u); aot_gpr_4 = (0u | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_0898B428, 97u, 0x0898B428u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C4E8u) goto L_0884C4E8; AOT_REGCACHE_SYNC_OUT(); return; L_0884C4E8: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 300u); aot_gpr_31 = (0x0884C4F8u); aot_gpr_6 = (0u | 70u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 42u, 0x0884C4F8u, 0x0898BB3Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); #else recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 954u, 0x0898BB3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C4F8u) goto L_0884C4F8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C4F8: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[20]) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884C298; } goto L_0884C508; } L_0884C508: { const bool branch_taken = ctx.gpr[19] != 0u; if (branch_taken) { (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0017_entry, 17u, 649u, 0x0884BDA0u>(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_0884C510; } L_0884C510: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(160), aot_run_words); aot_fpr_20 = std::bit_cast(aot_run_words[0]); ctx.fpr[22] = std::bit_cast(aot_run_words[1]); aot_gpr_16 = aot_run_words[2]; ctx.gpr[17] = aot_run_words[3]; ctx.gpr[18] = aot_run_words[4]; ctx.gpr[19] = aot_run_words[5]; ctx.gpr[20] = aot_run_words[6]; ctx.gpr[21] = aot_run_words[7]; aot_gpr_31 = aot_run_words[8]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); // 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_0884C53C: aot_gpr_4 = (48896u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-29856), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (48793u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-29852), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-29848), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (48588u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-29840), std::bit_cast(aot_fpr_13)); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-29836), std::bit_cast(aot_fpr_13)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-29832), std::bit_cast(aot_fpr_12)); // 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_0884C57C: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[19]); ctx.gpr[19] = (aot_gpr_4 & 255u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-32480))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[17]); ctx.gpr[17] = (aot_gpr_5 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_16); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[18]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), ctx.gpr[20]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); { const bool branch_taken = aot_gpr_4 != 0u; aot_gpr_16 = (aot_gpr_6 | 0u); if (branch_taken) { goto L_0884C5BC; } goto L_0884C5AC; } L_0884C5AC: { const bool branch_taken = aot_gpr_16 != 0u; if (branch_taken) { goto L_0884C5C4; } goto L_0884C5B4; } L_0884C5B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884C5E4; } goto L_0884C5BC; } L_0884C5BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884C66C; } goto L_0884C5C4; } L_0884C5C4: aot_gpr_4 = (2237u << 16u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_6 = (ctx.gpr[17] | 0u); ctx.gpr[7] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0884C5DCu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0108. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 51u, 0x0884C5DCu, 0x089B716Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 534u, aot_mem); #else recomp_unit_0108_entry(rt, ctx, 534u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 534u, 0x089B716Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C5DCu) goto L_0884C5DC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C5DC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { goto L_0884C604; } goto L_0884C5E4; } L_0884C5E4: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0884C5F0u); aot_gpr_4 = (0u | 48u); goto L_0884C700; L_0884C5F0: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] != 0u; if (branch_taken) { goto L_0884C60C; } goto L_0884C5FC; } L_0884C5FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884C618; } goto L_0884C604; } L_0884C604: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884C66C; } goto L_0884C60C; } L_0884C60C: aot_gpr_31 = (0x0884C614u); aot_gpr_4 = (ctx.gpr[20] | 0u); goto L_0884C68C; L_0884C614: ctx.gpr[18] = (ctx.gpr[20] | 0u); goto L_0884C618; L_0884C618: { const bool branch_taken = ctx.gpr[18] != 0u; if (branch_taken) { goto L_0884C628; } goto L_0884C620; } L_0884C620: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884C66C; } goto L_0884C628; } L_0884C628: { 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); } aot_gpr_4 = (ctx.gpr[18] + 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); } aot_gpr_4 = (ctx.gpr[19] & 255u); aot_mem.aot_direct_store16(ctx.gpr[18] + static_cast(0), static_cast(aot_gpr_4)); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(36), aot_gpr_16); aot_gpr_4 = (0u + static_cast(-5)); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(32), aot_gpr_4); aot_gpr_4 = (2237u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0884C660u); ctx.gpr[7] = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0108. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 61u, 0x0884C660u, 0x089B722Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 544u, aot_mem); #else recomp_unit_0108_entry(rt, ctx, 544u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 544u, 0x089B722Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C660u) goto L_0884C660; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C660: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x0884C66Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0128. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 62u, 0x0884C66Cu, 0x08A06228u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 544u, aot_mem); #else recomp_unit_0128_entry(rt, ctx, 544u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 544u, 0x08A06228u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C66Cu) goto L_0884C66C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C66C: { std::uint32_t aot_run_words[6]{}; 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]; ctx.gpr[19] = aot_run_words[3]; ctx.gpr[20] = aot_run_words[4]; aot_gpr_31 = aot_run_words[5]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); // 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_0884C68C: 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_31 = (0x0884C6A0u); aot_gpr_16 = (aot_gpr_4 | 0u); goto L_0884C73C; L_0884C6A0: ctx.gpr[2] = (aot_gpr_16 | 0u); 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_0884C6B4: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[17]); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_16); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); { const bool branch_taken = aot_gpr_4 == 0u; aot_gpr_16 = (aot_gpr_5 | 0u); if (branch_taken) { goto L_0884C6EC; } goto L_0884C6D0; } L_0884C6D0: aot_gpr_31 = (0x0884C6D8u); aot_gpr_4 = (ctx.gpr[17] | 0u); goto L_0884C73C; L_0884C6D8: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884C6EC; } goto L_0884C6E4; } L_0884C6E4: aot_gpr_31 = (0x0884C6ECu); aot_gpr_4 = (ctx.gpr[17] | 0u); goto L_0884C71C; L_0884C6EC: { std::uint32_t aot_run_words[3]{}; 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]; aot_gpr_31 = aot_run_words[2]; } 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_0884C700: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0884C710u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15948))); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 668u, 0x08B66C74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C710u) goto L_0884C710; AOT_REGCACHE_SYNC_OUT(); return; L_0884C710: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); 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_0884C71C: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_gpr_5 = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0884C730u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15948))); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 676u, 0x08B66D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C730u) goto L_0884C730; AOT_REGCACHE_SYNC_OUT(); return; L_0884C730: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); 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_0884C73C: aot_gpr_5 = (0u | 89u); aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(0), static_cast(aot_gpr_5)); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_12)}; aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(16), aot_run_words); } aot_gpr_5 = (0u + static_cast(-5)); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(32), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(36), 0u); // 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_0884C764: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_16); aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(20440)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), aot_gpr_4); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(16), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(17), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(18), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(19), static_cast(0u)); aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(20), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(21), static_cast(aot_gpr_4)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(22), static_cast(0u)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(24), 0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(28), 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0884C7B0u); aot_gpr_4 = (aot_gpr_16 + static_cast(36)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0055. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 76u, 0x0884C7B0u, 0x088E1EC0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 97u, aot_mem); #else recomp_unit_0055_entry(rt, ctx, 97u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 97u, 0x088E1EC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C7B0u) goto L_0884C7B0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C7B0: { const std::uint32_t aot_run_words[6]{0u, 0u, 0u, 0u, 0u, 0u}; aot_mem.aot_direct_store32_block(aot_gpr_16 + static_cast(60), aot_run_words); } aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(112), 0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(120), 0u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(124), static_cast(0u)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(136), 0u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(140), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(157), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(158), static_cast(0u)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(160), 0u); ctx.gpr[2] = (aot_gpr_16 | 0u); 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_0884C7FC: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884C840; } goto L_0884C80C; } L_0884C80C: aot_gpr_6 = (2235u << 16u); aot_gpr_6 = (aot_gpr_6 + static_cast(-27948)); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_6); { const bool branch_taken = aot_gpr_4 == 0u; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5884), 0u); if (branch_taken) { goto L_0884C82C; } goto L_0884C820; } L_0884C820: aot_gpr_6 = (2235u << 16u); aot_gpr_6 = (aot_gpr_6 + static_cast(-28772)); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_6); goto L_0884C82C; L_0884C82C: aot_gpr_5 = (aot_gpr_5 & 1u); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_0884C840; } goto L_0884C838; } L_0884C838: aot_gpr_31 = (0x0884C840u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2C0, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C840u) goto L_0884C840; AOT_REGCACHE_SYNC_OUT(); return; L_0884C840: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); 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_0884C84C: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[17]); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_16); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); { const bool branch_taken = aot_gpr_4 == 0u; aot_gpr_16 = (aot_gpr_5 | 0u); if (branch_taken) { goto L_0884C8BC; } goto L_0884C868; } L_0884C868: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(20440)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), aot_gpr_4); aot_gpr_4 = (ctx.gpr[17] + static_cast(36)); aot_gpr_31 = (0x0884C880u); aot_gpr_5 = (0u | 2u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0055. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 85u, 0x0884C880u, 0x088E1EDCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 98u, aot_mem); #else recomp_unit_0055_entry(rt, ctx, 98u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 98u, 0x088E1EDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C880u) goto L_0884C880; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C880: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (aot_gpr_16 & 1u); if (branch_taken) { goto L_0884C8AC; } goto L_0884C888; } L_0884C888: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-27948)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), aot_gpr_4); { const bool branch_taken = ctx.gpr[17] == 0u; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5884), 0u); if (branch_taken) { goto L_0884C8A8; } goto L_0884C89C; } L_0884C89C: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28772)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), aot_gpr_4); goto L_0884C8A8; L_0884C8A8: aot_gpr_4 = (aot_gpr_16 & 1u); goto L_0884C8AC; L_0884C8AC: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884C8BC; } goto L_0884C8B4; } L_0884C8B4: aot_gpr_31 = (0x0884C8BCu); aot_gpr_4 = (ctx.gpr[17] | 0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2C0, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C8BCu) goto L_0884C8BC; AOT_REGCACHE_SYNC_OUT(); return; L_0884C8BC: { std::uint32_t aot_run_words[3]{}; 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]; aot_gpr_31 = aot_run_words[2]; } 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_0884C8D0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(28), 0u); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(18), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(17), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(19), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(20), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(22), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(16), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(156), static_cast(0u)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(56), 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_0884C8F8: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0884C908u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0206. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 94u, 0x0884C908u, 0x08B3D594u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 305u, aot_mem); #else recomp_unit_0206_entry(rt, ctx, 305u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 305u, 0x08B3D594u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C908u) goto L_0884C908; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C908: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); 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_0884C914: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(160))); aot_gpr_5 = (aot_gpr_5 << 2u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(7740))); // 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_0884C928: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0884C938u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0206. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 97u, 0x0884C938u, 0x08B3C350u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 49u, aot_mem); #else recomp_unit_0206_entry(rt, ctx, 49u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 49u, 0x08B3C350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C938u) goto L_0884C938; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C938: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); 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_0884C944: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_16); aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(160))); aot_gpr_4 = (aot_gpr_4 << 5u); aot_gpr_4 = (aot_gpr_6 + aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0884C96Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(7940)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0213. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 99u, 0x0884C96Cu, 0x08B5831Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); #else recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C96Cu) goto L_0884C96C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C96C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(160))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(112), aot_gpr_4); aot_gpr_4 = (aot_gpr_4 << 5u); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(7940), static_cast(0u)); 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_0884C998: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(28))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); { const bool branch_taken = aot_gpr_5 != 0u; if (branch_taken) { goto L_0884C9B4; } goto L_0884C9AC; } L_0884C9AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884C9BC; } goto L_0884C9B4; } L_0884C9B4: aot_gpr_31 = (0x0884C9BCu); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0206. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 103u, 0x0884C9BCu, 0x08B3DAC8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 399u, aot_mem); #else recomp_unit_0206_entry(rt, ctx, 399u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 399u, 0x08B3DAC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C9BCu) goto L_0884C9BC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C9BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); 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_0884C9C8: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(156))); { const std::uint32_t aot_run_words[3]{aot_gpr_16, ctx.gpr[17], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(16), aot_run_words); } { const bool branch_taken = aot_gpr_5 != 0u; aot_gpr_16 = (aot_gpr_4 | 0u); if (branch_taken) { goto L_0884CA28; } goto L_0884C9E4; } L_0884C9E4: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x0884C9F0u); aot_gpr_4 = (aot_gpr_4 + static_cast(31984)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0174. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 106u, 0x0884C9F0u, 0x08ABF2D8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 685u, aot_mem); #else recomp_unit_0174_entry(rt, ctx, 685u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 685u, 0x08ABF2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C9F0u) goto L_0884C9F0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C9F0: aot_gpr_31 = (0x0884C9F8u); aot_gpr_4 = (aot_gpr_29 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0087. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 107u, 0x0884C9F8u, 0x08960154u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); #else recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C9F8u) goto L_0884C9F8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884C9F8: aot_gpr_6 = (17786u << 16u); aot_gpr_4 = (aot_gpr_29 | 0u); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x0884CA0Cu); aot_gpr_5 = (0u | 1u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0037. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 108u, 0x0884CA0Cu, 0x0889B6ACu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 595u, aot_mem); #else recomp_unit_0037_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_0037_entry, 37u, 595u, 0x0889B6ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CA0Cu) goto L_0884CA0C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884CA0C: aot_gpr_31 = (0x0884CA14u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0001. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 109u, 0x0884CA14u, 0x088099B0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 327u, aot_mem); #else recomp_unit_0001_entry(rt, ctx, 327u, 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, 327u, 0x088099B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CA14u) goto L_0884CA14; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884CA14: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884CA30; } goto L_0884CA20; } L_0884CA20: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884CA38; } goto L_0884CA28; } L_0884CA28: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884CAD4; } goto L_0884CA30; } L_0884CA30: aot_gpr_31 = (0x0884CA38u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 358u, 0x08B65844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CA38u) goto L_0884CA38; AOT_REGCACHE_SYNC_OUT(); return; L_0884CA38: aot_gpr_31 = (0x0884CA40u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0002. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 114u, 0x0884CA40u, 0x0880EA7Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 566u, aot_mem); #else recomp_unit_0002_entry(rt, ctx, 566u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 566u, 0x0880EA7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CA40u) goto L_0884CA40; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884CA40: aot_gpr_31 = (0x0884CA48u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CA48u) goto L_0884CA48; AOT_REGCACHE_SYNC_OUT(); return; L_0884CA48: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_6 = (50298u << 16u); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x0884CA60u); aot_gpr_5 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0056. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 116u, 0x0884CA60u, 0x088E4294u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 15u, aot_mem); #else recomp_unit_0056_entry(rt, ctx, 15u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 15u, 0x088E4294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CA60u) goto L_0884CA60; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884CA60: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(144), 0u); aot_gpr_5 = (0u | 0u); aot_gpr_4 = (ctx.gpr[17] + static_cast(1396)); goto L_0884CA6C; L_0884CA6C: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); { const bool branch_taken = aot_gpr_6 == 0u; if (branch_taken) { goto L_0884CAB4; } goto L_0884CA78; } L_0884CA78: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(144))); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(160))); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_6 = (aot_gpr_6 << 2u); aot_gpr_6 = (ctx.gpr[7] + aot_gpr_6); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(8796), ctx.gpr[8]); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(144))); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(160))); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_gpr_6 = (aot_gpr_6 << 2u); aot_gpr_6 = (ctx.gpr[7] + aot_gpr_6); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(8836), ctx.gpr[8]); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(144))); aot_gpr_6 = (aot_gpr_6 + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(144), aot_gpr_6); goto L_0884CAB4; L_0884CAB4: aot_gpr_5 = (aot_gpr_5 + static_cast(1)); aot_gpr_6 = (static_cast(aot_gpr_5) < 10 ? 1u : 0u); { const bool branch_taken = aot_gpr_6 != 0u; aot_gpr_4 = (aot_gpr_4 + static_cast(28)); if (branch_taken) { goto L_0884CA6C; } goto L_0884CAC4; } L_0884CAC4: aot_gpr_31 = (0x0884CACCu); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0065. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 121u, 0x0884CACCu, 0x0890849Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 79u, aot_mem); #else recomp_unit_0065_entry(rt, ctx, 79u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 79u, 0x0890849Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CACCu) goto L_0884CACC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884CACC: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(156), static_cast(aot_gpr_4)); goto L_0884CAD4; L_0884CAD4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); aot_gpr_16 = aot_run_words[0]; ctx.gpr[17] = aot_run_words[1]; aot_gpr_31 = aot_run_words[2]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); // 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_0884CAE8: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_16); aot_gpr_16 = (aot_gpr_4 | 0u); { const std::uint32_t aot_run_words[7]{ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x0884CB18u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(156), static_cast(0u)); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CB18u) goto L_0884CB18; AOT_REGCACHE_SYNC_OUT(); return; L_0884CB18: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(144))); ctx.gpr[21] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[21]) < static_cast(aot_gpr_4) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[17] = (ctx.gpr[2] | 0u); if (branch_taken) { goto L_0884CBB4; } goto L_0884CB2C; } L_0884CB2C: ctx.gpr[19] = (ctx.gpr[28] + static_cast(-29624)); ctx.gpr[18] = (0u + static_cast(-1)); ctx.gpr[20] = (0u | 0u); goto L_0884CB38; L_0884CB38: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(160))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[20]); aot_gpr_31 = (0x0884CB48u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8796))); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B1FD70, 198u, 733u, 0x08B1FD70u>(ctx, &aot_mem, ctx.pc, 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_0198_entry, 198u, 733u, 0x08B1FD70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CB48u) goto L_0884CB48; AOT_REGCACHE_SYNC_OUT(); return; L_0884CB48: ctx.gpr[22] = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(96))); aot_gpr_31 = (0x0884CB54u); aot_gpr_4 = (ctx.gpr[22] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0179. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 128u, 0x0884CB54u, 0x08AD3708u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); #else recomp_unit_0179_entry(rt, ctx, 614u, 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, 614u, 0x08AD3708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CB54u) goto L_0884CB54; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884CB54: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0884CB64u); aot_gpr_6 = (ctx.gpr[19] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0179. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 129u, 0x0884CB64u, 0x08AD3258u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); #else recomp_unit_0179_entry(rt, ctx, 546u, 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, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CB64u) goto L_0884CB64; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884CB64: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(160))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[20]); aot_gpr_31 = (0x0884CB74u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8796))); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B1FD70, 198u, 733u, 0x08B1FD70u>(ctx, &aot_mem, ctx.pc, 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_0198_entry, 198u, 733u, 0x08B1FD70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CB74u) goto L_0884CB74; AOT_REGCACHE_SYNC_OUT(); return; L_0884CB74: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(100))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[18]; if (branch_taken) { goto L_0884CBA0; } goto L_0884CB80; } L_0884CB80: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(160))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[20]); aot_gpr_31 = (0x0884CB90u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8796))); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B1FD70, 198u, 733u, 0x08B1FD70u>(ctx, &aot_mem, ctx.pc, 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_0198_entry, 198u, 733u, 0x08B1FD70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CB90u) goto L_0884CB90; AOT_REGCACHE_SYNC_OUT(); return; L_0884CB90: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(100))); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0884CBA0u); aot_gpr_6 = (ctx.gpr[19] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0179. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 133u, 0x0884CBA0u, 0x08AD3258u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); #else recomp_unit_0179_entry(rt, ctx, 546u, 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, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CBA0u) goto L_0884CBA0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884CBA0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(144))); ctx.gpr[21] = (ctx.gpr[21] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[21]) < static_cast(aot_gpr_4) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; ctx.gpr[20] = (ctx.gpr[20] + static_cast(4)); if (branch_taken) { goto L_0884CB38; } goto L_0884CBB4; } L_0884CBB4: aot_gpr_31 = (0x0884CBBCu); aot_gpr_4 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0179. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 135u, 0x0884CBBCu, 0x08AD3610u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); #else recomp_unit_0179_entry(rt, ctx, 598u, 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, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CBBCu) goto L_0884CBBC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884CBBC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(144))); ctx.gpr[19] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(aot_gpr_4) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[18] = (0u | 0u); if (branch_taken) { goto L_0884CC00; } goto L_0884CBD0; } L_0884CBD0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(160))); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_5 + ctx.gpr[18]); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8836))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8796))); aot_gpr_31 = (0x0884CBECu); ctx.gpr[7] = (0u | 1u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0069. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 137u, 0x0884CBECu, 0x0891B7DCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); #else recomp_unit_0069_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_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CBECu) goto L_0884CBEC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884CBEC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(144))); ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(aot_gpr_4) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; ctx.gpr[18] = (ctx.gpr[18] + static_cast(4)); if (branch_taken) { goto L_0884CBD0; } goto L_0884CC00; } L_0884CC00: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(144), 0u); { std::uint32_t aot_run_words[8]{}; 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]; 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]; aot_gpr_31 = aot_run_words[7]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); // 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_0884CC2C: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0884CC3Cu); aot_gpr_4 = (0u | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_0898B428, 97u, 0x0898B428u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CC3Cu) goto L_0884CC3C; AOT_REGCACHE_SYNC_OUT(); return; L_0884CC3C: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(42)))))); { const bool branch_taken = aot_gpr_6 == 0u; aot_gpr_4 = (0u | 0u); if (branch_taken) { goto L_0884CC5C; } goto L_0884CC4C; } L_0884CC4C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(92)))))); { const bool branch_taken = aot_gpr_5 != 0u; aot_gpr_4 = (aot_gpr_4 & 255u); if (branch_taken) { goto L_0884CC60; } goto L_0884CC58; } L_0884CC58: aot_gpr_4 = (0u | 1u); goto L_0884CC5C; L_0884CC5C: aot_gpr_4 = (aot_gpr_4 & 255u); goto L_0884CC60; L_0884CC60: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884CC70; } goto L_0884CC68; } L_0884CC68: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { goto L_0884CC74; } goto L_0884CC70; } L_0884CC70: ctx.gpr[2] = (0u | 0u); goto L_0884CC74; L_0884CC74: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); 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_0884CC80: aot_gpr_29 = (aot_gpr_29 + static_cast(-112)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), ctx.gpr[18]); ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), std::bit_cast(ctx.fpr[22])); ctx.fpr[22] = std::bit_cast(0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-29600), ctx.gpr[18]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(60), std::bit_cast(ctx.fpr[24])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(96), ctx.gpr[22]); ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[22])); ctx.gpr[22] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(52), std::bit_cast(aot_fpr_20)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), std::bit_cast(ctx.fpr[26])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(76), ctx.gpr[17]); ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[24])); ctx.gpr[17] = (aot_gpr_5 & 255u); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(68), std::bit_cast(ctx.fpr[28])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_16); { const std::uint32_t aot_run_words[3]{ctx.gpr[19], ctx.gpr[20], ctx.gpr[21]}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(84), aot_run_words); } aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(100), aot_gpr_31); { const bool branch_taken = ctx.gpr[22] == 0u; aot_gpr_16 = (aot_gpr_4 | 0u); if (branch_taken) { goto L_0884CCF0; } goto L_0884CCE0; } L_0884CCE0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); ctx.gpr[19] = (0u | 0u); { const bool branch_taken = 0u == 0u; ctx.gpr[21] = (0u | 1u); if (branch_taken) { goto L_0884CCF8; } goto L_0884CCF0; } L_0884CCF0: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884CEC8; } goto L_0884CCF8; } L_0884CCF8: ctx.gpr[20] = (ctx.gpr[22] | 0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_20) || std::isnan(ctx.fpr[22])) && aot_fpr_20 == ctx.fpr[22])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); ctx.gpr[22] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); if (branch_taken) { goto L_0884CD20; } goto L_0884CD0C; } L_0884CD0C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0884CD18u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); goto L_0884D624; L_0884CD18: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884CD90; } goto L_0884CD20; } L_0884CD20: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(32))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884CD38; } goto L_0884CD30; } L_0884CD30: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884CD90; } goto L_0884CD38; } L_0884CD38: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0884CD44u); aot_gpr_5 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0035. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 157u, 0x0884CD44u, 0x088905B0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 91u, aot_mem); #else recomp_unit_0035_entry(rt, ctx, 91u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 91u, 0x088905B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CD44u) goto L_0884CD44; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884CD44: aot_gpr_4 = (ctx.gpr[19] << 2u); aot_gpr_4 = (aot_gpr_29 + aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & 32u); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); if (branch_taken) { goto L_0884CD8C; } goto L_0884CD68; } L_0884CD68: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(32))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(44))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(32))); aot_fpr_12 = aot_fpr_13 / aot_fpr_12; aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(16))); ctx.fpr[26] = ctx.fpr[26] + aot_fpr_14; { 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; } { const bool branch_taken = 0u == 0u; ctx.fpr[24] = ctx.fpr[24] + aot_fpr_12; if (branch_taken) { goto L_0884CD90; } goto L_0884CD8C; } L_0884CD8C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[21]); goto L_0884CD90; L_0884CD90: { const bool branch_taken = ctx.gpr[22] == 0u; aot_gpr_4 = (ctx.gpr[19] << 2u); if (branch_taken) { goto L_0884CDA8; } goto L_0884CD98; } L_0884CD98: aot_gpr_4 = (static_cast(ctx.gpr[19]) < 11 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884CCF8; } goto L_0884CDA4; } L_0884CDA4: aot_gpr_4 = (ctx.gpr[19] << 2u); goto L_0884CDA8; L_0884CDA8: aot_gpr_4 = (aot_gpr_29 + aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(0)))))); ctx.gpr[19] = (aot_gpr_6 & 32u); { const bool branch_taken = ctx.gpr[17] == 0u; ctx.gpr[19] = (0u < ctx.gpr[19] ? 1u : 0u); if (branch_taken) { goto L_0884CE38; } goto L_0884CDC8; } L_0884CDC8: { const bool branch_taken = ctx.gpr[19] == 0u; if (branch_taken) { goto L_0884CDE0; } goto L_0884CDD0; } L_0884CDD0: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x0884CDE0u); aot_gpr_5 = (aot_gpr_29 | 0u); goto L_0884CF04; L_0884CDE0: aot_gpr_31 = (0x0884CDE8u); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0038. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 167u, 0x0884CDE8u, 0x0889E994u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); #else recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 603u, 0x0889E994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CDE8u) goto L_0884CDE8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884CDE8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884CE0C; } goto L_0884CDF0; } L_0884CDF0: aot_gpr_5 = (2181u << 16u); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0884CE04u); aot_gpr_5 = (aot_gpr_5 + static_cast(-12292)); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0197_entry, 197u, 400u, 0x08B19938u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CE04u) goto L_0884CE04; AOT_REGCACHE_SYNC_OUT(); return; L_0884CE04: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); if (branch_taken) { goto L_0884CE24; } goto L_0884CE0C; } L_0884CE0C: aot_gpr_5 = (2181u << 16u); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0884CE20u); aot_gpr_5 = (aot_gpr_5 + static_cast(-11460)); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0197_entry, 197u, 400u, 0x08B19938u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CE20u) goto L_0884CE20; AOT_REGCACHE_SYNC_OUT(); return; L_0884CE20: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); goto L_0884CE24; L_0884CE24: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0)))))); aot_gpr_6 = (0u + static_cast(-33)); aot_gpr_5 = (aot_gpr_5 & aot_gpr_6); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(aot_gpr_5)); if (branch_taken) { goto L_0884CE5C; } goto L_0884CE38; } L_0884CE38: aot_gpr_5 = (2181u << 16u); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0884CE4Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-11540)); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0197_entry, 197u, 400u, 0x08B19938u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CE4Cu) goto L_0884CE4C; AOT_REGCACHE_SYNC_OUT(); return; L_0884CE4C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0)))))); aot_gpr_5 = (aot_gpr_5 | 32u); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(aot_gpr_5)); goto L_0884CE5C; L_0884CE5C: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 <= ctx.fpr[22])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_0884CEC0; } goto L_0884CE6C; } L_0884CE6C: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); { const bool branch_taken = ctx.gpr[18] == 0u; aot_gpr_4 = (16256u << 16u); if (branch_taken) { goto L_0884CEC0; } goto L_0884CE78; } L_0884CE78: ctx.fpr[28] = std::bit_cast(aot_gpr_4); goto L_0884CE7C; L_0884CE7C: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[24]) || std::isnan(ctx.fpr[22])) && ctx.fpr[24] == ctx.fpr[22])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_0884CEA4; } goto L_0884CE8C; } L_0884CE8C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0884CE9Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); goto L_0884D734; L_0884CE9C: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); if (branch_taken) { goto L_0884CEB8; } goto L_0884CEA4; } L_0884CEA4: aot_fpr_13 = ctx.fpr[26] / ctx.fpr[24]; aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884CEB4u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); goto L_0884D734; L_0884CEB4: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); goto L_0884CEB8; L_0884CEB8: { const bool branch_taken = ctx.gpr[18] != 0u; if (branch_taken) { goto L_0884CE7C; } goto L_0884CEC0; } L_0884CEC0: aot_gpr_31 = (0x0884CEC8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0091. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 185u, 0x0884CEC8u, 0x08972D80u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); #else recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 621u, 0x08972D80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CEC8u) goto L_0884CEC8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884CEC8: { std::uint32_t aot_run_words[13]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(52), 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]); aot_gpr_16 = aot_run_words[5]; ctx.gpr[17] = aot_run_words[6]; ctx.gpr[18] = aot_run_words[7]; ctx.gpr[19] = aot_run_words[8]; ctx.gpr[20] = aot_run_words[9]; ctx.gpr[21] = aot_run_words[10]; ctx.gpr[22] = aot_run_words[11]; aot_gpr_31 = aot_run_words[12]; } 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_0884CF04: aot_gpr_29 = (aot_gpr_29 + static_cast(-48)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), ctx.gpr[20]); ctx.gpr[20] = (aot_gpr_5 + static_cast(4)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[19]); ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[17]); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_16); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[18]); { const std::uint32_t aot_run_words[4]{ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } { const bool branch_taken = ctx.gpr[19] == 0u; aot_gpr_16 = (aot_gpr_6 | 0u); if (branch_taken) { goto L_0884CFD0; } goto L_0884CF40; } L_0884CF40: ctx.gpr[18] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(aot_gpr_16) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(24))); if (branch_taken) { goto L_0884CFC0; } goto L_0884CF50; } L_0884CF50: ctx.gpr[23] = (ctx.gpr[17] | 0u); ctx.gpr[22] = (0u | 0u); goto L_0884CF58; L_0884CF58: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[23] + static_cast(0)))))); aot_gpr_4 = (aot_gpr_4 & 8u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884CF80; } goto L_0884CF68; } L_0884CF68: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29600))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884CF80; } goto L_0884CF78; } L_0884CF78: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884CFAC; } goto L_0884CF80; } L_0884CF80: ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); ctx.gpr[21] = (ctx.gpr[21] + ctx.gpr[22]); aot_gpr_31 = (0x0884CF90u); aot_gpr_4 = (ctx.gpr[21] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 193u, 0x0884CF90u, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CF90u) goto L_0884CF90; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884CF90: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884CFAC; } goto L_0884CF98; } L_0884CF98: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(40))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(12))); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0884CFACu); aot_fpr_12 = aot_fpr_12 - aot_fpr_13; // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 195u, 0x0884CFACu, 0x089880D8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 12u, aot_mem); #else recomp_unit_0097_entry(rt, ctx, 12u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 12u, 0x089880D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CFACu) goto L_0884CFAC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884CFAC: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); ctx.gpr[23] = (ctx.gpr[23] + static_cast(24)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(aot_gpr_16) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; ctx.gpr[22] = (ctx.gpr[22] + static_cast(32)); if (branch_taken) { goto L_0884CF58; } goto L_0884CFC0; } L_0884CFC0: ctx.gpr[20] = (ctx.gpr[20] + static_cast(4)); ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); { const bool branch_taken = ctx.gpr[19] != 0u; if (branch_taken) { goto L_0884CF40; } goto L_0884CFD0; } L_0884CFD0: { std::uint32_t aot_run_words[9]{}; 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]; 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]; aot_gpr_31 = aot_run_words[8]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); // 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_0884CFFC: aot_gpr_29 = (aot_gpr_29 + static_cast(-112)); { const std::uint32_t aot_run_words[10]{std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[22]), aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(64), aot_run_words); } aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0)))))); aot_gpr_6 = (aot_gpr_6 & 8u); aot_gpr_16 = (aot_gpr_4 | 0u); { const bool branch_taken = aot_gpr_6 == 0u; ctx.gpr[17] = (aot_gpr_5 | 0u); if (branch_taken) { goto L_0884D084; } goto L_0884D03C; } L_0884D03C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29600))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884D084; } goto L_0884D04C; } L_0884D04C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(0)))))); aot_gpr_4 = (aot_gpr_4 & 16u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884D070; } goto L_0884D05C; } L_0884D05C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0884D068u); aot_gpr_5 = (ctx.gpr[17] | 0u); goto L_0884DD94; L_0884D068: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884D07C; } goto L_0884D070; } L_0884D070: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0884D07Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); goto L_0884D854; L_0884D07C: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884D2BC; } goto L_0884D084; } L_0884D084: ctx.gpr[20] = (ctx.gpr[17] | 0u); ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_fpr_20 = std::bit_cast(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(16), aot_run_words); } ctx.gpr[18] = (aot_gpr_29 + static_cast(16)); { const std::uint32_t aot_run_words[4]{std::bit_cast(aot_fpr_20), 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(48), aot_run_words); } ctx.gpr[19] = (aot_gpr_29 + static_cast(48)); ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[20] = (ctx.gpr[20] + static_cast(4)); if (branch_taken) { goto L_0884D118; } goto L_0884D0C4; } L_0884D0C4: ctx.gpr[21] = (ctx.gpr[20] | 0u); goto L_0884D0C8; L_0884D0C8: aot_gpr_31 = (0x0884D0D0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 208u, 0x0884D0D0u, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D0D0u) goto L_0884D0D0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884D0D0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884D108; } goto L_0884D0D8; } L_0884D0D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & 16u); 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_0884D108; } goto L_0884D0F8; } L_0884D0F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); ctx.fpr[22] = ctx.fpr[22] + aot_fpr_12; goto L_0884D108; L_0884D108: ctx.gpr[21] = (ctx.gpr[21] + static_cast(4)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884D0C8; } goto L_0884D118; } L_0884D118: ctx.gpr[21] = (0u | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884D200; } goto L_0884D128; } L_0884D128: ctx.gpr[22] = (aot_gpr_29 + static_cast(32)); aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.fpr[22] = aot_fpr_12 - ctx.fpr[22]; goto L_0884D138; L_0884D138: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884D1E4; } goto L_0884D144; } L_0884D144: aot_gpr_31 = (0x0884D14Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 216u, 0x0884D14Cu, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D14Cu) goto L_0884D14C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884D14C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884D1E4; } goto L_0884D154; } L_0884D154: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884D168u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 218u, 0x0884D168u, 0x089885FCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); #else recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 61u, 0x089885FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D168u) goto L_0884D168; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884D168: { 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<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[22] + 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<4u, 0u, 1u, 4u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<4u>()); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_0884D1A4; } goto L_0884D18C; } L_0884D18C: { 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<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[22] + 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, 4u, 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 bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884D1B4; } goto L_0884D1A4; } L_0884D1A4: { 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<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[22] + 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, 4u, 0u>(); { 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); } goto L_0884D1B4; L_0884D1B4: aot_gpr_31 = (0x0884D1BCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 222u, 0x0884D1BCu, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D1BCu) goto L_0884D1BC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884D1BC: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); 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_0884D1E4; } goto L_0884D1D4; } L_0884D1D4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884D1E0u); aot_gpr_5 = (aot_gpr_29 | 0u); 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 == 0x0884D1E0u) goto L_0884D1E0; AOT_REGCACHE_SYNC_OUT(); return; L_0884D1E0: ctx.gpr[21] = (0u | 1u); goto L_0884D1E4; L_0884D1E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 + static_cast(32)); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(0), aot_gpr_4); ctx.gpr[20] = (ctx.gpr[20] + static_cast(4)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884D138; } goto L_0884D200; } L_0884D200: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(0)))))); aot_gpr_4 = (aot_gpr_4 & 2u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884D254; } goto L_0884D210; } L_0884D210: { 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<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<4u, 0u, 0u, 4u>(); { float vfpu_value[4]{}; ctx.write_vfpu_vector_with_destination_prefix_ct<8u, 1u>(vfpu_value); } ctx.execute_vfpu_vcmp_ct<4u, 8u, 1u, 1u>(); if (((ctx.vfpu_ctrl[3] >> 5u) & 1u) != 0u) { { float vfpu_value[4]{}; vfpu_value[3u] = 1.0f; ctx.write_vfpu_vector_with_destination_prefix_ct<3u, 4u>(vfpu_value); } goto L_0884D230; } goto L_0884D228; L_0884D228: ctx.execute_vfpu_unary_ct<4u, 4u, 1u, 17u>(); ctx.execute_vfpu_vscl_ct<3u, 0u, 4u, 4u>(); goto L_0884D230; L_0884D230: { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<3u, 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); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(8), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(12), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(16), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(60))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(20), std::bit_cast(aot_fpr_12)); goto L_0884D254; L_0884D254: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(0)))))); aot_gpr_4 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884D2BC; } goto L_0884D264; } L_0884D264: { const bool branch_taken = ctx.gpr[21] == 0u; ctx.gpr[17] = (ctx.gpr[17] + static_cast(24)); if (branch_taken) { goto L_0884D294; } goto L_0884D26C; } L_0884D26C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_5 = (std::bit_cast(aot_fpr_13)); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_gpr_6 = (std::bit_cast(aot_fpr_14)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), aot_gpr_5); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(8), aot_gpr_6); if (branch_taken) { goto L_0884D2BC; } goto L_0884D294; } L_0884D294: aot_gpr_4 = (aot_gpr_16 + static_cast(4)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_6 = (std::bit_cast(aot_fpr_13)); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_gpr_4 = (std::bit_cast(aot_fpr_14)); { const std::uint32_t aot_run_words[3]{aot_gpr_5, aot_gpr_6, aot_gpr_4}; aot_mem.aot_direct_store32_block(ctx.gpr[17] + static_cast(0), aot_run_words); } goto L_0884D2BC; L_0884D2BC: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(64), aot_run_words); aot_fpr_20 = std::bit_cast(aot_run_words[0]); ctx.fpr[22] = std::bit_cast(aot_run_words[1]); aot_gpr_16 = aot_run_words[2]; ctx.gpr[17] = aot_run_words[3]; ctx.gpr[18] = aot_run_words[4]; ctx.gpr[19] = aot_run_words[5]; ctx.gpr[20] = aot_run_words[6]; ctx.gpr[21] = aot_run_words[7]; ctx.gpr[22] = 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_0884D2EC: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_6 = (aot_gpr_5 | 0u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0)))))); ctx.gpr[7] = (aot_gpr_5 & 8u); aot_gpr_5 = (aot_gpr_4 | 0u); { const bool branch_taken = ctx.gpr[7] == 0u; aot_gpr_4 = (aot_gpr_6 | 0u); if (branch_taken) { goto L_0884D330; } goto L_0884D30C; } L_0884D30C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29600))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(12))); { const bool branch_taken = aot_gpr_6 == 0u; aot_gpr_6 = (aot_gpr_4 | 0u); if (branch_taken) { goto L_0884D330; } goto L_0884D31C; } L_0884D31C: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x0884D328u); aot_gpr_5 = (aot_gpr_6 | 0u); goto L_0884D854; L_0884D328: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884D330; } goto L_0884D330; } L_0884D330: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); 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_0884D33C: aot_gpr_29 = (aot_gpr_29 + static_cast(-96)); { 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(64), aot_run_words); } aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0)))))); aot_gpr_6 = (aot_gpr_6 & 8u); aot_gpr_16 = (aot_gpr_4 | 0u); { const bool branch_taken = aot_gpr_6 == 0u; ctx.gpr[21] = (aot_gpr_5 | 0u); if (branch_taken) { goto L_0884D3BC; } goto L_0884D374; } L_0884D374: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29600))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884D3BC; } goto L_0884D384; } L_0884D384: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(0)))))); aot_gpr_4 = (aot_gpr_4 & 16u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884D3A8; } goto L_0884D394; } L_0884D394: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0884D3A0u); aot_gpr_5 = (ctx.gpr[21] | 0u); goto L_0884E5B4; L_0884D3A0: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884D3B4; } goto L_0884D3A8; } L_0884D3A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0884D3B4u); aot_gpr_5 = (ctx.gpr[21] | 0u); goto L_0884E140; L_0884D3B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884D5AC; } goto L_0884D3BC; } L_0884D3BC: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); ctx.gpr[19] = (ctx.gpr[19] + static_cast(16)); aot_fpr_20 = std::bit_cast(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(32), aot_run_words); } ctx.gpr[18] = (aot_gpr_29 + static_cast(32)); { const std::uint32_t aot_run_words[4]{std::bit_cast(aot_fpr_20), 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(48), aot_run_words); } ctx.gpr[17] = (aot_gpr_29 + static_cast(48)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[21] = (ctx.gpr[21] + static_cast(4)); if (branch_taken) { goto L_0884D458; } goto L_0884D3F8; } L_0884D3F8: ctx.gpr[20] = (ctx.gpr[21] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884D458; } goto L_0884D408; } L_0884D408: aot_gpr_31 = (0x0884D410u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 250u, 0x0884D410u, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D410u) goto L_0884D410; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884D410: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884D448; } goto L_0884D418; } L_0884D418: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & 16u); 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_0884D448; } goto L_0884D438; } L_0884D438: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_fpr_20 = aot_fpr_20 + aot_fpr_12; goto L_0884D448; L_0884D448: ctx.gpr[20] = (ctx.gpr[20] + static_cast(4)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884D408; } goto L_0884D458; } L_0884D458: ctx.gpr[20] = (ctx.gpr[21] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[21] = (aot_gpr_29 + static_cast(16)); if (branch_taken) { goto L_0884D4F0; } goto L_0884D468; } L_0884D468: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_20 = aot_fpr_12 - aot_fpr_20; goto L_0884D474; L_0884D474: aot_gpr_31 = (0x0884D47Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 257u, 0x0884D47Cu, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D47Cu) goto L_0884D47C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884D47C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884D4D4; } goto L_0884D484; } L_0884D484: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_6 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0884D498u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 259u, 0x0884D498u, 0x089885FCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); #else recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 61u, 0x089885FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D498u) goto L_0884D498; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884D498: aot_gpr_31 = (0x0884D4A0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 260u, 0x0884D4A0u, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D4A0u) goto L_0884D4A0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884D4A0: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); 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_0884D4C4; } goto L_0884D4B8; } L_0884D4B8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884D4C4u); aot_gpr_5 = (aot_gpr_29 | 0u); 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 == 0x0884D4C4u) goto L_0884D4C4; AOT_REGCACHE_SYNC_OUT(); return; L_0884D4C4: { 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); } { const std::uint32_t vfpu_address = ctx.gpr[21] + 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, 4u, 0u>(); { 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); } goto L_0884D4D4; L_0884D4D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 + static_cast(32)); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(0), aot_gpr_4); ctx.gpr[20] = (ctx.gpr[20] + static_cast(4)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884D474; } goto L_0884D4F0; } L_0884D4F0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(0)))))); aot_gpr_4 = (aot_gpr_4 & 2u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884D544; } goto L_0884D500; } L_0884D500: ctx.execute_vfpu_matrix_init_ct<0u, 4u, 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); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<1u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(16); 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); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<2u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(32); 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); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<3u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(48); 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<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<4u, 0u, 0u, 4u>(); { float vfpu_value[4]{}; ctx.write_vfpu_vector_with_destination_prefix_ct<8u, 1u>(vfpu_value); } ctx.execute_vfpu_vcmp_ct<4u, 8u, 1u, 1u>(); if (((ctx.vfpu_ctrl[3] >> 5u) & 1u) != 0u) { { float vfpu_value[4]{}; vfpu_value[3u] = 1.0f; ctx.write_vfpu_vector_with_destination_prefix_ct<3u, 4u>(vfpu_value); } goto L_0884D534; } goto L_0884D52C; L_0884D52C: ctx.execute_vfpu_unary_ct<4u, 4u, 1u, 17u>(); ctx.execute_vfpu_vscl_ct<3u, 0u, 4u, 4u>(); goto L_0884D534; L_0884D534: { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<3u, 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 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0884D544u); aot_gpr_5 = (ctx.gpr[19] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0198. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 268u, 0x0884D544u, 0x08B1D07Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); #else recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 181u, 0x08B1D07Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D544u) goto L_0884D544; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884D544: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(0)))))); aot_gpr_4 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884D5AC; } goto L_0884D554; } L_0884D554: aot_gpr_4 = (ctx.gpr[19] + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_6 = (std::bit_cast(aot_fpr_13)); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); ctx.gpr[7] = (std::bit_cast(aot_fpr_14)); { const std::uint32_t aot_run_words[3]{aot_gpr_5, aot_gpr_6, ctx.gpr[7]}; aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(0), aot_run_words); } ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(48))); ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_fpr_12 = ctx.fpr[15] + ctx.fpr[16]; aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(48), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(52))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(52), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(56))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_fpr_12 = aot_fpr_12 + aot_fpr_14; aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(56), std::bit_cast(aot_fpr_12)); goto L_0884D5AC; L_0884D5AC: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(64), 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(96)); // 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_0884D5D4: 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_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_31 = (0x0884D5ECu); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0026. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 272u, 0x0884D5ECu, 0x0886D34Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 177u, aot_mem); #else recomp_unit_0026_entry(rt, ctx, 177u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 177u, 0x0886D34Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D5ECu) goto L_0884D5EC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884D5EC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884D608; } goto L_0884D5F4; } L_0884D5F4: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884D610; } goto L_0884D600; } L_0884D600: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884D614; } goto L_0884D608; } L_0884D608: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_0884D614; } goto L_0884D610; } L_0884D610: ctx.gpr[2] = (0u | 0u); goto L_0884D614; L_0884D614: 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_0884D624: 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_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); aot_gpr_16 = (aot_gpr_4 | 0u); if (branch_taken) { goto L_0884D674; } goto L_0884D644; } L_0884D644: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(36))); { 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_14 = std::bit_cast(0x7FC00000u); else aot_fpr_14 = fs * ft; } ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_fpr_14 = ctx.fpr[15] + aot_fpr_14; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(16), std::bit_cast(aot_fpr_14)); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_14 <= aot_fpr_13)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_0884D67C; } goto L_0884D66C; } L_0884D66C: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884D6E8; } goto L_0884D674; } L_0884D674: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { goto L_0884D724; } goto L_0884D67C; } L_0884D67C: 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_0884D6E8; } goto L_0884D68C; } L_0884D68C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(16), std::bit_cast(aot_fpr_13)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(36), std::bit_cast(aot_fpr_13)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & 4u); 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_0884D6E8; } goto L_0884D6AC; } L_0884D6AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(52))); aot_gpr_5 = (0u | 2u); { const bool branch_taken = aot_gpr_4 == aot_gpr_5; aot_gpr_5 = (0u | 1u); if (branch_taken) { goto L_0884D6C4; } goto L_0884D6BC; } L_0884D6BC: { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_0884D6D4; } goto L_0884D6C4; } L_0884D6C4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(60))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(56))); jump_target = aot_gpr_6; aot_gpr_31 = (0x0884D6D4u); aot_gpr_4 = (aot_gpr_16 | 0u); 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 == 0x0884D6D4u) goto L_0884D6D4; AOT_REGCACHE_SYNC_OUT(); return; L_0884D6D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0884D6E0u); aot_gpr_5 = (0u | 3u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0034. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 288u, 0x0884D6E0u, 0x0888FE40u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 611u, aot_mem); #else recomp_unit_0034_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_0034_entry, 34u, 611u, 0x0888FE40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D6E0u) goto L_0884D6E0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884D6E0: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_0884D724; } goto L_0884D6E8; } L_0884D6E8: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_14 <= aot_fpr_12)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_0884D720; } goto L_0884D704; } L_0884D704: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(16), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(36))); 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_0884D720; } goto L_0884D71C; } L_0884D71C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(36), std::bit_cast(aot_fpr_13)); goto L_0884D720; L_0884D720: ctx.gpr[2] = (0u | 1u); goto L_0884D724; L_0884D724: 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_0884D734: 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_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_gpr_6 = (aot_gpr_5 & 1u); { const bool branch_taken = aot_gpr_6 == 0u; aot_gpr_16 = (0u | 1u); if (branch_taken) { goto L_0884D840; } goto L_0884D750; } L_0884D750: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(40))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(32))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(32))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_14 < ctx.fpr[15])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_0884D78C; } goto L_0884D76C; } L_0884D76C: ctx.gpr[7] = (aot_gpr_5 & 32u); ctx.gpr[7] = (0u < ctx.gpr[7] ? 1u : 0u); ctx.gpr[7] = (ctx.gpr[7] & 255u); { const bool branch_taken = ctx.gpr[7] != 0u; if (branch_taken) { goto L_0884D7A0; } goto L_0884D780; } L_0884D780: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(44))); { const bool branch_taken = 0u == 0u; { 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; } if (branch_taken) { goto L_0884D7AC; } goto L_0884D78C; } L_0884D78C: aot_gpr_6 = (0u + static_cast(-2)); aot_gpr_5 = (aot_gpr_5 & aot_gpr_6); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (aot_gpr_16 | 0u); if (branch_taken) { goto L_0884D844; } goto L_0884D7A0; } L_0884D7A0: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(32))); { 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)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = 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; } goto L_0884D7AC; L_0884D7AC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), std::bit_cast(aot_fpr_12)); aot_fpr_14 = aot_fpr_14 + aot_fpr_12; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(40), std::bit_cast(aot_fpr_14)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(32))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_14 < aot_fpr_13)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_0884D840; } goto L_0884D7CC; } L_0884D7CC: ctx.gpr[7] = (aot_gpr_5 & 2u); ctx.gpr[7] = (0u < ctx.gpr[7] ? 1u : 0u); ctx.gpr[7] = (ctx.gpr[7] & 255u); { const bool branch_taken = ctx.gpr[7] == 0u; if (branch_taken) { goto L_0884D7F0; } goto L_0884D7E0; } L_0884D7E0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(32))); aot_fpr_12 = aot_fpr_14 - aot_fpr_12; { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(40), std::bit_cast(aot_fpr_12)); if (branch_taken) { goto L_0884D840; } goto L_0884D7F0; } L_0884D7F0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(32))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(40), std::bit_cast(aot_fpr_12)); aot_gpr_6 = (aot_gpr_5 & 8u); 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_0884D820; } goto L_0884D80C; } L_0884D80C: aot_gpr_5 = (aot_gpr_5 | 4u); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); aot_gpr_5 = (49280u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(36), std::bit_cast(aot_fpr_12)); goto L_0884D820; L_0884D820: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(52))); aot_gpr_6 = (0u | 1u); { const bool branch_taken = aot_gpr_5 != aot_gpr_6; if (branch_taken) { goto L_0884D840; } goto L_0884D830; } L_0884D830: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(52), 0u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(56))); jump_target = aot_gpr_6; aot_gpr_31 = (0x0884D840u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(60))); 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 == 0x0884D840u) goto L_0884D840; AOT_REGCACHE_SYNC_OUT(); return; L_0884D840: ctx.gpr[2] = (aot_gpr_16 | 0u); goto L_0884D844; L_0884D844: 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_0884D854: aot_gpr_29 = (aot_gpr_29 + static_cast(-160)); { const std::uint32_t aot_run_words[12]{std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[22]), 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(112), aot_run_words); } ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); ctx.gpr[21] = (aot_gpr_5 | 0u); aot_fpr_20 = std::bit_cast(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 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(16), aot_run_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(32), aot_run_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(64), aot_run_words); } ctx.gpr[18] = (aot_gpr_29 + static_cast(64)); { const std::uint32_t aot_run_words[4]{std::bit_cast(aot_fpr_20), 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(96), aot_run_words); } ctx.gpr[19] = (aot_gpr_29 + static_cast(96)); ctx.gpr[20] = (0u | 0u); ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(4))); { const bool branch_taken = aot_gpr_5 == 0u; aot_gpr_16 = (aot_gpr_4 | 0u); if (branch_taken) { goto L_0884D908; } goto L_0884D8F0; } L_0884D8F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); ctx.gpr[21] = (ctx.gpr[21] + static_cast(4)); { const bool branch_taken = aot_gpr_4 != 0u; ctx.gpr[22] = (aot_gpr_29 + static_cast(48)); if (branch_taken) { goto L_0884D910; } goto L_0884D900; } L_0884D900: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884D964; } goto L_0884D908; } L_0884D908: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884DD5C; } goto L_0884D910; } L_0884D910: ctx.gpr[23] = (ctx.gpr[21] | 0u); goto L_0884D914; L_0884D914: aot_gpr_31 = (0x0884D91Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 315u, 0x0884D91Cu, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D91Cu) goto L_0884D91C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884D91C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884D954; } goto L_0884D924; } L_0884D924: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & 16u); 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_0884D954; } goto L_0884D944; } L_0884D944: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); ctx.fpr[22] = ctx.fpr[22] + aot_fpr_12; goto L_0884D954; L_0884D954: ctx.gpr[23] = (ctx.gpr[23] + static_cast(4)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884D914; } goto L_0884D964; } L_0884D964: ctx.gpr[23] = (ctx.gpr[21] | 0u); aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.fpr[22] = aot_fpr_12 - ctx.fpr[22]; goto L_0884D974; L_0884D974: aot_gpr_31 = (0x0884D97Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 321u, 0x0884D97Cu, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D97Cu) goto L_0884D97C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884D97C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884DA14; } goto L_0884D984; } L_0884D984: aot_gpr_31 = (0x0884D98Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 323u, 0x0884D98Cu, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D98Cu) goto L_0884D98C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884D98C: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); 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_0884DA14; } goto L_0884D9A4; } L_0884D9A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); 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_0884DA14; } goto L_0884D9C4; } L_0884D9C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884D9D4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 326u, 0x0884D9D4u, 0x089883DCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 46u, aot_mem); #else recomp_unit_0097_entry(rt, ctx, 46u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 46u, 0x089883DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D9D4u) goto L_0884D9D4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884D9D4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & 128u); 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_0884DA14; } goto L_0884DA04; } L_0884DA04: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(aot_fpr_12)); goto L_0884DA14; L_0884DA14: ctx.gpr[23] = (ctx.gpr[23] + static_cast(4)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884D974; } goto L_0884DA24; } L_0884DA24: ctx.gpr[23] = (aot_gpr_29 + static_cast(80)); goto L_0884DA28; L_0884DA28: aot_gpr_31 = (0x0884DA30u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 331u, 0x0884DA30u, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DA30u) goto L_0884DA30; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884DA30: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884DB88; } goto L_0884DA38; } L_0884DA38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_6 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0884DA4Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 333u, 0x0884DA4Cu, 0x089885FCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); #else recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 61u, 0x089885FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DA4Cu) goto L_0884DA4C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884DA4C: ctx.gpr[30] = (ctx.gpr[2] | 0u); { 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<0u, 4u>(vfpu_value); } { 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<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<4u, 0u, 1u, 4u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<4u>()); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_0884DA8C; } goto L_0884DA74; } L_0884DA74: { 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<0u, 4u>(vfpu_value); } { 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<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 4u, 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 bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884DA9C; } goto L_0884DA8C; } L_0884DA8C: { 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<0u, 4u>(vfpu_value); } { 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<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 4u, 0u>(); { 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); } goto L_0884DA9C; L_0884DA9C: aot_gpr_31 = (0x0884DAA4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 337u, 0x0884DAA4u, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DAA4u) goto L_0884DAA4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884DAA4: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); 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_0884DB88; } goto L_0884DABC; } L_0884DABC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884DAC8u); aot_gpr_5 = (ctx.gpr[22] | 0u); 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 == 0x0884DAC8u) goto L_0884DAC8; AOT_REGCACHE_SYNC_OUT(); return; L_0884DAC8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); 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_0884DB88; } goto L_0884DAE8; } L_0884DAE8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & 128u); 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_0884DB28; } goto L_0884DB18; } L_0884DB18: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), std::bit_cast(aot_fpr_12)); goto L_0884DB28; L_0884DB28: ctx.gpr[20] = (ctx.gpr[20] | ctx.gpr[30]); ctx.gpr[20] = (0u < ctx.gpr[20] ? 1u : 0u); { const bool branch_taken = ctx.gpr[30] == 0u; if (branch_taken) { goto L_0884DB88; } goto L_0884DB38; } L_0884DB38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884DB48u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 344u, 0x0884DB48u, 0x08988298u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 34u, aot_mem); #else recomp_unit_0097_entry(rt, ctx, 34u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 34u, 0x08988298u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DB48u) goto L_0884DB48; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884DB48: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & 128u); 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_0884DB88; } goto L_0884DB78; } L_0884DB78: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), std::bit_cast(aot_fpr_12)); goto L_0884DB88; L_0884DB88: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 + static_cast(32)); aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(0), aot_gpr_4); ctx.gpr[21] = (ctx.gpr[21] + static_cast(4)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884DA28; } goto L_0884DBA4; } L_0884DBA4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(0)))))); aot_gpr_4 = (aot_gpr_4 & 2u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884DBF8; } goto L_0884DBB4; } L_0884DBB4: { 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<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<4u, 0u, 0u, 4u>(); { float vfpu_value[4]{}; ctx.write_vfpu_vector_with_destination_prefix_ct<8u, 1u>(vfpu_value); } ctx.execute_vfpu_vcmp_ct<4u, 8u, 1u, 1u>(); if (((ctx.vfpu_ctrl[3] >> 5u) & 1u) != 0u) { { float vfpu_value[4]{}; vfpu_value[3u] = 1.0f; ctx.write_vfpu_vector_with_destination_prefix_ct<3u, 4u>(vfpu_value); } goto L_0884DBD4; } goto L_0884DBCC; L_0884DBCC: ctx.execute_vfpu_unary_ct<4u, 4u, 1u, 17u>(); ctx.execute_vfpu_vscl_ct<3u, 0u, 4u, 4u>(); goto L_0884DBD4; L_0884DBD4: { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<3u, 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); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(8), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(12), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(16), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(20), std::bit_cast(aot_fpr_12)); goto L_0884DBF8; L_0884DBF8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(0)))))); aot_gpr_4 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884DD5C; } goto L_0884DC08; } L_0884DC08: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_fpr_12 = aot_fpr_12 - aot_fpr_13; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29600))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_fpr_12 = aot_fpr_12 - aot_fpr_14; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29600))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), std::bit_cast(aot_fpr_12)); { const bool branch_taken = ctx.gpr[20] == 0u; if (branch_taken) { goto L_0884DC74; } goto L_0884DC40; } L_0884DC40: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29600))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29600))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_gpr_4 = (aot_gpr_4 + static_cast(4)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); aot_fpr_12 = aot_fpr_12 + aot_fpr_14; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), std::bit_cast(aot_fpr_12)); goto L_0884DC74; L_0884DC74: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_fpr_12 = aot_fpr_12 - aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_fpr_12 = aot_fpr_12 - aot_fpr_14; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(68), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (ctx.gpr[17] + static_cast(24)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_6 = (std::bit_cast(aot_fpr_13)); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); ctx.gpr[7] = (std::bit_cast(ctx.fpr[15])); { const std::uint32_t aot_run_words[3]{aot_gpr_5, aot_gpr_6, ctx.gpr[7]}; aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(0), aot_run_words); } aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(32))); aot_gpr_4 = (48972u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_14 < aot_fpr_12)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_0884DD3C; } goto L_0884DCDC; } L_0884DCDC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(32))); aot_gpr_4 = (48844u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); 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_0884DD2C; } goto L_0884DCFC; } L_0884DCFC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(32))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_4 = (16416u << 16u); aot_fpr_14 = std::bit_cast(aot_gpr_4); { 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_14 = std::bit_cast(0x7FC00000u); else aot_fpr_14 = fs * ft; } aot_gpr_4 = (16384u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_4); aot_fpr_14 = aot_fpr_14 + ctx.fpr[15]; { 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; } aot_fpr_12 = aot_fpr_12 + aot_fpr_13; { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(32), std::bit_cast(aot_fpr_12)); if (branch_taken) { goto L_0884DD3C; } goto L_0884DD2C; } L_0884DD2C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(32))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(32), std::bit_cast(aot_fpr_12)); goto L_0884DD3C; L_0884DD3C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(24))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(24), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(28))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_fpr_12 = aot_fpr_12 + aot_fpr_14; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(28), std::bit_cast(aot_fpr_12)); goto L_0884DD5C; L_0884DD5C: { std::uint32_t aot_run_words[12]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(112), aot_run_words); aot_fpr_20 = std::bit_cast(aot_run_words[0]); ctx.fpr[22] = std::bit_cast(aot_run_words[1]); aot_gpr_16 = aot_run_words[2]; ctx.gpr[17] = aot_run_words[3]; ctx.gpr[18] = aot_run_words[4]; ctx.gpr[19] = aot_run_words[5]; ctx.gpr[20] = aot_run_words[6]; ctx.gpr[21] = aot_run_words[7]; ctx.gpr[22] = aot_run_words[8]; ctx.gpr[23] = aot_run_words[9]; ctx.gpr[30] = aot_run_words[10]; aot_gpr_31 = aot_run_words[11]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); // 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_0884DD94: aot_gpr_29 = (aot_gpr_29 + static_cast(-208)); { const std::uint32_t aot_run_words[11]{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], ctx.gpr[30], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(152), aot_run_words); } aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_fpr_20 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(144), aot_gpr_6); { 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 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(16), aot_run_words); } ctx.gpr[23] = (aot_gpr_29 + static_cast(16)); { 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(32), aot_run_words); } ctx.gpr[30] = (aot_gpr_29 + static_cast(32)); { 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(64), aot_run_words); } ctx.gpr[22] = (aot_gpr_29 + static_cast(64)); { const std::uint32_t aot_run_words[4]{std::bit_cast(aot_fpr_20), 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(96), aot_run_words); } ctx.gpr[20] = (aot_gpr_29 + static_cast(96)); ctx.gpr[21] = (0u | 0u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[17] = (aot_gpr_5 + static_cast(4)); ctx.gpr[18] = (aot_gpr_29 + static_cast(48)); { const bool branch_taken = aot_gpr_6 == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(148), aot_gpr_4); if (branch_taken) { goto L_0884DE8C; } goto L_0884DE38; } L_0884DE38: aot_gpr_16 = (ctx.gpr[17] | 0u); goto L_0884DE3C; L_0884DE3C: aot_gpr_31 = (0x0884DE44u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 363u, 0x0884DE44u, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DE44u) goto L_0884DE44; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884DE44: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884DE7C; } goto L_0884DE4C; } L_0884DE4C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & 16u); 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_0884DE7C; } goto L_0884DE6C; } L_0884DE6C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_fpr_20 = aot_fpr_20 + aot_fpr_12; goto L_0884DE7C; L_0884DE7C: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884DE3C; } goto L_0884DE8C; } L_0884DE8C: aot_gpr_16 = (ctx.gpr[17] | 0u); aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_20 = aot_fpr_12 - aot_fpr_20; goto L_0884DE9C; L_0884DE9C: aot_gpr_31 = (0x0884DEA4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 369u, 0x0884DEA4u, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DEA4u) goto L_0884DEA4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884DEA4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884DF08; } goto L_0884DEAC; } L_0884DEAC: aot_gpr_31 = (0x0884DEB4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 371u, 0x0884DEB4u, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DEB4u) goto L_0884DEB4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884DEB4: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); 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_0884DF08; } goto L_0884DECC; } L_0884DECC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); 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_0884DF08; } goto L_0884DEEC; } L_0884DEEC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884DEFCu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 374u, 0x0884DEFCu, 0x089883DCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 46u, aot_mem); #else recomp_unit_0097_entry(rt, ctx, 46u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 46u, 0x089883DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DEFCu) goto L_0884DEFC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884DEFC: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0884DF08u); aot_gpr_5 = (ctx.gpr[18] | 0u); 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 == 0x0884DF08u) goto L_0884DF08; AOT_REGCACHE_SYNC_OUT(); return; L_0884DF08: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884DE9C; } goto L_0884DF18; } L_0884DF18: aot_gpr_16 = (ctx.gpr[17] | 0u); ctx.gpr[19] = (aot_gpr_29 + static_cast(80)); goto L_0884DF20; L_0884DF20: aot_gpr_31 = (0x0884DF28u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 378u, 0x0884DF28u, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DF28u) goto L_0884DF28; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884DF28: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884DFDC; } goto L_0884DF30; } L_0884DF30: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0884DF44u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 380u, 0x0884DF44u, 0x089885FCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); #else recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 61u, 0x089885FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DF44u) goto L_0884DF44; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884DF44: ctx.gpr[17] = (ctx.gpr[2] | 0u); { 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 = 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); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 4u, 0u>(); { 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_31 = (0x0884DF60u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 381u, 0x0884DF60u, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DF60u) goto L_0884DF60; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884DF60: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); 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_0884DFDC; } goto L_0884DF78; } L_0884DF78: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884DF84u); aot_gpr_5 = (ctx.gpr[18] | 0u); 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 == 0x0884DF84u) goto L_0884DF84; AOT_REGCACHE_SYNC_OUT(); return; L_0884DF84: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); 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_0884DFDC; } goto L_0884DFA4; } L_0884DFA4: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0884DFB0u); aot_gpr_5 = (ctx.gpr[18] | 0u); 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 == 0x0884DFB0u) goto L_0884DFB0; AOT_REGCACHE_SYNC_OUT(); return; L_0884DFB0: ctx.gpr[21] = (ctx.gpr[21] | ctx.gpr[17]); ctx.gpr[21] = (0u < ctx.gpr[21] ? 1u : 0u); { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { goto L_0884DFDC; } goto L_0884DFC0; } L_0884DFC0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884DFD0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 387u, 0x0884DFD0u, 0x08988298u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 34u, aot_mem); #else recomp_unit_0097_entry(rt, ctx, 34u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 34u, 0x08988298u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DFD0u) goto L_0884DFD0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884DFD0: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0884DFDCu); aot_gpr_5 = (ctx.gpr[18] | 0u); 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 == 0x0884DFDCu) goto L_0884DFDC; AOT_REGCACHE_SYNC_OUT(); return; L_0884DFDC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 + static_cast(32)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), aot_gpr_4); aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884DF20; } goto L_0884DFF8; } L_0884DFF8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(148))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0)))))); aot_gpr_5 = (aot_gpr_5 & 2u); { const bool branch_taken = aot_gpr_5 != 0u; if (branch_taken) { goto L_0884E054; } goto L_0884E00C; } L_0884E00C: { 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<4u, 0u, 0u, 4u>(); { float vfpu_value[4]{}; ctx.write_vfpu_vector_with_destination_prefix_ct<8u, 1u>(vfpu_value); } ctx.execute_vfpu_vcmp_ct<4u, 8u, 1u, 1u>(); if (((ctx.vfpu_ctrl[3] >> 5u) & 1u) != 0u) { { float vfpu_value[4]{}; vfpu_value[3u] = 1.0f; ctx.write_vfpu_vector_with_destination_prefix_ct<3u, 4u>(vfpu_value); } goto L_0884E02C; } goto L_0884E024; L_0884E024: ctx.execute_vfpu_unary_ct<4u, 4u, 1u, 17u>(); ctx.execute_vfpu_vscl_ct<3u, 0u, 4u, 4u>(); goto L_0884E02C; L_0884E02C: { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<3u, 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_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(8), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(12), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(16), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(20), std::bit_cast(aot_fpr_12)); goto L_0884E054; L_0884E054: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0)))))); aot_gpr_4 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884E10C; } goto L_0884E064; } L_0884E064: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); aot_gpr_16 = (aot_gpr_16 + static_cast(24)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29600))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); { 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); } { 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_vec3_ct<0u, 0u, 1u, 3u, 1u>(); 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_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); } { 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 bool branch_taken = ctx.gpr[21] == 0u; if (branch_taken) { goto L_0884E0A8; } goto L_0884E098; } L_0884E098: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29600))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_gpr_31 = (0x0884E0A8u); aot_gpr_5 = (ctx.gpr[30] | 0u); 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 == 0x0884E0A8u) goto L_0884E0A8; AOT_REGCACHE_SYNC_OUT(); return; L_0884E0A8: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884E0B4u); aot_gpr_5 = (ctx.gpr[23] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0163. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 397u, 0x0884E0B4u, 0x08A931D0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); #else recomp_unit_0163_entry(rt, ctx, 464u, 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, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E0B4u) goto L_0884E0B4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E0B4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(4))); aot_gpr_5 = (std::bit_cast(aot_fpr_13)); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(8))); 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_16 + static_cast(0), aot_run_words); } aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(148))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_fpr_12 = ctx.fpr[15] + aot_fpr_12; aot_mem.aot_direct_store32(aot_gpr_16 + 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(4))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_16 + 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(8))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_fpr_12 = aot_fpr_12 + aot_fpr_14; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(8), std::bit_cast(aot_fpr_12)); goto L_0884E10C; L_0884E10C: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(152), 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]; ctx.gpr[30] = aot_run_words[9]; aot_gpr_31 = aot_run_words[10]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); // 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_0884E140: aot_gpr_29 = (aot_gpr_29 + static_cast(-160)); { const std::uint32_t aot_run_words[12]{std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[22]), 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(112), aot_run_words); } ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); ctx.gpr[17] = (ctx.gpr[17] + static_cast(16)); aot_fpr_20 = std::bit_cast(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 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(16), aot_run_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(32), aot_run_words); } ctx.gpr[18] = (aot_gpr_29 + static_cast(32)); { 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(48), aot_run_words); } { const std::uint32_t aot_run_words[4]{std::bit_cast(aot_fpr_20), 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(64), aot_run_words); } ctx.gpr[19] = (aot_gpr_29 + static_cast(64)); ctx.gpr[20] = (0u | 0u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[21] = (aot_gpr_5 + static_cast(4)); { const bool branch_taken = aot_gpr_6 == 0u; aot_gpr_16 = (aot_gpr_4 | 0u); if (branch_taken) { goto L_0884E23C; } goto L_0884E1DC; } L_0884E1DC: ctx.gpr[22] = (ctx.gpr[21] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884E23C; } goto L_0884E1EC; } L_0884E1EC: aot_gpr_31 = (0x0884E1F4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 402u, 0x0884E1F4u, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E1F4u) goto L_0884E1F4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E1F4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884E22C; } goto L_0884E1FC; } L_0884E1FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & 16u); 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_0884E22C; } goto L_0884E21C; } L_0884E21C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_fpr_20 = aot_fpr_20 + aot_fpr_12; goto L_0884E22C; L_0884E22C: ctx.gpr[22] = (ctx.gpr[22] + static_cast(4)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884E1EC; } goto L_0884E23C; } L_0884E23C: ctx.gpr[23] = (ctx.gpr[21] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[22] = (aot_gpr_29 + static_cast(80)); if (branch_taken) { goto L_0884E308; } goto L_0884E24C; } L_0884E24C: aot_gpr_4 = (16256u << 16u); ctx.fpr[22] = std::bit_cast(aot_gpr_4); ctx.fpr[22] = ctx.fpr[22] - aot_fpr_20; goto L_0884E258; L_0884E258: aot_gpr_31 = (0x0884E260u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 409u, 0x0884E260u, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E260u) goto L_0884E260; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E260: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884E2F8; } goto L_0884E268; } L_0884E268: aot_gpr_31 = (0x0884E270u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 411u, 0x0884E270u, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E270u) goto L_0884E270; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E270: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); 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_0884E2F8; } goto L_0884E288; } L_0884E288: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); 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_0884E2F8; } goto L_0884E2A8; } L_0884E2A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884E2B8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 414u, 0x0884E2B8u, 0x089883DCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 46u, aot_mem); #else recomp_unit_0097_entry(rt, ctx, 46u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 46u, 0x089883DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E2B8u) goto L_0884E2B8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E2B8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & 128u); 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_0884E2F8; } goto L_0884E2E8; } L_0884E2E8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(aot_fpr_12)); goto L_0884E2F8; L_0884E2F8: ctx.gpr[23] = (ctx.gpr[23] + static_cast(4)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884E258; } goto L_0884E308; } L_0884E308: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[22] = (aot_gpr_29 + static_cast(80)); if (branch_taken) { goto L_0884E464; } goto L_0884E314; } L_0884E314: ctx.gpr[23] = (aot_gpr_29 + static_cast(96)); aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_20 = aot_fpr_12 - aot_fpr_20; goto L_0884E324; L_0884E324: aot_gpr_31 = (0x0884E32Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 420u, 0x0884E32Cu, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E32Cu) goto L_0884E32C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E32C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884E448; } goto L_0884E334; } L_0884E334: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_6 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0884E348u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 422u, 0x0884E348u, 0x089885FCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); #else recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 61u, 0x089885FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E348u) goto L_0884E348; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E348: ctx.gpr[30] = (ctx.gpr[2] | 0u); { 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<0u, 4u>(vfpu_value); } { 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<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 4u, 0u>(); { 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); } aot_gpr_31 = (0x0884E364u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 423u, 0x0884E364u, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E364u) goto L_0884E364; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E364: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); 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_0884E448; } goto L_0884E37C; } L_0884E37C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884E388u); aot_gpr_5 = (ctx.gpr[22] | 0u); 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 == 0x0884E388u) goto L_0884E388; AOT_REGCACHE_SYNC_OUT(); return; L_0884E388: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); 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_0884E448; } goto L_0884E3A8; } L_0884E3A8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & 128u); 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_0884E3E8; } goto L_0884E3D8; } L_0884E3D8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), std::bit_cast(aot_fpr_12)); goto L_0884E3E8; L_0884E3E8: ctx.gpr[20] = (ctx.gpr[20] | ctx.gpr[30]); ctx.gpr[20] = (0u < ctx.gpr[20] ? 1u : 0u); { const bool branch_taken = ctx.gpr[30] == 0u; if (branch_taken) { goto L_0884E448; } goto L_0884E3F8; } L_0884E3F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884E408u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 430u, 0x0884E408u, 0x08988298u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 34u, aot_mem); #else recomp_unit_0097_entry(rt, ctx, 34u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 34u, 0x08988298u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E408u) goto L_0884E408; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E408: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(52), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & 128u); 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_0884E448; } goto L_0884E438; } L_0884E438: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), std::bit_cast(aot_fpr_12)); goto L_0884E448; L_0884E448: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 + static_cast(32)); aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(0), aot_gpr_4); ctx.gpr[21] = (ctx.gpr[21] + static_cast(4)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884E324; } goto L_0884E464; } L_0884E464: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(0)))))); aot_gpr_4 = (aot_gpr_4 & 2u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884E4B8; } goto L_0884E474; } L_0884E474: ctx.execute_vfpu_matrix_init_ct<0u, 4u, 3u>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); 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); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<1u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(16); 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); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<2u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(32); 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); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<3u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(48); 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<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<4u, 0u, 0u, 4u>(); { float vfpu_value[4]{}; ctx.write_vfpu_vector_with_destination_prefix_ct<8u, 1u>(vfpu_value); } ctx.execute_vfpu_vcmp_ct<4u, 8u, 1u, 1u>(); if (((ctx.vfpu_ctrl[3] >> 5u) & 1u) != 0u) { { float vfpu_value[4]{}; vfpu_value[3u] = 1.0f; ctx.write_vfpu_vector_with_destination_prefix_ct<3u, 4u>(vfpu_value); } goto L_0884E4A8; } goto L_0884E4A0; L_0884E4A0: ctx.execute_vfpu_unary_ct<4u, 4u, 1u, 17u>(); ctx.execute_vfpu_vscl_ct<3u, 0u, 4u, 4u>(); goto L_0884E4A8; L_0884E4A8: { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<3u, 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); } aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0884E4B8u); aot_gpr_5 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0198. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 437u, 0x0884E4B8u, 0x08B1D07Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); #else recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 181u, 0x08B1D07Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E4B8u) goto L_0884E4B8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E4B8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(0)))))); aot_gpr_4 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884E57C; } goto L_0884E4C8; } L_0884E4C8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_fpr_12 = aot_fpr_12 - aot_fpr_13; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29600))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_fpr_12 = aot_fpr_12 - aot_fpr_14; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29600))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), std::bit_cast(aot_fpr_12)); { const bool branch_taken = ctx.gpr[20] == 0u; if (branch_taken) { goto L_0884E534; } goto L_0884E500; } L_0884E500: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29600))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29600))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_gpr_4 = (aot_gpr_4 + static_cast(4)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); aot_fpr_12 = aot_fpr_12 + aot_fpr_14; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), std::bit_cast(aot_fpr_12)); goto L_0884E534; L_0884E534: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_fpr_12 = aot_fpr_12 - aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_fpr_12 = aot_fpr_12 - aot_fpr_14; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (ctx.gpr[17] + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_6 = (std::bit_cast(aot_fpr_13)); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); ctx.gpr[7] = (std::bit_cast(ctx.fpr[15])); { const std::uint32_t aot_run_words[3]{aot_gpr_5, aot_gpr_6, ctx.gpr[7]}; aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(0), aot_run_words); } goto L_0884E57C; L_0884E57C: { std::uint32_t aot_run_words[12]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(112), aot_run_words); aot_fpr_20 = std::bit_cast(aot_run_words[0]); ctx.fpr[22] = std::bit_cast(aot_run_words[1]); aot_gpr_16 = aot_run_words[2]; ctx.gpr[17] = aot_run_words[3]; ctx.gpr[18] = aot_run_words[4]; ctx.gpr[19] = aot_run_words[5]; ctx.gpr[20] = aot_run_words[6]; ctx.gpr[21] = aot_run_words[7]; ctx.gpr[22] = aot_run_words[8]; ctx.gpr[23] = aot_run_words[9]; ctx.gpr[30] = aot_run_words[10]; aot_gpr_31 = aot_run_words[11]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); // 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_0884E5B4: aot_gpr_29 = (aot_gpr_29 + static_cast(-192)); { const std::uint32_t aot_run_words[11]{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], ctx.gpr[30], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(148), aot_run_words); } ctx.gpr[30] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); ctx.gpr[30] = (ctx.gpr[30] + static_cast(16)); aot_fpr_20 = std::bit_cast(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 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(16), aot_run_words); } ctx.gpr[23] = (aot_gpr_29 + static_cast(16)); { 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(32), aot_run_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(48), aot_run_words); } ctx.gpr[22] = (aot_gpr_29 + static_cast(48)); { const std::uint32_t aot_run_words[4]{std::bit_cast(aot_fpr_20), 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(64), aot_run_words); } ctx.gpr[20] = (aot_gpr_29 + static_cast(64)); ctx.gpr[21] = (0u | 0u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[17] = (aot_gpr_5 + static_cast(4)); ctx.gpr[18] = (aot_gpr_29 + static_cast(80)); { const bool branch_taken = aot_gpr_6 == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(144), aot_gpr_4); if (branch_taken) { goto L_0884E6A8; } goto L_0884E654; } L_0884E654: aot_gpr_16 = (ctx.gpr[17] | 0u); goto L_0884E658; L_0884E658: aot_gpr_31 = (0x0884E660u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 445u, 0x0884E660u, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E660u) goto L_0884E660; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E660: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884E698; } goto L_0884E668; } L_0884E668: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & 16u); 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_0884E698; } goto L_0884E688; } L_0884E688: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_fpr_20 = aot_fpr_20 + aot_fpr_12; goto L_0884E698; L_0884E698: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884E658; } goto L_0884E6A8; } L_0884E6A8: aot_gpr_16 = (ctx.gpr[17] | 0u); aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_20 = aot_fpr_12 - aot_fpr_20; goto L_0884E6B8; L_0884E6B8: aot_gpr_31 = (0x0884E6C0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 451u, 0x0884E6C0u, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E6C0u) goto L_0884E6C0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E6C0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884E724; } goto L_0884E6C8; } L_0884E6C8: aot_gpr_31 = (0x0884E6D0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 453u, 0x0884E6D0u, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E6D0u) goto L_0884E6D0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E6D0: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); 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_0884E724; } goto L_0884E6E8; } L_0884E6E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); 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_0884E724; } goto L_0884E708; } L_0884E708: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884E718u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 456u, 0x0884E718u, 0x089883DCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 46u, aot_mem); #else recomp_unit_0097_entry(rt, ctx, 46u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 46u, 0x089883DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E718u) goto L_0884E718; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E718: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0884E724u); aot_gpr_5 = (ctx.gpr[18] | 0u); 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 == 0x0884E724u) goto L_0884E724; AOT_REGCACHE_SYNC_OUT(); return; L_0884E724: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884E6B8; } goto L_0884E734; } L_0884E734: aot_gpr_16 = (ctx.gpr[17] | 0u); ctx.gpr[19] = (aot_gpr_29 + static_cast(96)); goto L_0884E73C; L_0884E73C: aot_gpr_31 = (0x0884E744u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 460u, 0x0884E744u, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E744u) goto L_0884E744; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E744: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884E7F8; } goto L_0884E74C; } L_0884E74C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0884E760u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 462u, 0x0884E760u, 0x089885FCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); #else recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 61u, 0x089885FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E760u) goto L_0884E760; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E760: ctx.gpr[17] = (ctx.gpr[2] | 0u); { 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 = 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); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 4u, 0u>(); { 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_31 = (0x0884E77Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 463u, 0x0884E77Cu, 0x08988080u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); #else recomp_unit_0097_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_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E77Cu) goto L_0884E77C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E77C: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); 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_0884E7F8; } goto L_0884E794; } L_0884E794: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884E7A0u); aot_gpr_5 = (ctx.gpr[18] | 0u); 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 == 0x0884E7A0u) goto L_0884E7A0; AOT_REGCACHE_SYNC_OUT(); return; L_0884E7A0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); 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_0884E7F8; } goto L_0884E7C0; } L_0884E7C0: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0884E7CCu); aot_gpr_5 = (ctx.gpr[18] | 0u); 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 == 0x0884E7CCu) goto L_0884E7CC; AOT_REGCACHE_SYNC_OUT(); return; L_0884E7CC: ctx.gpr[21] = (ctx.gpr[21] | ctx.gpr[17]); ctx.gpr[21] = (0u < ctx.gpr[21] ? 1u : 0u); { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { goto L_0884E7F8; } goto L_0884E7DC; } L_0884E7DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884E7ECu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 469u, 0x0884E7ECu, 0x08988298u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 34u, aot_mem); #else recomp_unit_0097_entry(rt, ctx, 34u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 34u, 0x08988298u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E7ECu) goto L_0884E7EC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E7EC: aot_gpr_4 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x0884E7F8u); aot_gpr_5 = (ctx.gpr[18] | 0u); 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 == 0x0884E7F8u) goto L_0884E7F8; AOT_REGCACHE_SYNC_OUT(); return; L_0884E7F8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 + static_cast(32)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), aot_gpr_4); aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884E73C; } goto L_0884E814; } L_0884E814: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(0)))))); aot_gpr_4 = (aot_gpr_4 & 2u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884E86C; } goto L_0884E828; } L_0884E828: ctx.execute_vfpu_matrix_init_ct<0u, 4u, 3u>(); { 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); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<1u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(16); 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); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<2u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(32); 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); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<3u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(48); 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[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<4u, 0u, 0u, 4u>(); { float vfpu_value[4]{}; ctx.write_vfpu_vector_with_destination_prefix_ct<8u, 1u>(vfpu_value); } ctx.execute_vfpu_vcmp_ct<4u, 8u, 1u, 1u>(); if (((ctx.vfpu_ctrl[3] >> 5u) & 1u) != 0u) { { float vfpu_value[4]{}; vfpu_value[3u] = 1.0f; ctx.write_vfpu_vector_with_destination_prefix_ct<3u, 4u>(vfpu_value); } goto L_0884E85C; } goto L_0884E854; L_0884E854: ctx.execute_vfpu_unary_ct<4u, 4u, 1u, 17u>(); ctx.execute_vfpu_vscl_ct<3u, 0u, 4u, 4u>(); goto L_0884E85C; L_0884E85C: { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<3u, 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 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0884E86Cu); aot_gpr_5 = (ctx.gpr[30] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0198. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 475u, 0x0884E86Cu, 0x08B1D07Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); #else recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 181u, 0x08B1D07Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E86Cu) goto L_0884E86C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E86C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(0)))))); aot_gpr_4 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884E91C; } goto L_0884E87C; } L_0884E87C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29600))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); { 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); } { 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_vec3_ct<0u, 0u, 1u, 3u, 1u>(); 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_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); } { 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 bool branch_taken = ctx.gpr[21] == 0u; if (branch_taken) { goto L_0884E8B8; } goto L_0884E8A8; } L_0884E8A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29600))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_gpr_31 = (0x0884E8B8u); aot_gpr_5 = (aot_gpr_29 + static_cast(32)); 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 == 0x0884E8B8u) goto L_0884E8B8; AOT_REGCACHE_SYNC_OUT(); return; L_0884E8B8: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884E8C4u); aot_gpr_5 = (ctx.gpr[23] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0163. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 479u, 0x0884E8C4u, 0x08A931D0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); #else recomp_unit_0163_entry(rt, ctx, 464u, 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, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E8C4u) goto L_0884E8C4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E8C4: aot_gpr_4 = (ctx.gpr[30] + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(4))); aot_gpr_6 = (std::bit_cast(aot_fpr_13)); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(8))); ctx.gpr[7] = (std::bit_cast(aot_fpr_14)); { const std::uint32_t aot_run_words[3]{aot_gpr_5, aot_gpr_6, ctx.gpr[7]}; aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(0), aot_run_words); } ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(48))); ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_fpr_12 = ctx.fpr[15] + ctx.fpr[16]; aot_mem.aot_direct_store32(ctx.gpr[30] + static_cast(48), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(52))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(ctx.gpr[30] + static_cast(52), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(56))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_fpr_12 = aot_fpr_12 + aot_fpr_14; aot_mem.aot_direct_store32(ctx.gpr[30] + static_cast(56), std::bit_cast(aot_fpr_12)); goto L_0884E91C; L_0884E91C: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(148), 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]; ctx.gpr[30] = aot_run_words[9]; aot_gpr_31 = aot_run_words[10]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); // 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_0884E950: jump_target = aot_gpr_31; // 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_0884E958: ctx.gpr[2] = (2181u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-5800)); // 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_0884E964: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0884E974u); goto L_0884E958; L_0884E974: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); 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_0884E980: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_16); aot_gpr_16 = (aot_gpr_5 | 0u); { const std::uint32_t aot_run_words[3]{ctx.gpr[17], ctx.gpr[18], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x0884E9A0u); ctx.gpr[18] = (0u | 0u); goto L_0884E958; L_0884E9A0: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[18] = (0u | 1u); goto L_0884E9E8; } goto L_0884E9A8; L_0884E9A8: aot_gpr_31 = (0x0884E9B0u); ctx.gpr[17] = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0176. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 488u, 0x0884E9B0u, 0x08AC5950u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); #else recomp_unit_0176_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_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E9B0u) goto L_0884E9B0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E9B0: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[17] = (0u | 1u); goto L_0884E9D8; } goto L_0884E9B8; L_0884E9B8: aot_gpr_31 = (0x0884E9C0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0095. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 490u, 0x0884E9C0u, 0x08980688u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); #else recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 115u, 0x08980688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E9C0u) goto L_0884E9C0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884E9C0: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); 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; aot_gpr_4 = (ctx.gpr[17] & 255u); if (branch_taken) { goto L_0884E9DC; } goto L_0884E9D4; } L_0884E9D4: ctx.gpr[17] = (0u | 1u); goto L_0884E9D8; L_0884E9D8: aot_gpr_4 = (ctx.gpr[17] & 255u); goto L_0884E9DC; L_0884E9DC: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884E9E8; } goto L_0884E9E4; } L_0884E9E4: ctx.gpr[18] = (0u | 1u); goto L_0884E9E8; L_0884E9E8: ctx.gpr[2] = (ctx.gpr[18] & 255u); { 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_0884EA04: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_16); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0884EA18u); aot_gpr_16 = (aot_gpr_4 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0176. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 497u, 0x0884EA18u, 0x08AC59D4u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 472u, aot_mem); #else recomp_unit_0176_entry(rt, ctx, 472u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 472u, 0x08AC59D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EA18u) goto L_0884EA18; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884EA18: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(20456)); aot_gpr_5 = (0u | 1u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(36), aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(184), aot_gpr_5); aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(188), 0u); aot_gpr_4 = (16204u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(192), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(196), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (16400u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (0u | 8u); { const std::uint32_t aot_run_words[8]{std::bit_cast(aot_fpr_12), aot_gpr_4, 0u, 0u, 0u, 0u, 0u, 0u}; aot_mem.aot_direct_store32_block(aot_gpr_16 + static_cast(200), aot_run_words); } aot_gpr_4 = (0u | 8u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(232), 0u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(236), static_cast(aot_gpr_4)); { const std::uint32_t aot_run_words[3]{0u, 0u, 0u}; aot_mem.aot_direct_store32_block(aot_gpr_16 + static_cast(240), aot_run_words); } ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); 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_0884EAA0: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_16); aot_gpr_16 = (aot_gpr_4 | 0u); { const std::uint32_t aot_run_words[4]{ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(16), aot_run_words); } { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[17] = (aot_gpr_5 | 0u); if (branch_taken) { goto L_0884EBB0; } goto L_0884EAC4; } L_0884EAC4: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(20456)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(212))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(36), aot_gpr_4); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(0), static_cast(0u)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(224))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(1), static_cast(0u)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(216), aot_gpr_5); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(240))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(2), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(3), static_cast(0u)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(228), aot_gpr_6); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(4), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(5), static_cast(0u)); aot_gpr_4 = (aot_gpr_16 + static_cast(240)); ctx.gpr[18] = (aot_gpr_16 + static_cast(224)); ctx.gpr[19] = (aot_gpr_16 + static_cast(212)); { const bool branch_taken = aot_gpr_4 == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(244), aot_gpr_5); if (branch_taken) { goto L_0884EB38; } goto L_0884EB10; } L_0884EB10: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(240))); { const bool branch_taken = aot_gpr_5 == 0u; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(6), static_cast(0u)); if (branch_taken) { goto L_0884EB38; } goto L_0884EB20; } L_0884EB20: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884EB38; } goto L_0884EB28; } L_0884EB28: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884EB38; } goto L_0884EB30; } L_0884EB30: aot_gpr_31 = (0x0884EB38u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EB38u) goto L_0884EB38; AOT_REGCACHE_SYNC_OUT(); return; L_0884EB38: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { goto L_0884EB64; } goto L_0884EB40; } L_0884EB40: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(224))); { const bool branch_taken = ctx.gpr[18] == 0u; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(7), static_cast(0u)); if (branch_taken) { goto L_0884EB64; } goto L_0884EB4C; } L_0884EB4C: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884EB64; } goto L_0884EB54; } L_0884EB54: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884EB64; } goto L_0884EB5C; } L_0884EB5C: aot_gpr_31 = (0x0884EB64u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EB64u) goto L_0884EB64; AOT_REGCACHE_SYNC_OUT(); return; L_0884EB64: { const bool branch_taken = ctx.gpr[19] == 0u; aot_gpr_4 = (aot_gpr_16 | 0u); if (branch_taken) { goto L_0884EB94; } goto L_0884EB6C; } L_0884EB6C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(212))); { const bool branch_taken = ctx.gpr[19] == 0u; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(8), static_cast(0u)); if (branch_taken) { goto L_0884EB90; } goto L_0884EB78; } L_0884EB78: if (aot_gpr_4 == 0u) { aot_gpr_4 = (aot_gpr_16 | 0u); goto L_0884EB94; } goto L_0884EB80; L_0884EB80: if (aot_gpr_4 == 0u) { aot_gpr_4 = (aot_gpr_16 | 0u); goto L_0884EB94; } goto L_0884EB88; L_0884EB88: aot_gpr_31 = (0x0884EB90u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EB90u) goto L_0884EB90; AOT_REGCACHE_SYNC_OUT(); return; L_0884EB90: aot_gpr_4 = (aot_gpr_16 | 0u); goto L_0884EB94; L_0884EB94: aot_gpr_31 = (0x0884EB9Cu); aot_gpr_5 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0176. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 516u, 0x0884EB9Cu, 0x08AC5AE8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 486u, aot_mem); #else recomp_unit_0176_entry(rt, ctx, 486u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 486u, 0x08AC5AE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EB9Cu) goto L_0884EB9C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884EB9C: aot_gpr_4 = (ctx.gpr[17] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884EBB0; } goto L_0884EBA8; } L_0884EBA8: aot_gpr_31 = (0x0884EBB0u); 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_08ABE2C0, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EBB0u) goto L_0884EBB0; AOT_REGCACHE_SYNC_OUT(); return; L_0884EBB0: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(12), 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]; aot_gpr_31 = aot_run_words[4]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); // 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_0884EBCC: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(188))); aot_gpr_6 = (0u | 3u); 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); { const bool branch_taken = aot_gpr_5 != aot_gpr_6; aot_gpr_16 = (aot_gpr_4 | 0u); if (branch_taken) { goto L_0884EBF0; } goto L_0884EBE8; } L_0884EBE8: aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(192), std::bit_cast(aot_fpr_12)); goto L_0884EBF0; L_0884EBF0: aot_gpr_31 = (0x0884EBF8u); aot_gpr_4 = (aot_gpr_16 | 0u); goto L_0884EF30; L_0884EBF8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(208), ctx.gpr[2]); aot_gpr_31 = (0x0884EC04u); aot_gpr_4 = (aot_gpr_16 | 0u); goto L_0884F7DC; L_0884EC04: 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_0884EC14: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(240))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(0), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(1), static_cast(0u)); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(244), aot_gpr_5); 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_0884EC30: aot_gpr_29 = (aot_gpr_29 + static_cast(-64)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_16); aot_gpr_16 = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); { const std::uint32_t aot_run_words[8]{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(32), aot_run_words); } aot_gpr_31 = (0x0884EC6Cu); ctx.gpr[17] = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0176. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 526u, 0x0884EC6Cu, 0x08AC62A0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); #else recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 585u, 0x08AC62A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EC6Cu) goto L_0884EC6C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884EC6C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_14 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); ctx.gpr[18] = (aot_gpr_29 + static_cast(8)); ctx.fpr[15] = std::bit_cast(aot_gpr_6); aot_fpr_13 = std::bit_cast(aot_gpr_4); ctx.fpr[15] = static_cast(static_cast(std::bit_cast(ctx.fpr[15]))); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_fpr_14 = aot_fpr_12 + aot_fpr_14; aot_gpr_31 = (0x0884ECB0u); ctx.fpr[15] = aot_fpr_13 + ctx.fpr[15]; if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08873400, 27u, 732u, 0x08873400u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_31, aot_fpr_12, aot_fpr_13, aot_fpr_14, ctx.fpr[15]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0027_entry, 27u, 732u, 0x08873400u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884ECB0u) goto L_0884ECB0; AOT_REGCACHE_SYNC_OUT(); return; L_0884ECB0: aot_gpr_31 = (0x0884ECB8u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0194. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 528u, 0x0884ECB8u, 0x08B0C4CCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 63u, aot_mem); #else recomp_unit_0194_entry(rt, ctx, 63u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 63u, 0x08B0C4CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884ECB8u) goto L_0884ECB8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884ECB8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(24), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(1))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(25), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(2))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(26), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(3))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(27), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(208))); ctx.gpr[20] = (0u | 0u); aot_gpr_4 = (ctx.gpr[20] < aot_gpr_4 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[19] = (aot_gpr_29 + static_cast(24)); if (branch_taken) { goto L_0884ED84; } goto L_0884ECEC; } L_0884ECEC: ctx.gpr[22] = (aot_gpr_29 + static_cast(4)); ctx.gpr[23] = (0u | 0u); goto L_0884ECF4; L_0884ECF4: ctx.gpr[21] = (ctx.gpr[20] & 65535u); ctx.gpr[8] = (ctx.gpr[17] & 65535u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0884ED10u); ctx.gpr[7] = (ctx.gpr[22] | 0u); goto L_0884EFC8; L_0884ED10: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; aot_gpr_4 = (static_cast(aot_gpr_4) < 480 ? 1u : 0u); if (branch_taken) { goto L_0884ED60; } goto L_0884ED1C; } L_0884ED1C: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884ED60; } goto L_0884ED24; } L_0884ED24: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; aot_gpr_4 = (static_cast(aot_gpr_4) < 272 ? 1u : 0u); if (branch_taken) { goto L_0884ED60; } goto L_0884ED30; } L_0884ED30: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884ED60; } goto L_0884ED38; } L_0884ED38: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0884ED44u); aot_gpr_5 = (ctx.gpr[21] | 0u); goto L_0884EDF4; L_0884ED44: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_4 = (ctx.gpr[2] | 0u); ctx.gpr[7] = (ctx.gpr[19] | 0u); ctx.gpr[8] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884ED60u); ctx.gpr[9] = (0u | 1u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0194. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 537u, 0x0884ED60u, 0x08B0C1B0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); #else recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 24u, 0x08B0C1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884ED60u) goto L_0884ED60; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884ED60: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(240))); ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[23]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(208))); ctx.gpr[17] = (ctx.gpr[17] + aot_gpr_4); aot_gpr_4 = (ctx.gpr[20] < aot_gpr_5 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; ctx.gpr[23] = (ctx.gpr[23] + static_cast(4)); if (branch_taken) { goto L_0884ECF4; } goto L_0884ED84; } L_0884ED84: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(28), 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]; aot_gpr_31 = aot_run_words[8]; } 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_0884EDB0: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(36))); aot_gpr_5 = (aot_gpr_5 + static_cast(32)); aot_gpr_6 = (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))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); jump_target = aot_gpr_5; aot_gpr_31 = (0x0884EDD0u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); 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 == 0x0884EDD0u) goto L_0884EDD0; AOT_REGCACHE_SYNC_OUT(); return; L_0884EDD0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); 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_0884EDDC: jump_target = aot_gpr_31; // 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_0884EDE4: jump_target = aot_gpr_31; // 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_0884EDEC: jump_target = aot_gpr_31; // 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_0884EDF4: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(188))); aot_gpr_4 = (aot_gpr_5 & 65535u); aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_6 = (static_cast(aot_gpr_5) < 2 ? 1u : 0u); { const std::uint32_t aot_run_words[3]{aot_gpr_16, ctx.gpr[17], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } { const bool branch_taken = aot_gpr_6 == 0u; aot_gpr_6 = (static_cast(aot_gpr_5) < 3 ? 1u : 0u); if (branch_taken) { goto L_0884EE34; } goto L_0884EE1C; } L_0884EE1C: { const bool branch_taken = static_cast(aot_gpr_5) < 0; if (branch_taken) { goto L_0884EE2C; } goto L_0884EE24; } L_0884EE24: { const bool branch_taken = static_cast(aot_gpr_5) > 0; if (branch_taken) { goto L_0884EE4C; } goto L_0884EE2C; } L_0884EE2C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_0884EF1C; } goto L_0884EE34; } L_0884EE34: { const bool branch_taken = aot_gpr_6 != 0u; aot_gpr_5 = (static_cast(aot_gpr_5) < 4 ? 1u : 0u); if (branch_taken) { goto L_0884EE60; } goto L_0884EE3C; } L_0884EE3C: { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_0884EE2C; } goto L_0884EE44; } L_0884EE44: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884EE74; } goto L_0884EE4C; } L_0884EE4C: aot_gpr_31 = (0x0884EE54u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0099. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 552u, 0x0884EE54u, 0x08993964u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 842u, aot_mem); #else recomp_unit_0099_entry(rt, ctx, 842u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 842u, 0x08993964u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EE54u) goto L_0884EE54; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884EE54: ctx.gpr[2] = (2238u << 16u); { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-8144)); if (branch_taken) { goto L_0884EF1C; } goto L_0884EE60; } L_0884EE60: aot_gpr_31 = (0x0884EE68u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0099. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 554u, 0x0884EE68u, 0x08993964u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 842u, aot_mem); #else recomp_unit_0099_entry(rt, ctx, 842u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 842u, 0x08993964u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EE68u) goto L_0884EE68; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884EE68: ctx.gpr[2] = (2238u << 16u); { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[2] + static_cast(17512)); if (branch_taken) { goto L_0884EF1C; } goto L_0884EE74; } L_0884EE74: aot_gpr_5 = (0u | 0u); aot_gpr_6 = (static_cast(aot_gpr_5) < 20 ? 1u : 0u); if (aot_gpr_6 == 0u) { aot_gpr_4 = (aot_gpr_5 - aot_gpr_4); goto L_0884EEBC; } goto L_0884EE84; L_0884EE84: ctx.gpr[7] = (2238u << 16u); aot_gpr_6 = (aot_gpr_5 << 5u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(18024)); aot_gpr_6 = (aot_gpr_6 + ctx.gpr[7]); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(0))); { const bool branch_taken = aot_gpr_6 != 0u; if (branch_taken) { goto L_0884EEA8; } goto L_0884EEA0; } L_0884EEA0: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_5 - aot_gpr_4); if (branch_taken) { goto L_0884EEBC; } goto L_0884EEA8; } L_0884EEA8: aot_gpr_5 = (aot_gpr_5 + static_cast(1)); aot_gpr_6 = (static_cast(aot_gpr_5) < 20 ? 1u : 0u); { const bool branch_taken = aot_gpr_6 != 0u; if (branch_taken) { goto L_0884EE84; } goto L_0884EEB8; } L_0884EEB8: aot_gpr_4 = (aot_gpr_5 - aot_gpr_4); goto L_0884EEBC; L_0884EEBC: aot_gpr_4 = (aot_gpr_4 + static_cast(-1)); aot_gpr_4 = (aot_gpr_4 & 65535u); aot_gpr_5 = (2238u << 16u); aot_gpr_4 = (aot_gpr_4 << 5u); aot_gpr_5 = (aot_gpr_5 + static_cast(18024)); aot_gpr_16 = (aot_gpr_4 + aot_gpr_5); { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_16 + static_cast(0), aot_run_words); aot_gpr_4 = aot_run_words[0]; aot_gpr_5 = aot_run_words[1]; aot_gpr_6 = aot_run_words[2]; ctx.gpr[7] = aot_run_words[3]; ctx.gpr[8] = aot_run_words[4]; } ctx.gpr[11] = (2238u << 16u); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); ctx.gpr[17] = (ctx.gpr[11] + static_cast(17512)); ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); aot_gpr_31 = (0x0884EF00u); ctx.gpr[11] = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0173. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 561u, 0x0884EF00u, 0x08ABAD24u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 515u, aot_mem); #else recomp_unit_0173_entry(rt, ctx, 515u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 515u, 0x08ABAD24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EF00u) goto L_0884EF00; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884EF00: aot_gpr_31 = (0x0884EF08u); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0173. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 562u, 0x0884EF08u, 0x08AB9A5Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 327u, aot_mem); #else recomp_unit_0173_entry(rt, ctx, 327u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 327u, 0x08AB9A5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EF08u) goto L_0884EF08; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884EF08: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); aot_gpr_31 = (0x0884EF14u); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0173. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 563u, 0x0884EF14u, 0x08AB96BCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 274u, aot_mem); #else recomp_unit_0173_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_0173_entry, 173u, 274u, 0x08AB96BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EF14u) goto L_0884EF14; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884EF14: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[17] | 0u); if (branch_taken) { goto L_0884EF1C; } goto L_0884EF1C; } L_0884EF1C: { std::uint32_t aot_run_words[3]{}; 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]; aot_gpr_31 = aot_run_words[2]; } 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_0884EF30: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(188))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); { const bool branch_taken = static_cast(aot_gpr_4) > 0; aot_gpr_5 = (static_cast(aot_gpr_4) < 3 ? 1u : 0u); if (branch_taken) { goto L_0884EF54; } goto L_0884EF44; } L_0884EF44: { const bool branch_taken = static_cast(aot_gpr_4) >= 0; if (branch_taken) { goto L_0884EF6C; } goto L_0884EF4C; } L_0884EF4C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_0884EFBC; } goto L_0884EF54; } L_0884EF54: { const bool branch_taken = aot_gpr_5 != 0u; aot_gpr_4 = (static_cast(aot_gpr_4) < 4 ? 1u : 0u); if (branch_taken) { goto L_0884EF74; } goto L_0884EF5C; } L_0884EF5C: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884EF4C; } goto L_0884EF64; } L_0884EF64: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884EF88; } goto L_0884EF6C; } L_0884EF6C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_0884EFBC; } goto L_0884EF74; } L_0884EF74: aot_gpr_4 = (32768u << 16u); aot_gpr_31 = (0x0884EF80u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0099. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 573u, 0x0884EF80u, 0x08993964u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 842u, aot_mem); #else recomp_unit_0099_entry(rt, ctx, 842u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 842u, 0x08993964u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EF80u) goto L_0884EF80; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884EF80: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[2] & 65535u); if (branch_taken) { goto L_0884EFBC; } goto L_0884EF88; } L_0884EF88: aot_gpr_5 = (2238u << 16u); aot_gpr_4 = (0u | 0u); aot_gpr_5 = (aot_gpr_5 + static_cast(18024)); goto L_0884EF94; L_0884EF94: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); { const bool branch_taken = aot_gpr_6 != 0u; if (branch_taken) { goto L_0884EFA8; } goto L_0884EFA0; } L_0884EFA0: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (aot_gpr_4 & 65535u); if (branch_taken) { goto L_0884EFBC; } goto L_0884EFA8; } L_0884EFA8: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); aot_gpr_6 = (static_cast(aot_gpr_4) < 20 ? 1u : 0u); { const bool branch_taken = aot_gpr_6 != 0u; aot_gpr_5 = (aot_gpr_5 + static_cast(32)); if (branch_taken) { goto L_0884EF94; } goto L_0884EFB8; } L_0884EFB8: ctx.gpr[2] = (aot_gpr_4 & 65535u); goto L_0884EFBC; L_0884EFBC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); 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_0884EFC8: ctx.gpr[11] = (aot_gpr_5 & 65535u); ctx.gpr[10] = (ctx.gpr[8] & 65535u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(184))); ctx.gpr[9] = (0u | 0u); ctx.gpr[2] = (0u | 2u); { const bool branch_taken = aot_gpr_5 != ctx.gpr[2]; ctx.gpr[8] = (0u | 0u); if (branch_taken) { goto L_0884F048; } goto L_0884EFE4; } L_0884EFE4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(192))); aot_gpr_5 = (aot_gpr_5 + ctx.gpr[8]); aot_fpr_13 = std::bit_cast(aot_gpr_5); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(236))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(204))); { const std::int64_t product = static_cast(static_cast(ctx.gpr[10])) * static_cast(static_cast(aot_gpr_5)); ctx.lo = static_cast(product); ctx.hi = static_cast(static_cast(product) >> 32u); } aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_fpr_12 = aot_fpr_13 - aot_fpr_12; ctx.gpr[9] = (ctx.gpr[9] & 65535u); ctx.gpr[8] = (ctx.lo); { const std::int64_t product = static_cast(static_cast(ctx.gpr[11])) * static_cast(static_cast(aot_gpr_4)); ctx.lo = static_cast(product); ctx.hi = static_cast(static_cast(product) >> 32u); } 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_4 = (ctx.lo); aot_gpr_5 = (aot_gpr_5 & 65535u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[8]); ctx.gpr[8] = (aot_gpr_4 + aot_gpr_5); { const bool branch_taken = 0u == 0u; ctx.gpr[8] = (ctx.gpr[8] & 65535u); if (branch_taken) { goto L_0884F1DC; } goto L_0884F048; } L_0884F048: ctx.gpr[2] = (0u | 3u); { const bool branch_taken = aot_gpr_5 != ctx.gpr[2]; if (branch_taken) { goto L_0884F0B0; } goto L_0884F054; } L_0884F054: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(192))); aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(236))); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(204))); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_gpr_4 = (aot_gpr_5 + ctx.gpr[8]); aot_fpr_12 = aot_fpr_13 + aot_fpr_12; { const std::int64_t product = static_cast(static_cast(ctx.gpr[11])) * static_cast(static_cast(aot_gpr_4)); ctx.lo = static_cast(product); ctx.hi = static_cast(static_cast(product) >> 32u); } ctx.gpr[9] = (ctx.gpr[9] & 65535u); aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); aot_gpr_4 = (ctx.lo); { const std::int64_t product = static_cast(static_cast(ctx.gpr[10])) * static_cast(static_cast(aot_gpr_5)); ctx.lo = static_cast(product); ctx.hi = static_cast(static_cast(product) >> 32u); } ctx.gpr[8] = (std::bit_cast(aot_fpr_12)); aot_gpr_5 = (ctx.gpr[8] & 65535u); ctx.gpr[8] = (ctx.lo); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[8]); ctx.gpr[8] = (aot_gpr_5 - aot_gpr_4); { const bool branch_taken = 0u == 0u; ctx.gpr[8] = (ctx.gpr[8] & 65535u); if (branch_taken) { goto L_0884F1DC; } goto L_0884F0B0; } L_0884F0B0: { const bool branch_taken = aot_gpr_5 != 0u; if (branch_taken) { goto L_0884F114; } goto L_0884F0B8; } L_0884F0B8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(192))); aot_gpr_5 = (aot_gpr_5 + ctx.gpr[8]); aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(212))); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_gpr_4 = (ctx.gpr[11] << 2u); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_fpr_12 = aot_fpr_13 - aot_fpr_12; aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); ctx.gpr[8] = (ctx.gpr[8] & 65535u); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_gpr_4 & 65535u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_fpr_13 = aot_fpr_13 + aot_fpr_14; aot_fpr_13 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_13)); ctx.gpr[9] = (std::bit_cast(aot_fpr_13)); { const bool branch_taken = 0u == 0u; ctx.gpr[9] = (ctx.gpr[9] & 65535u); if (branch_taken) { goto L_0884F1DC; } goto L_0884F114; } L_0884F114: ctx.gpr[2] = (0u | 1u); { const bool branch_taken = aot_gpr_5 != ctx.gpr[2]; if (branch_taken) { goto L_0884F174; } goto L_0884F120; } L_0884F120: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(192))); aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(212))); ctx.gpr[8] = (ctx.gpr[11] << 2u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_gpr_5 = (aot_gpr_5 + ctx.gpr[8]); aot_fpr_12 = aot_fpr_13 + aot_fpr_12; ctx.gpr[8] = (aot_gpr_4 & 65535u); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_gpr_4 & 65535u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_fpr_13 = aot_fpr_13 - aot_fpr_14; aot_fpr_13 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_13)); ctx.gpr[9] = (std::bit_cast(aot_fpr_13)); { const bool branch_taken = 0u == 0u; ctx.gpr[9] = (ctx.gpr[9] & 65535u); if (branch_taken) { goto L_0884F1DC; } goto L_0884F174; } L_0884F174: ctx.gpr[2] = (0u | 4u); { const bool branch_taken = aot_gpr_5 != ctx.gpr[2]; if (branch_taken) { goto L_0884F1DC; } goto L_0884F180; } L_0884F180: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(236))); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(204))); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); ctx.gpr[8] = (aot_gpr_5 + ctx.gpr[8]); { const std::int64_t product = static_cast(static_cast(ctx.gpr[11])) * static_cast(static_cast(ctx.gpr[8])); ctx.lo = static_cast(product); ctx.hi = static_cast(static_cast(product) >> 32u); } ctx.gpr[8] = (ctx.gpr[9] & 65535u); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(192))); aot_gpr_4 = (ctx.lo); { const std::int64_t product = static_cast(static_cast(ctx.gpr[10])) * static_cast(static_cast(aot_gpr_5)); ctx.lo = static_cast(product); ctx.hi = static_cast(static_cast(product) >> 32u); } ctx.gpr[9] = (ctx.gpr[9] & 65535u); aot_gpr_5 = (ctx.lo); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[8]); aot_gpr_4 = (aot_gpr_4 & 65535u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_fpr_12 = aot_fpr_13 + aot_fpr_12; aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); ctx.gpr[8] = (std::bit_cast(aot_fpr_12)); ctx.gpr[8] = (ctx.gpr[8] & 65535u); goto L_0884F1DC; L_0884F1DC: aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(0), ctx.gpr[9]); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[7] + static_cast(0), ctx.gpr[8]); // 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_0884F1E8: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_16); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x0884F1FCu); aot_gpr_5 = (aot_gpr_5 & 65535u); goto L_0884EDF4; L_0884F1FC: aot_gpr_5 = (17391u << 16u); aot_fpr_12 = std::bit_cast(0u); aot_fpr_14 = std::bit_cast(aot_gpr_5); aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_5 = (17287u << 16u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0884F220u); ctx.fpr[15] = std::bit_cast(aot_gpr_5); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08873400, 27u, 732u, 0x08873400u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_31, aot_fpr_12, aot_fpr_13, aot_fpr_14, ctx.fpr[15]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0027_entry, 27u, 732u, 0x08873400u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F220u) goto L_0884F220; AOT_REGCACHE_SYNC_OUT(); return; L_0884F220: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_6 = (0u | 0u); ctx.gpr[7] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0884F238u); ctx.gpr[8] = (0u | 1u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0194. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 594u, 0x0884F238u, 0x08B0C660u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); #else recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 90u, 0x08B0C660u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F238u) goto L_0884F238; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884F238: ctx.fpr[0] = std::bit_cast(ctx.gpr[2]); ctx.fpr[0] = static_cast(static_cast(std::bit_cast(ctx.fpr[0]))); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); // 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_0884F250: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_16); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[18]); ctx.gpr[18] = (aot_gpr_5 & 65535u); aot_gpr_16 = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(aot_fpr_20)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[17]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); ctx.gpr[17] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[17]) < static_cast(ctx.gpr[18]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; aot_fpr_20 = std::bit_cast(0u); if (branch_taken) { goto L_0884F2AC; } goto L_0884F280; } L_0884F280: aot_gpr_5 = (ctx.gpr[17] & 65535u); aot_gpr_31 = (0x0884F28Cu); aot_gpr_4 = (aot_gpr_16 | 0u); goto L_0884F1E8; L_0884F28C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(204))); aot_fpr_20 = aot_fpr_20 + ctx.fpr[0]; ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_4 = (static_cast(ctx.gpr[17]) < static_cast(ctx.gpr[18]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; aot_fpr_20 = aot_fpr_20 + aot_fpr_12; if (branch_taken) { goto L_0884F280; } goto L_0884F2AC; } L_0884F2AC: ctx.fpr[0] = std::bit_cast(std::bit_cast(aot_fpr_20)); { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), 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]; aot_gpr_31 = aot_run_words[4]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); // 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_0884F2CC: aot_gpr_29 = (aot_gpr_29 + static_cast(-80)); { 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(32), aot_run_words); } aot_gpr_31 = (0x0884F300u); aot_gpr_16 = (aot_gpr_4 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0176. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 600u, 0x0884F300u, 0x08AC62A0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); #else recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 585u, 0x08AC62A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F300u) goto L_0884F300; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884F300: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(212))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(4), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(5), static_cast(0u)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(216), ctx.gpr[17]); aot_gpr_31 = (0x0884F318u); aot_gpr_4 = (aot_gpr_16 | 0u); goto L_0884EF30; L_0884F318: ctx.gpr[17] = (0u | 0u); aot_gpr_4 = (ctx.gpr[17] < ctx.gpr[2] ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(208), ctx.gpr[2]); if (branch_taken) { goto L_0884F478; } goto L_0884F328; } L_0884F328: ctx.gpr[18] = (0u | 1u); ctx.gpr[19] = (aot_gpr_29 + static_cast(12)); ctx.gpr[20] = (aot_gpr_29 + static_cast(16)); goto L_0884F334; L_0884F334: aot_gpr_5 = (ctx.gpr[17] & 65535u); aot_gpr_31 = (0x0884F340u); aot_gpr_4 = (aot_gpr_16 | 0u); goto L_0884F250; L_0884F340: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(216))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(220))); { const bool branch_taken = aot_gpr_4 == aot_gpr_5; aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); if (branch_taken) { goto L_0884F374; } goto L_0884F350; } L_0884F350: aot_gpr_5 = (aot_gpr_4 | 0u); { const bool branch_taken = aot_gpr_5 == 0u; aot_gpr_4 = (aot_gpr_4 + static_cast(4)); if (branch_taken) { goto L_0884F368; } goto L_0884F35C; } L_0884F35C: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), std::bit_cast(aot_fpr_20)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(216))); aot_gpr_4 = (aot_gpr_4 + static_cast(4)); goto L_0884F368; L_0884F368: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(216), aot_gpr_4); { const bool branch_taken = 0u == 0u; ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(208))); if (branch_taken) { goto L_0884F468; } goto L_0884F374; } L_0884F374: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(212))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(8), static_cast(0u)); aot_gpr_5 = (aot_gpr_4 - aot_gpr_5); aot_gpr_6 = (static_cast(static_cast(aot_gpr_5) >> 2u)); aot_gpr_6 = (aot_gpr_6 >> 30u); aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[18]); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 2u)); aot_gpr_6 = (aot_gpr_5 < static_cast(1) ? 1u : 0u); { const bool branch_taken = aot_gpr_6 == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_5); if (branch_taken) { goto L_0884F3AC; } goto L_0884F3A0; } L_0884F3A0: ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); { const bool branch_taken = 0u == 0u; ctx.gpr[21] = (aot_gpr_5 + ctx.gpr[21]); if (branch_taken) { goto L_0884F3B4; } goto L_0884F3AC; } L_0884F3AC: ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); ctx.gpr[21] = (aot_gpr_5 + ctx.gpr[21]); goto L_0884F3B4; L_0884F3B4: { const bool branch_taken = ctx.gpr[21] == 0u; aot_gpr_5 = (0u | 0u); if (branch_taken) { goto L_0884F3F4; } goto L_0884F3BC; } L_0884F3BC: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_4 = (ctx.gpr[21] << 2u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_5); aot_gpr_31 = (0x0884F3D0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_4); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0174. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 613u, 0x0884F3D0u, 0x08ABE308u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); #else recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F3D0u) goto L_0884F3D0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884F3D0: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_5 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_5 != 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); if (branch_taken) { goto L_0884F3F4; } goto L_0884F3E0; } L_0884F3E0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_4); aot_gpr_31 = (0x0884F3ECu); aot_gpr_4 = (aot_gpr_6 | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 289u, 0x08B65438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F3ECu) goto L_0884F3EC; AOT_REGCACHE_SYNC_OUT(); return; L_0884F3EC: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); goto L_0884F3F4; L_0884F3F4: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(212))); { const bool branch_taken = aot_gpr_4 != aot_gpr_6; ctx.gpr[22] = (aot_gpr_5 | 0u); if (branch_taken) { goto L_0884F408; } goto L_0884F400; } L_0884F400: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); if (branch_taken) { goto L_0884F424; } goto L_0884F408; } L_0884F408: aot_gpr_5 = (aot_gpr_6 | 0u); ctx.gpr[23] = (aot_gpr_4 - aot_gpr_6); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884F41Cu); aot_gpr_6 = (ctx.gpr[23] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 619u, 0x0884F41Cu, 0x08AF54A4u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); #else recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F41Cu) goto L_0884F41C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884F41C: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[23]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); goto L_0884F424; L_0884F424: { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[23] = (aot_gpr_5 | 0u); if (branch_taken) { goto L_0884F43C; } goto L_0884F42C; } L_0884F42C: aot_mem.aot_direct_store32(ctx.gpr[23] + static_cast(0), std::bit_cast(aot_fpr_20)); aot_gpr_4 = (aot_gpr_4 + static_cast(-1)); { const bool branch_taken = aot_gpr_4 != 0u; ctx.gpr[23] = (ctx.gpr[23] + static_cast(4)); if (branch_taken) { goto L_0884F42C; } goto L_0884F43C; } L_0884F43C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(212))); { const bool branch_taken = aot_gpr_4 == 0u; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(20), static_cast(0u)); if (branch_taken) { goto L_0884F450; } goto L_0884F448; } L_0884F448: aot_gpr_31 = (0x0884F450u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F450u) goto L_0884F450; AOT_REGCACHE_SYNC_OUT(); return; L_0884F450: aot_gpr_4 = (ctx.gpr[21] << 2u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(212), ctx.gpr[22]); aot_gpr_4 = (ctx.gpr[22] + aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(216), ctx.gpr[23]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(220), aot_gpr_4); ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(208))); goto L_0884F468; L_0884F468: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (ctx.gpr[17] < ctx.gpr[21] ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884F334; } goto L_0884F478; } L_0884F478: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(224))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(6), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(7), static_cast(0u)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(228), aot_gpr_4); { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), 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(80)); // 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_0884F4B8: aot_gpr_29 = (aot_gpr_29 + static_cast(-48)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_16); aot_gpr_16 = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(ctx.fpr[24])); { const std::uint32_t aot_run_words[4]{ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20]}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(16), aot_run_words); } ctx.gpr[20] = (0u | 0u); ctx.gpr[19] = (0u | 0u); ctx.gpr[18] = (0u | 0u); ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(200))); ctx.gpr[17] = (0u | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(aot_fpr_20)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), std::bit_cast(ctx.fpr[22])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x0884F500u); aot_gpr_4 = (0u | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_0898B428, 97u, 0x0898B428u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F500u) goto L_0884F500; AOT_REGCACHE_SYNC_OUT(); return; L_0884F500: aot_gpr_31 = (0x0884F508u); aot_gpr_4 = (ctx.gpr[2] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0098. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 629u, 0x0884F508u, 0x0898C604u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); #else recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 134u, 0x0898C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F508u) goto L_0884F508; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884F508: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_4 = (16544u << 16u); ctx.fpr[22] = std::bit_cast(aot_gpr_4); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[22])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_0884F56C; } goto L_0884F528; } L_0884F528: ctx.gpr[19] = (0u | 1u); aot_gpr_31 = (0x0884F534u); aot_gpr_4 = (0u | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_0898B428, 97u, 0x0898B428u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F534u) goto L_0884F534; AOT_REGCACHE_SYNC_OUT(); return; L_0884F534: aot_gpr_31 = (0x0884F53Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0098. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 632u, 0x0884F53Cu, 0x0898C604u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); #else recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 134u, 0x0898C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F53Cu) goto L_0884F53C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884F53C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (17142u << 16u); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 - ctx.fpr[22]; aot_fpr_12 = aot_fpr_12 / aot_fpr_13; aot_gpr_5 = (16480u << 16u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(184))); aot_fpr_14 = std::bit_cast(aot_gpr_5); { 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; } { const bool branch_taken = 0u == 0u; { 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[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } if (branch_taken) { goto L_0884F750; } goto L_0884F56C; } L_0884F56C: aot_gpr_31 = (0x0884F574u); aot_gpr_4 = (0u | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_0898B428, 97u, 0x0898B428u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F574u) goto L_0884F574; AOT_REGCACHE_SYNC_OUT(); return; L_0884F574: aot_gpr_31 = (0x0884F57Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0098. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 635u, 0x0884F57Cu, 0x0898C604u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); #else recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 134u, 0x0898C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F57Cu) goto L_0884F57C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884F57C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (49312u << 16u); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_fpr_20 = std::bit_cast(aot_gpr_4); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_0884F5E0; } goto L_0884F59C; } L_0884F59C: ctx.gpr[20] = (0u | 1u); aot_gpr_31 = (0x0884F5A8u); aot_gpr_4 = (0u | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_0898B428, 97u, 0x0898B428u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F5A8u) goto L_0884F5A8; AOT_REGCACHE_SYNC_OUT(); return; L_0884F5A8: aot_gpr_31 = (0x0884F5B0u); aot_gpr_4 = (ctx.gpr[2] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0098. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 638u, 0x0884F5B0u, 0x0898C604u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); #else recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 134u, 0x0898C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F5B0u) goto L_0884F5B0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884F5B0: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (17142u << 16u); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 + ctx.fpr[22]; aot_fpr_12 = aot_fpr_12 / aot_fpr_13; aot_gpr_5 = (16480u << 16u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(184))); aot_fpr_14 = std::bit_cast(aot_gpr_5); { 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; } { const bool branch_taken = 0u == 0u; { 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[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } if (branch_taken) { goto L_0884F750; } goto L_0884F5E0; } L_0884F5E0: aot_gpr_31 = (0x0884F5E8u); aot_gpr_4 = (0u | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_0898B428, 97u, 0x0898B428u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F5E8u) goto L_0884F5E8; AOT_REGCACHE_SYNC_OUT(); return; L_0884F5E8: aot_gpr_31 = (0x0884F5F0u); aot_gpr_4 = (ctx.gpr[2] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0098. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 641u, 0x0884F5F0u, 0x0898C420u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); #else recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 100u, 0x0898C420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F5F0u) goto L_0884F5F0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884F5F0: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[22])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_0884F64C; } goto L_0884F608; } L_0884F608: ctx.gpr[18] = (0u | 1u); aot_gpr_31 = (0x0884F614u); aot_gpr_4 = (0u | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_0898B428, 97u, 0x0898B428u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F614u) goto L_0884F614; AOT_REGCACHE_SYNC_OUT(); return; L_0884F614: aot_gpr_31 = (0x0884F61Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0098. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 644u, 0x0884F61Cu, 0x0898C420u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); #else recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 100u, 0x0898C420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F61Cu) goto L_0884F61C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884F61C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (17142u << 16u); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 - ctx.fpr[22]; aot_fpr_12 = aot_fpr_12 / aot_fpr_13; aot_gpr_5 = (16480u << 16u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(184))); aot_fpr_14 = std::bit_cast(aot_gpr_5); { 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; } { const bool branch_taken = 0u == 0u; { 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[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } if (branch_taken) { goto L_0884F750; } goto L_0884F64C; } L_0884F64C: aot_gpr_31 = (0x0884F654u); aot_gpr_4 = (0u | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_0898B428, 97u, 0x0898B428u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F654u) goto L_0884F654; AOT_REGCACHE_SYNC_OUT(); return; L_0884F654: aot_gpr_31 = (0x0884F65Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0098. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 647u, 0x0884F65Cu, 0x0898C420u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); #else recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 100u, 0x0898C420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F65Cu) goto L_0884F65C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884F65C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_0884F6B8; } goto L_0884F674; } L_0884F674: ctx.gpr[17] = (0u | 1u); aot_gpr_31 = (0x0884F680u); aot_gpr_4 = (0u | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_0898B428, 97u, 0x0898B428u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F680u) goto L_0884F680; AOT_REGCACHE_SYNC_OUT(); return; L_0884F680: aot_gpr_31 = (0x0884F688u); aot_gpr_4 = (ctx.gpr[2] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0098. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 650u, 0x0884F688u, 0x0898C420u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); #else recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 100u, 0x0898C420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F688u) goto L_0884F688; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884F688: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (17142u << 16u); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 + ctx.fpr[22]; aot_fpr_12 = aot_fpr_12 / aot_fpr_13; aot_gpr_5 = (16480u << 16u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(184))); aot_fpr_14 = std::bit_cast(aot_gpr_5); { 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; } { const bool branch_taken = 0u == 0u; { 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[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } if (branch_taken) { goto L_0884F750; } goto L_0884F6B8; } L_0884F6B8: aot_gpr_31 = (0x0884F6C0u); aot_gpr_4 = (0u | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_0898B428, 97u, 0x0898B428u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F6C0u) goto L_0884F6C0; AOT_REGCACHE_SYNC_OUT(); return; L_0884F6C0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(20)))))); 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_0884F6E0; } goto L_0884F6D4; } L_0884F6D4: ctx.gpr[19] = (0u | 1u); { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(184))); if (branch_taken) { goto L_0884F750; } goto L_0884F6E0; } L_0884F6E0: aot_gpr_31 = (0x0884F6E8u); aot_gpr_4 = (0u | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_0898B428, 97u, 0x0898B428u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F6E8u) goto L_0884F6E8; AOT_REGCACHE_SYNC_OUT(); return; L_0884F6E8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(18)))))); 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_0884F708; } goto L_0884F6FC; } L_0884F6FC: ctx.gpr[20] = (0u | 1u); { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(184))); if (branch_taken) { goto L_0884F750; } goto L_0884F708; } L_0884F708: aot_gpr_31 = (0x0884F710u); aot_gpr_4 = (0u | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_0898B428, 97u, 0x0898B428u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F710u) goto L_0884F710; AOT_REGCACHE_SYNC_OUT(); return; L_0884F710: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(22)))))); 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_0884F730; } goto L_0884F724; } L_0884F724: ctx.gpr[18] = (0u | 1u); { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(184))); if (branch_taken) { goto L_0884F750; } goto L_0884F730; } L_0884F730: aot_gpr_31 = (0x0884F738u); aot_gpr_4 = (0u | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_0898B428, 97u, 0x0898B428u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F738u) goto L_0884F738; AOT_REGCACHE_SYNC_OUT(); return; L_0884F738: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(24)))))); 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_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(184))); if (branch_taken) { goto L_0884F750; } goto L_0884F74C; } L_0884F74C: ctx.gpr[17] = (0u | 1u); goto L_0884F750; L_0884F750: aot_gpr_5 = (aot_gpr_4 < static_cast(5) ? 1u : 0u); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_0884F7B0; } goto L_0884F75C; } L_0884F75C: ctx.gpr[1] = (0u + static_cast(2)); { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; ctx.gpr[1] = (0u + static_cast(3)); if (branch_taken) { goto L_0884F798; } goto L_0884F768; } L_0884F768: { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; ctx.gpr[1] = (0u + static_cast(4)); if (branch_taken) { goto L_0884F798; } goto L_0884F770; } L_0884F770: { const bool branch_taken = aot_gpr_4 == ctx.gpr[1]; if (branch_taken) { goto L_0884F798; } goto L_0884F778; } L_0884F778: aot_gpr_4 = (ctx.gpr[18] | ctx.gpr[17]); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884F790; } goto L_0884F784; } L_0884F784: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(192))); aot_fpr_12 = aot_fpr_12 - ctx.fpr[24]; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(192), std::bit_cast(aot_fpr_12)); goto L_0884F790; L_0884F790: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884F7B0; } goto L_0884F798; } L_0884F798: aot_gpr_4 = (ctx.gpr[20] | ctx.gpr[19]); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884F7B0; } goto L_0884F7A4; } L_0884F7A4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(192))); aot_fpr_12 = aot_fpr_12 - ctx.fpr[24]; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(192), std::bit_cast(aot_fpr_12)); goto L_0884F7B0; L_0884F7B0: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), 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]; ctx.gpr[20] = aot_run_words[7]; aot_gpr_31 = aot_run_words[8]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); // 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_0884F7DC: aot_gpr_29 = (aot_gpr_29 + static_cast(-96)); { const std::uint32_t aot_run_words[9]{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(60), aot_run_words); } aot_gpr_31 = (0x0884F80Cu); aot_gpr_16 = (aot_gpr_4 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0176. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 674u, 0x0884F80Cu, 0x08AC62A0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); #else recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 585u, 0x08AC62A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F80Cu) goto L_0884F80C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884F80C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_14 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); ctx.fpr[15] = std::bit_cast(aot_gpr_6); aot_fpr_13 = std::bit_cast(aot_gpr_4); ctx.fpr[15] = static_cast(static_cast(std::bit_cast(ctx.fpr[15]))); aot_gpr_4 = (aot_gpr_29 + static_cast(4)); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_fpr_14 = aot_fpr_12 + aot_fpr_14; aot_gpr_31 = (0x0884F84Cu); ctx.fpr[15] = aot_fpr_13 + ctx.fpr[15]; if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08873400, 27u, 732u, 0x08873400u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_31, aot_fpr_12, aot_fpr_13, aot_fpr_14, ctx.fpr[15]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0027_entry, 27u, 732u, 0x08873400u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F84Cu) goto L_0884F84C; AOT_REGCACHE_SYNC_OUT(); return; L_0884F84C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(240))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(244))); aot_gpr_6 = (aot_gpr_5 | 0u); { const bool branch_taken = aot_gpr_6 == aot_gpr_6; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(24), static_cast(0u)); if (branch_taken) { goto L_0884F874; } goto L_0884F860; } L_0884F860: ctx.gpr[17] = (aot_gpr_6 - aot_gpr_5); aot_gpr_31 = (0x0884F86Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 677u, 0x0884F86Cu, 0x08AF54A4u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); #else recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F86Cu) goto L_0884F86C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884F86C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] + ctx.gpr[17]); if (branch_taken) { goto L_0884F874; } goto L_0884F874; } L_0884F874: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(25), static_cast(0u)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(244), aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(208))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884F9E0; } goto L_0884F888; } L_0884F888: aot_gpr_31 = (0x0884F890u); aot_gpr_4 = (aot_gpr_16 | 0u); goto L_0884EF30; L_0884F890: { const bool branch_taken = ctx.gpr[2] != 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(208), ctx.gpr[2]); if (branch_taken) { goto L_0884F9E0; } goto L_0884F898; } L_0884F898: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(244))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(248))); { const bool branch_taken = aot_gpr_4 == aot_gpr_5; ctx.gpr[17] = (0u | 0u); if (branch_taken) { goto L_0884F8C4; } goto L_0884F8A8; } L_0884F8A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(244))); if (aot_gpr_4 != 0u) { aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), ctx.gpr[17]); goto L_0884F8B4; } goto L_0884F8B4; L_0884F8B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(244))); aot_gpr_4 = (aot_gpr_4 + static_cast(4)); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(244), aot_gpr_4); if (branch_taken) { goto L_0884F9D8; } goto L_0884F8C4; } L_0884F8C4: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(244))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(240))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(26), static_cast(0u)); aot_gpr_4 = (ctx.gpr[18] - aot_gpr_4); aot_gpr_5 = (static_cast(static_cast(aot_gpr_4) >> 2u)); aot_gpr_5 = (aot_gpr_5 >> 30u); aot_gpr_6 = (0u | 1u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_6); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 2u)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_4); aot_gpr_4 = (aot_gpr_4 < aot_gpr_6 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[19] = (0u | 1u); if (branch_taken) { goto L_0884F904; } goto L_0884F8FC; } L_0884F8FC: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (aot_gpr_29 + static_cast(28)); if (branch_taken) { goto L_0884F908; } goto L_0884F904; } L_0884F904: ctx.gpr[20] = (aot_gpr_29 + static_cast(32)); goto L_0884F908; L_0884F908: ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); ctx.gpr[20] = (aot_gpr_4 + ctx.gpr[20]); { const bool branch_taken = ctx.gpr[20] == 0u; ctx.gpr[21] = (0u | 0u); if (branch_taken) { goto L_0884F940; } goto L_0884F91C; } L_0884F91C: aot_gpr_4 = (ctx.gpr[20] << 2u); aot_gpr_31 = (0x0884F928u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), aot_gpr_4); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0174. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 689u, 0x0884F928u, 0x08ABE308u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); #else recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F928u) goto L_0884F928; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884F928: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] != 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); if (branch_taken) { goto L_0884F940; } goto L_0884F934; } L_0884F934: aot_gpr_31 = (0x0884F93Cu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 289u, 0x08B65438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F93Cu) goto L_0884F93C; AOT_REGCACHE_SYNC_OUT(); return; L_0884F93C: ctx.gpr[21] = (ctx.gpr[2] | 0u); goto L_0884F940; L_0884F940: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(240))); { const bool branch_taken = ctx.gpr[18] != aot_gpr_4; aot_gpr_5 = (aot_gpr_4 | 0u); if (branch_taken) { goto L_0884F954; } goto L_0884F94C; } L_0884F94C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[21] | 0u); if (branch_taken) { goto L_0884F968; } goto L_0884F954; } L_0884F954: ctx.gpr[22] = (ctx.gpr[18] - aot_gpr_5); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0884F964u); aot_gpr_6 = (ctx.gpr[22] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 695u, 0x0884F964u, 0x08AF54A4u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); #else recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F964u) goto L_0884F964; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884F964: aot_gpr_4 = (ctx.gpr[2] + ctx.gpr[22]); goto L_0884F968; L_0884F968: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_0884F984; } goto L_0884F974; } L_0884F974: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), ctx.gpr[17]); aot_gpr_5 = (aot_gpr_5 + static_cast(-1)); { const bool branch_taken = aot_gpr_5 != 0u; aot_gpr_4 = (aot_gpr_4 + static_cast(4)); if (branch_taken) { goto L_0884F974; } goto L_0884F984; } L_0884F984: { const bool branch_taken = ctx.gpr[19] != 0u; ctx.gpr[17] = (aot_gpr_4 | 0u); if (branch_taken) { goto L_0884F9B0; } goto L_0884F98C; } L_0884F98C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(244))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[18]; ctx.gpr[19] = (aot_gpr_4 - ctx.gpr[18]); if (branch_taken) { goto L_0884F9B0; } goto L_0884F998; } L_0884F998: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884F9A8u); aot_gpr_6 = (ctx.gpr[19] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 701u, 0x0884F9A8u, 0x08AF54A4u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); #else recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F9A8u) goto L_0884F9A8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884F9A8: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (ctx.gpr[2] + ctx.gpr[19]); if (branch_taken) { goto L_0884F9B0; } goto L_0884F9B0; } L_0884F9B0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(240))); { const bool branch_taken = aot_gpr_4 == 0u; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(36), static_cast(0u)); if (branch_taken) { goto L_0884F9C4; } goto L_0884F9BC; } L_0884F9BC: aot_gpr_31 = (0x0884F9C4u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F9C4u) goto L_0884F9C4; AOT_REGCACHE_SYNC_OUT(); return; L_0884F9C4: aot_gpr_4 = (ctx.gpr[20] << 2u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(240), ctx.gpr[21]); aot_gpr_4 = (ctx.gpr[21] + aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(244), ctx.gpr[17]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(248), aot_gpr_4); goto L_0884F9D8; L_0884F9D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884FB74; } goto L_0884F9E0; } L_0884F9E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(208))); ctx.gpr[18] = (0u | 0u); aot_gpr_4 = (ctx.gpr[18] < aot_gpr_4 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884FB74; } goto L_0884F9F4; } L_0884F9F4: aot_gpr_5 = (ctx.gpr[18] & 65535u); aot_gpr_31 = (0x0884FA00u); aot_gpr_4 = (aot_gpr_16 | 0u); goto L_0884EDF4; L_0884FA00: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_6 = (aot_gpr_29 + static_cast(4)); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0884FA14u); ctx.gpr[7] = (0u | 1u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0194. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 709u, 0x0884FA14u, 0x08B0C6DCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 93u, aot_mem); #else recomp_unit_0194_entry(rt, ctx, 93u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 93u, 0x08B0C6DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FA14u) goto L_0884FA14; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884FA14: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(ctx.gpr[17]) <= 0; if (branch_taken) { goto L_0884FA24; } goto L_0884FA20; } L_0884FA20: ctx.gpr[17] = (ctx.gpr[17] + static_cast(-1)); goto L_0884FA24; L_0884FA24: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(244))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(248))); if (aot_gpr_4 == aot_gpr_5) { ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(244))); goto L_0884FA50; } goto L_0884FA34; L_0884FA34: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(244))); if (aot_gpr_4 != 0u) { aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), ctx.gpr[17]); goto L_0884FA40; } goto L_0884FA40; L_0884FA40: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(244))); aot_gpr_4 = (aot_gpr_4 + static_cast(4)); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(244), aot_gpr_4); if (branch_taken) { goto L_0884FB60; } goto L_0884FA50; } L_0884FA50: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(240))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(37), static_cast(0u)); aot_gpr_4 = (ctx.gpr[19] - aot_gpr_4); aot_gpr_5 = (static_cast(static_cast(aot_gpr_4) >> 2u)); aot_gpr_5 = (aot_gpr_5 >> 30u); aot_gpr_6 = (0u | 1u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_6); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 2u)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), aot_gpr_4); aot_gpr_4 = (aot_gpr_4 < aot_gpr_6 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[20] = (0u | 1u); if (branch_taken) { goto L_0884FA8C; } goto L_0884FA84; } L_0884FA84: { const bool branch_taken = 0u == 0u; ctx.gpr[21] = (aot_gpr_29 + static_cast(40)); if (branch_taken) { goto L_0884FA90; } goto L_0884FA8C; } L_0884FA8C: ctx.gpr[21] = (aot_gpr_29 + static_cast(44)); goto L_0884FA90; L_0884FA90: ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); ctx.gpr[21] = (aot_gpr_4 + ctx.gpr[21]); { const bool branch_taken = ctx.gpr[21] == 0u; ctx.gpr[22] = (0u | 0u); if (branch_taken) { goto L_0884FAC8; } goto L_0884FAA4; } L_0884FAA4: aot_gpr_4 = (ctx.gpr[21] << 2u); aot_gpr_31 = (0x0884FAB0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(52), aot_gpr_4); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0174. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 719u, 0x0884FAB0u, 0x08ABE308u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); #else recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FAB0u) goto L_0884FAB0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884FAB0: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] != 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); if (branch_taken) { goto L_0884FAC8; } goto L_0884FABC; } L_0884FABC: aot_gpr_31 = (0x0884FAC4u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 289u, 0x08B65438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FAC4u) goto L_0884FAC4; AOT_REGCACHE_SYNC_OUT(); return; L_0884FAC4: ctx.gpr[22] = (ctx.gpr[2] | 0u); goto L_0884FAC8; L_0884FAC8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(240))); { const bool branch_taken = ctx.gpr[19] != aot_gpr_4; aot_gpr_5 = (aot_gpr_4 | 0u); if (branch_taken) { goto L_0884FADC; } goto L_0884FAD4; } L_0884FAD4: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[22] | 0u); if (branch_taken) { goto L_0884FAF0; } goto L_0884FADC; } L_0884FADC: ctx.gpr[23] = (ctx.gpr[19] - aot_gpr_5); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884FAECu); aot_gpr_6 = (ctx.gpr[23] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 725u, 0x0884FAECu, 0x08AF54A4u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); #else recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FAECu) goto L_0884FAEC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884FAEC: aot_gpr_4 = (ctx.gpr[2] + ctx.gpr[23]); goto L_0884FAF0; L_0884FAF0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_0884FB0C; } goto L_0884FAFC; } L_0884FAFC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), ctx.gpr[17]); aot_gpr_5 = (aot_gpr_5 + static_cast(-1)); { const bool branch_taken = aot_gpr_5 != 0u; aot_gpr_4 = (aot_gpr_4 + static_cast(4)); if (branch_taken) { goto L_0884FAFC; } goto L_0884FB0C; } L_0884FB0C: { const bool branch_taken = ctx.gpr[20] != 0u; ctx.gpr[17] = (aot_gpr_4 | 0u); if (branch_taken) { goto L_0884FB38; } goto L_0884FB14; } L_0884FB14: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(244))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[19]; ctx.gpr[20] = (aot_gpr_4 - ctx.gpr[19]); if (branch_taken) { goto L_0884FB38; } goto L_0884FB20; } L_0884FB20: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0884FB30u); aot_gpr_6 = (ctx.gpr[20] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 731u, 0x0884FB30u, 0x08AF54A4u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); #else recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FB30u) goto L_0884FB30; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884FB30: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (ctx.gpr[2] + ctx.gpr[20]); if (branch_taken) { goto L_0884FB38; } goto L_0884FB38; } L_0884FB38: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(240))); { const bool branch_taken = aot_gpr_4 == 0u; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(48), static_cast(0u)); if (branch_taken) { goto L_0884FB4C; } goto L_0884FB44; } L_0884FB44: aot_gpr_31 = (0x0884FB4Cu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FB4Cu) goto L_0884FB4C; AOT_REGCACHE_SYNC_OUT(); return; L_0884FB4C: aot_gpr_4 = (ctx.gpr[21] << 2u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(240), ctx.gpr[22]); aot_gpr_4 = (ctx.gpr[22] + aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(244), ctx.gpr[17]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(248), aot_gpr_4); goto L_0884FB60; L_0884FB60: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(208))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (ctx.gpr[18] < aot_gpr_4 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884F9F4; } goto L_0884FB74; } L_0884FB74: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(60), 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]; aot_gpr_31 = aot_run_words[8]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); // 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_0884FBA0: aot_gpr_29 = (aot_gpr_29 + static_cast(-48)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_16); aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(188))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), std::bit_cast(aot_fpr_20)); { const std::uint32_t aot_run_words[5]{ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21]}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(24), aot_run_words); } aot_fpr_20 = std::bit_cast(0u); ctx.gpr[20] = (2237u << 16u); ctx.gpr[17] = (0u | 0u); ctx.gpr[18] = (0u | 1u); ctx.gpr[19] = (0u | 2u); ctx.gpr[21] = (0u | 4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), aot_gpr_31); { const bool branch_taken = aot_gpr_4 == ctx.gpr[18]; ctx.gpr[20] = (ctx.gpr[20] + static_cast(-28416)); if (branch_taken) { goto L_0884FC8C; } goto L_0884FBEC; } L_0884FBEC: { const bool branch_taken = aot_gpr_4 == ctx.gpr[19]; if (branch_taken) { goto L_0884FC8C; } goto L_0884FBF4; } L_0884FBF4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(184))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884FC8C; } goto L_0884FC00; } L_0884FC00: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_0884FC8C; } goto L_0884FC08; } L_0884FC08: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_fpr_14 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); ctx.fpr[15] = std::bit_cast(aot_gpr_6); ctx.fpr[15] = static_cast(static_cast(std::bit_cast(ctx.fpr[15]))); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_4 = (aot_gpr_29 | 0u); aot_fpr_14 = aot_fpr_12 + aot_fpr_14; aot_gpr_31 = (0x0884FC48u); ctx.fpr[15] = aot_fpr_13 + ctx.fpr[15]; if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08873400, 27u, 732u, 0x08873400u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_31, aot_fpr_12, aot_fpr_13, aot_fpr_14, ctx.fpr[15]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0027_entry, 27u, 732u, 0x08873400u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FC48u) goto L_0884FC48; AOT_REGCACHE_SYNC_OUT(); return; L_0884FC48: aot_gpr_31 = (0x0884FC50u); aot_gpr_4 = (aot_gpr_16 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0176. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 743u, 0x0884FC50u, 0x08AC62A0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); #else recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 585u, 0x08AC62A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FC50u) goto L_0884FC50; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884FC50: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(208))); aot_gpr_4 = (0u | 0u); aot_gpr_5 = (aot_gpr_4 < aot_gpr_6 ? 1u : 0u); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_0884FC8C; } goto L_0884FC64; } L_0884FC64: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(240))); goto L_0884FC68; L_0884FC68: ctx.gpr[7] = (aot_gpr_4 << 2u); ctx.gpr[7] = (aot_gpr_5 + ctx.gpr[7]); ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[7] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); ctx.gpr[17] = (ctx.gpr[17] + ctx.gpr[7]); aot_gpr_4 = (aot_gpr_4 & 65535u); ctx.gpr[7] = (aot_gpr_4 < aot_gpr_6 ? 1u : 0u); { const bool branch_taken = ctx.gpr[7] != 0u; if (branch_taken) { goto L_0884FC68; } goto L_0884FC8C; } L_0884FC8C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884FCAC; } goto L_0884FC98; } L_0884FC98: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), ctx.gpr[18]); aot_gpr_31 = (0x0884FCA4u); aot_gpr_4 = (ctx.gpr[20] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0010. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 748u, 0x0884FCA4u, 0x0882D794u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); #else recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FCA4u) goto L_0884FCA4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884FCA4: aot_gpr_31 = (0x0884FCACu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-29592)); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B60680, 215u, 68u, 0x08B60680u>(ctx, &aot_mem, ctx.pc, ctx.gpr[1], ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_16, ctx.gpr[17], ctx.gpr[18], 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, 68u, 0x08B60680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FCACu) goto L_0884FCAC; AOT_REGCACHE_SYNC_OUT(); return; L_0884FCAC: aot_gpr_31 = (0x0884FCB4u); aot_gpr_4 = (ctx.gpr[20] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0010. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 750u, 0x0884FCB4u, 0x0882E9C4u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 613u, aot_mem); #else recomp_unit_0010_entry(rt, ctx, 613u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 613u, 0x0882E9C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FCB4u) goto L_0884FCB4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884FCB4: { const bool branch_taken = ctx.gpr[2] != ctx.gpr[18]; if (branch_taken) { goto L_0884FD20; } goto L_0884FCBC; } L_0884FCBC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(184))); if (aot_gpr_4 != ctx.gpr[21]) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(192))); goto L_0884FD10; } goto L_0884FCC8; L_0884FCC8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(204))); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(236))); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(208))); ctx.gpr[8] = (aot_gpr_5 + aot_gpr_6); { const std::int64_t product = static_cast(static_cast(ctx.gpr[7])) * static_cast(static_cast(ctx.gpr[8])); ctx.lo = static_cast(product); ctx.hi = static_cast(static_cast(product) >> 32u); } ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); aot_gpr_5 = (ctx.gpr[9] + aot_gpr_5); ctx.gpr[7] = (ctx.lo); { const std::int64_t product = static_cast(static_cast(ctx.gpr[17])) * static_cast(static_cast(aot_gpr_6)); ctx.lo = static_cast(product); ctx.hi = static_cast(static_cast(product) >> 32u); } aot_gpr_6 = (ctx.lo); aot_gpr_6 = (ctx.gpr[7] + aot_gpr_6); aot_gpr_5 = (aot_gpr_5 - aot_gpr_6); aot_fpr_12 = std::bit_cast(aot_gpr_5); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(192), std::bit_cast(aot_fpr_12)); if (branch_taken) { goto L_0884FD2C; } goto L_0884FD10; } L_0884FD10: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(196))); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(192), std::bit_cast(aot_fpr_12)); if (branch_taken) { goto L_0884FD2C; } goto L_0884FD20; } L_0884FD20: aot_gpr_31 = (0x0884FD28u); aot_gpr_4 = (aot_gpr_16 | 0u); goto L_0884F4B8; L_0884FD28: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(184))); goto L_0884FD2C; L_0884FD2C: { const bool branch_taken = aot_gpr_4 == ctx.gpr[19]; aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); if (branch_taken) { goto L_0884FD40; } goto L_0884FD34; } L_0884FD34: aot_gpr_5 = (0u | 3u); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_0884FD94; } goto L_0884FD40; } L_0884FD40: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(236))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(208))); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(204))); { const std::int64_t product = static_cast(static_cast(ctx.gpr[17])) * static_cast(static_cast(aot_gpr_5)); ctx.lo = static_cast(product); ctx.hi = static_cast(static_cast(product) >> 32u); } aot_gpr_5 = (aot_gpr_5 + ctx.gpr[7]); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); ctx.gpr[7] = (ctx.gpr[7] + ctx.gpr[8]); ctx.gpr[8] = (ctx.lo); { const std::int64_t product = static_cast(static_cast(aot_gpr_6)) * static_cast(static_cast(aot_gpr_5)); ctx.lo = static_cast(product); ctx.hi = static_cast(static_cast(product) >> 32u); } aot_gpr_5 = (ctx.lo); aot_gpr_5 = (aot_gpr_5 + ctx.gpr[8]); aot_gpr_5 = (aot_gpr_5 + ctx.gpr[7]); aot_fpr_12 = std::bit_cast(aot_gpr_5); { const bool branch_taken = static_cast(aot_gpr_5) >= 0; aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); if (branch_taken) { goto L_0884FD94; } goto L_0884FD88; } L_0884FD88: aot_gpr_5 = (20352u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; goto L_0884FD94; L_0884FD94: { const bool branch_taken = aot_gpr_4 == ctx.gpr[18]; if (branch_taken) { goto L_0884FDA4; } goto L_0884FD9C; } L_0884FD9C: { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_0884FDE0; } goto L_0884FDA4; } L_0884FDA4: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(208))); ctx.gpr[7] = (0u | 0u); ctx.gpr[8] = (ctx.gpr[7] < aot_gpr_6 ? 1u : 0u); { const bool branch_taken = ctx.gpr[8] == 0u; aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); if (branch_taken) { goto L_0884FDD4; } goto L_0884FDB8; } L_0884FDB8: ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(212))); goto L_0884FDBC; L_0884FDBC: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[8] + static_cast(0))); ctx.gpr[7] = (ctx.gpr[7] + static_cast(1)); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; ctx.gpr[9] = (ctx.gpr[7] < aot_gpr_6 ? 1u : 0u); { const bool branch_taken = ctx.gpr[9] != 0u; ctx.gpr[8] = (ctx.gpr[8] + static_cast(4)); if (branch_taken) { goto L_0884FDBC; } goto L_0884FDD4; } L_0884FDD4: aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; goto L_0884FDE0; L_0884FDE0: { const bool branch_taken = aot_gpr_4 == ctx.gpr[21]; if (branch_taken) { goto L_0884FE1C; } goto L_0884FDE8; } L_0884FDE8: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(192))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 <= aot_fpr_12)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_0884FE1C; } goto L_0884FDFC; } L_0884FDFC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(36))); aot_gpr_4 = (aot_gpr_4 + static_cast(48)); 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 = (0x0884FE14u); 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 == 0x0884FE14u) goto L_0884FE14; AOT_REGCACHE_SYNC_OUT(); return; L_0884FE14: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(192), std::bit_cast(aot_fpr_20)); if (branch_taken) { goto L_0884FE3C; } goto L_0884FE1C; } L_0884FE1C: { const bool branch_taken = aot_gpr_4 == ctx.gpr[21]; if (branch_taken) { goto L_0884FE3C; } goto L_0884FE24; } L_0884FE24: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(192))); 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_0884FE3C; } goto L_0884FE38; } L_0884FE38: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(192), std::bit_cast(aot_fpr_12)); goto L_0884FE3C; L_0884FE3C: { std::uint32_t aot_run_words[8]{}; 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]; aot_gpr_31 = aot_run_words[7]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); // 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_0884FE64: aot_gpr_29 = (aot_gpr_29 + static_cast(-112)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(92), ctx.gpr[17]); ctx.gpr[17] = (aot_gpr_5 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), aot_gpr_16); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(96), ctx.gpr[18]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(100), aot_gpr_31); aot_gpr_31 = (0x0884FE84u); aot_gpr_16 = (aot_gpr_4 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0176. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 775u, 0x0884FE84u, 0x08AC646Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 605u, aot_mem); #else recomp_unit_0176_entry(rt, ctx, 605u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 605u, 0x08AC646Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FE84u) goto L_0884FE84; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884FE84: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_0884FEBC; } goto L_0884FE8C; } L_0884FE8C: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_5 = (0u | 161u); aot_gpr_31 = (0x0884FE9Cu); aot_gpr_6 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 777u, 0x0884FE9Cu, 0x08AF7A8Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); #else recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FE9Cu) goto L_0884FE9C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884FE9C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x0884FEA8u); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0096. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 778u, 0x0884FEA8u, 0x089844FCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); #else recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FEA8u) goto L_0884FEA8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884FEA8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; ctx.gpr[18] = (ctx.gpr[2] | 0u); if (branch_taken) { goto L_0884FEC4; } goto L_0884FEB4; } L_0884FEB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_0884FECC; } goto L_0884FEBC; } L_0884FEBC: { 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_0019_entry, 19u, 37u, 0x08850168u>(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_0884FEC4; } L_0884FEC4: aot_gpr_31 = (0x0884FECCu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FECCu) goto L_0884FECC; AOT_REGCACHE_SYNC_OUT(); return; L_0884FECC: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { goto L_0884FF38; } goto L_0884FED4; } L_0884FED4: aot_gpr_4 = (aot_gpr_29 + static_cast(12)); aot_gpr_5 = (0u | 171u); aot_gpr_31 = (0x0884FEE4u); aot_gpr_6 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 784u, 0x0884FEE4u, 0x08AF7A8Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); #else recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FEE4u) goto L_0884FEE4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884FEE4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_31 = (0x0884FEF0u); aot_gpr_4 = (ctx.gpr[18] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0096. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 785u, 0x0884FEF0u, 0x08984D14u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); #else recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FEF0u) goto L_0884FEF0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884FEF0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[18] = (ctx.gpr[2] | 0u); if (branch_taken) { goto L_0884FF04; } goto L_0884FEFC; } L_0884FEFC: aot_gpr_31 = (0x0884FF04u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FF04u) goto L_0884FF04; AOT_REGCACHE_SYNC_OUT(); return; L_0884FF04: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { goto L_0884FF38; } goto L_0884FF0C; } L_0884FF0C: aot_gpr_4 = (aot_gpr_29 + static_cast(24)); aot_gpr_6 = (aot_gpr_29 + static_cast(36)); aot_gpr_31 = (0x0884FF1Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 650u, 0x08B66AF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FF1Cu) goto L_0884FF1C; AOT_REGCACHE_SYNC_OUT(); return; L_0884FF1C: aot_gpr_31 = (0x0884FF24u); aot_gpr_4 = (ctx.gpr[2] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 790u, 0x0884FF24u, 0x08AF78E0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 833u, aot_mem); #else recomp_unit_0188_entry(rt, ctx, 833u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 833u, 0x08AF78E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FF24u) goto L_0884FF24; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884FF24: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); { const bool branch_taken = ctx.gpr[18] == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(188), ctx.gpr[2]); if (branch_taken) { goto L_0884FF38; } goto L_0884FF30; } L_0884FF30: aot_gpr_31 = (0x0884FF38u); aot_gpr_4 = (ctx.gpr[18] | 0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FF38u) goto L_0884FF38; AOT_REGCACHE_SYNC_OUT(); return; L_0884FF38: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_5 = (0u | 162u); aot_gpr_31 = (0x0884FF48u); aot_gpr_6 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 793u, 0x0884FF48u, 0x08AF7A8Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); #else recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FF48u) goto L_0884FF48; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884FF48: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x0884FF54u); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0096. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 794u, 0x0884FF54u, 0x089844FCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); #else recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FF54u) goto L_0884FF54; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884FF54: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[18] = (ctx.gpr[2] | 0u); if (branch_taken) { goto L_0884FF68; } goto L_0884FF60; } L_0884FF60: aot_gpr_31 = (0x0884FF68u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FF68u) goto L_0884FF68; AOT_REGCACHE_SYNC_OUT(); return; L_0884FF68: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { goto L_0884FFC0; } goto L_0884FF70; } L_0884FF70: aot_gpr_4 = (aot_gpr_29 + static_cast(40)); aot_gpr_5 = (0u | 171u); aot_gpr_31 = (0x0884FF80u); aot_gpr_6 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 798u, 0x0884FF80u, 0x08AF7A8Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); #else recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FF80u) goto L_0884FF80; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884FF80: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); aot_gpr_31 = (0x0884FF8Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0096. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 799u, 0x0884FF8Cu, 0x08984D14u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); #else recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FF8Cu) goto L_0884FF8C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884FF8C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[18] = (ctx.gpr[2] | 0u); if (branch_taken) { goto L_0884FFA0; } goto L_0884FF98; } L_0884FF98: aot_gpr_31 = (0x0884FFA0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FFA0u) goto L_0884FFA0; AOT_REGCACHE_SYNC_OUT(); return; L_0884FFA0: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { goto L_0884FFC0; } goto L_0884FFA8; } L_0884FFA8: aot_gpr_31 = (0x0884FFB0u); aot_gpr_4 = (ctx.gpr[18] | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0212_entry, 212u, 935u, 0x08B577CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FFB0u) goto L_0884FFB0; AOT_REGCACHE_SYNC_OUT(); return; L_0884FFB0: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x0884FFBCu); 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 == 0x0884FFBCu) goto L_0884FFBC; AOT_REGCACHE_SYNC_OUT(); return; L_0884FFBC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(196), std::bit_cast(ctx.fpr[0])); goto L_0884FFC0; L_0884FFC0: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_5 = (0u | 163u); aot_gpr_31 = (0x0884FFD0u); aot_gpr_6 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 806u, 0x0884FFD0u, 0x08AF7A8Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); #else recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FFD0u) goto L_0884FFD0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884FFD0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x0884FFDCu); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0096. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 807u, 0x0884FFDCu, 0x089844FCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); #else recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FFDCu) goto L_0884FFDC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_0884FFDC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[18] = (ctx.gpr[2] | 0u); if (branch_taken) { goto L_0884FFF0; } goto L_0884FFE8; } L_0884FFE8: aot_gpr_31 = (0x0884FFF0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FFF0u) goto L_0884FFF0; AOT_REGCACHE_SYNC_OUT(); return; L_0884FFF0: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 9u, 0x08850048u>(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_0884FFF8; } L_0884FFF8: aot_gpr_4 = (aot_gpr_29 + static_cast(52)); aot_gpr_5 = (0u | 171u); ctx.pc = 0x08850000u; AOT_REGCACHE_SYNC_OUT(); return; } #undef AOT_REGCACHE_SYNC_IN #undef AOT_REGCACHE_SYNC_OUT void recomp_unit_0018(Runtime &rt, AllegrexContext &ctx) { auto aot_mem = rt.memory().aot_fast_view(); recomp_unit_0018_entry(rt, ctx, 0u, aot_mem); } void register_generated_unit_18(Runtime &runtime) { runtime.register_generated_unit(18u, 0x0884C000u, 16384u, &recomp_unit_0018, &recomp_unit_0018_entry); // PSPRECOMP_V812_COMPACT_REGISTRATION: same entry set, looped once in Runtime instead of source-expanded calls. runtime.register_generated_entry_mask(0x0884C000u, &recomp_unit_0018, "recomp_unit_0018", kEntryMasks_recomp_unit_0018, 64u); } } // namespace psprecomp