#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_0115[64] = { 0x120000B249440A89ull, 0x0181481000028810ull, 0x0001200208520200ull, 0x821A404201020214ull, 0x1040004000821480ull, 0x0094024301504C04ull, 0x4810011000002020ull, 0x0000008020014154ull, 0xA002A112A1400010ull, 0x202A8002440A2800ull, 0x5000014295408552ull, 0x1010122022021009ull, 0x8220040010801002ull, 0x2002010008401008ull, 0x2000010040401000ull, 0x040000002000A424ull, 0x55200000200A8000ull, 0x1029548815488154ull, 0xA2444088A8952088ull, 0x009240000A2A200Aull, 0xAA88120505045204ull, 0x4540800D28810282ull, 0x502A902010A00850ull, 0x0200001080002003ull, 0x0000008020010000ull, 0x0001004014000080ull, 0x080142000C510200ull, 0x0314218101202080ull, 0x0010010002020228ull, 0x8100280002014400ull, 0x0040001004042548ull, 0x070562280856A902ull, 0x0000810000010B40ull, 0x9249000000000800ull, 0x0A55001C1588A054ull, 0x010B545000122A02ull, 0x8A0882088888888Aull, 0x0000000100008188ull, 0x0080000400000000ull, 0x040DC2AA02448000ull, 0x0048111A40285242ull, 0x0014900020121191ull, 0x2852910A44005280ull, 0x49100008040214C4ull, 0x0202324090400001ull, 0x5484451314820002ull, 0x8180608428A14505ull, 0x8232408041590A10ull, 0x8002085082100000ull, 0x845488088A080140ull, 0x90800042108C0100ull, 0x0489000406809120ull, 0x0010684801502412ull, 0x80402885C0829702ull, 0x994A4102E040A5C0ull, 0x8000000000008005ull, 0x0024000000000004ull, 0x0000012000000000ull, 0x0120000009000000ull, 0x0001200000240000ull, 0x0000900000040500ull, 0x0000024000001200ull, 0x0024000480120048ull, 0x44508962911200A0ull, }; static constexpr std::uint16_t kEntryBases_recomp_unit_0115[64] = { 1u, 17u, 27u, 35u, 48u, 56u, 70u, 77u, 85u, 98u, 110u, 126u, 137u, 145u, 152u, 157u, 164u, 173u, 192u, 210u, 222u, 239u, 254u, 268u, 274u, 277u, 282u, 292u, 304u, 311u, 319u, 328u, 348u, 355u, 362u, 381u, 396u, 412u, 417u, 419u, 434u, 449u, 461u, 477u, 489u, 499u, 515u, 532u, 548u, 556u, 570u, 580u, 592u, 605u, 622u, 642u, 646u, 649u, 651u, 655u, 659u, 664u, 668u, 676u, }; void recomp_unit_0115_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,29,31,6,7 fprs=12,13,14,20 gpr_occ=4053 fpr_occ=598 gpr_total=6375 fpr_total=727 std::uint32_t aot_gpr_4 = ctx.gpr[4]; std::uint32_t aot_gpr_5 = ctx.gpr[5]; std::uint32_t aot_gpr_29 = ctx.gpr[29]; std::uint32_t aot_gpr_31 = ctx.gpr[31]; std::uint32_t aot_gpr_6 = ctx.gpr[6]; std::uint32_t aot_gpr_7 = ctx.gpr[7]; float aot_fpr_12 = ctx.fpr[12]; float aot_fpr_13 = ctx.fpr[13]; float aot_fpr_14 = ctx.fpr[14]; float aot_fpr_20 = ctx.fpr[20]; bool aot_regcache_valid = true; #define AOT_REGCACHE_SYNC_OUT() do { if (aot_regcache_valid) { ctx.gpr[4] = aot_gpr_4; ctx.gpr[5] = aot_gpr_5; ctx.gpr[29] = aot_gpr_29; ctx.gpr[31] = aot_gpr_31; ctx.gpr[6] = aot_gpr_6; ctx.gpr[7] = aot_gpr_7; ctx.fpr[12] = aot_fpr_12; ctx.fpr[13] = aot_fpr_13; ctx.fpr[14] = aot_fpr_14; ctx.fpr[20] = aot_fpr_20; } } while (false) #define AOT_REGCACHE_SYNC_IN() do { if (aot_regcache_valid) { aot_gpr_4 = ctx.gpr[4]; aot_gpr_5 = ctx.gpr[5]; aot_gpr_29 = ctx.gpr[29]; aot_gpr_31 = ctx.gpr[31]; aot_gpr_6 = ctx.gpr[6]; aot_gpr_7 = ctx.gpr[7]; aot_fpr_12 = ctx.fpr[12]; aot_fpr_13 = ctx.fpr[13]; aot_fpr_14 = ctx.fpr[14]; aot_fpr_20 = ctx.fpr[20]; } } 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 - 0x089D0000u; 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_0115[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_0115[entry_group] + std::popcount(entry_mask & (entry_bit - 1ull))); } } } switch (entry_id) { case 1u: goto L_089D0000; case 2u: goto L_089D000C; case 3u: goto L_089D001C; case 4u: goto L_089D0024; case 5u: goto L_089D002C; case 6u: goto L_089D0048; case 7u: goto L_089D0058; case 8u: goto L_089D0060; case 9u: goto L_089D006C; case 10u: goto L_089D0078; case 11u: goto L_089D0084; case 12u: goto L_089D0090; case 13u: goto L_089D0094; case 14u: goto L_089D009C; case 15u: goto L_089D00E4; case 16u: goto L_089D00F0; case 17u: goto L_089D0110; case 18u: goto L_089D012C; case 19u: goto L_089D013C; case 20u: goto L_089D0144; case 21u: goto L_089D0190; case 22u: goto L_089D01AC; case 23u: goto L_089D01B8; case 24u: goto L_089D01C0; case 25u: goto L_089D01DC; case 26u: goto L_089D01E0; case 27u: goto L_089D0224; case 28u: goto L_089D0244; case 29u: goto L_089D0250; case 30u: goto L_089D0258; case 31u: goto L_089D026C; case 32u: goto L_089D0284; case 33u: goto L_089D02B4; case 34u: goto L_089D02C0; case 35u: goto L_089D0308; case 36u: goto L_089D0310; case 37u: goto L_089D0324; case 38u: goto L_089D0344; case 39u: goto L_089D0360; case 40u: goto L_089D0384; case 41u: goto L_089D0398; case 42u: goto L_089D03B8; case 43u: goto L_089D03C4; case 44u: goto L_089D03CC; case 45u: goto L_089D03D0; case 46u: goto L_089D03E4; case 47u: goto L_089D03FC; case 48u: goto L_089D041C; case 49u: goto L_089D0428; case 50u: goto L_089D0430; case 51u: goto L_089D0444; case 52u: goto L_089D045C; case 53u: goto L_089D0498; case 54u: goto L_089D04D8; case 55u: goto L_089D04F0; case 56u: goto L_089D0508; case 57u: goto L_089D0528; case 58u: goto L_089D052C; case 59u: goto L_089D0538; case 60u: goto L_089D0550; case 61u: goto L_089D0558; case 62u: goto L_089D0560; case 63u: goto L_089D0580; case 64u: goto L_089D0584; case 65u: goto L_089D0598; case 66u: goto L_089D05A4; case 67u: goto L_089D05C8; case 68u: goto L_089D05D0; case 69u: goto L_089D05DC; case 70u: goto L_089D0614; case 71u: goto L_089D0634; case 72u: goto L_089D0690; case 73u: goto L_089D06A0; case 74u: goto L_089D06D0; case 75u: goto L_089D06EC; case 76u: goto L_089D06F8; case 77u: goto L_089D0708; case 78u: goto L_089D0710; case 79u: goto L_089D0718; case 80u: goto L_089D0720; case 81u: goto L_089D0738; case 82u: goto L_089D0740; case 83u: goto L_089D0774; case 84u: goto L_089D079C; case 85u: goto L_089D0810; case 86u: goto L_089D0858; case 87u: goto L_089D0860; case 88u: goto L_089D0874; case 89u: goto L_089D087C; case 90u: goto L_089D0884; case 91u: goto L_089D0890; case 92u: goto L_089D08A0; case 93u: goto L_089D08B4; case 94u: goto L_089D08BC; case 95u: goto L_089D08C4; case 96u: goto L_089D08F4; case 97u: goto L_089D08FC; case 98u: goto L_089D092C; case 99u: goto L_089D0934; case 100u: goto L_089D0944; case 101u: goto L_089D094C; case 102u: goto L_089D0968; case 103u: goto L_089D0978; case 104u: goto L_089D0984; case 105u: goto L_089D09BC; case 106u: goto L_089D09C4; case 107u: goto L_089D09CC; case 108u: goto L_089D09D4; case 109u: goto L_089D09F4; case 110u: goto L_089D0A04; case 111u: goto L_089D0A10; case 112u: goto L_089D0A18; case 113u: goto L_089D0A20; case 114u: goto L_089D0A28; case 115u: goto L_089D0A3C; case 116u: goto L_089D0A58; case 117u: goto L_089D0A60; case 118u: goto L_089D0A68; case 119u: goto L_089D0A70; case 120u: goto L_089D0A7C; case 121u: goto L_089D0A84; case 122u: goto L_089D0A98; case 123u: goto L_089D0AA0; case 124u: goto L_089D0AF0; case 125u: goto L_089D0AF8; case 126u: goto L_089D0B00; case 127u: goto L_089D0B0C; case 128u: goto L_089D0B30; case 129u: goto L_089D0B44; case 130u: goto L_089D0B64; case 131u: goto L_089D0B74; case 132u: goto L_089D0B94; case 133u: goto L_089D0BA4; case 134u: goto L_089D0BB0; case 135u: goto L_089D0BD0; case 136u: goto L_089D0BF0; case 137u: goto L_089D0C04; case 138u: goto L_089D0C30; case 139u: goto L_089D0C5C; case 140u: goto L_089D0C70; case 141u: goto L_089D0CA8; case 142u: goto L_089D0CD4; case 143u: goto L_089D0CE4; case 144u: goto L_089D0CFC; case 145u: goto L_089D0D0C; case 146u: goto L_089D0D30; case 147u: goto L_089D0D58; case 148u: goto L_089D0D6C; case 149u: goto L_089D0DA0; case 150u: goto L_089D0DC4; case 151u: goto L_089D0DF4; case 152u: goto L_089D0E30; case 153u: goto L_089D0E58; case 154u: goto L_089D0E78; case 155u: goto L_089D0EA0; case 156u: goto L_089D0EF4; case 157u: goto L_089D0F08; case 158u: goto L_089D0F14; case 159u: goto L_089D0F28; case 160u: goto L_089D0F34; case 161u: goto L_089D0F3C; case 162u: goto L_089D0F74; case 163u: goto L_089D0FE8; case 164u: goto L_089D103C; case 165u: goto L_089D1044; case 166u: goto L_089D104C; case 167u: goto L_089D1074; case 168u: goto L_089D10D4; case 169u: goto L_089D10E0; case 170u: goto L_089D10E8; case 171u: goto L_089D10F0; case 172u: goto L_089D10F8; case 173u: goto L_089D1108; case 174u: goto L_089D1110; case 175u: goto L_089D1118; case 176u: goto L_089D1120; case 177u: goto L_089D113C; case 178u: goto L_089D114C; case 179u: goto L_089D1158; case 180u: goto L_089D1160; case 181u: goto L_089D1168; case 182u: goto L_089D1170; case 183u: goto L_089D118C; case 184u: goto L_089D119C; case 185u: goto L_089D11A8; case 186u: goto L_089D11B0; case 187u: goto L_089D11B8; case 188u: goto L_089D11C0; case 189u: goto L_089D11CC; case 190u: goto L_089D11D4; case 191u: goto L_089D11F0; case 192u: goto L_089D120C; case 193u: goto L_089D121C; case 194u: goto L_089D1234; case 195u: goto L_089D1240; case 196u: goto L_089D1248; case 197u: goto L_089D1250; case 198u: goto L_089D125C; case 199u: goto L_089D126C; case 200u: goto L_089D1274; case 201u: goto L_089D127C; case 202u: goto L_089D128C; case 203u: goto L_089D129C; case 204u: goto L_089D12B8; case 205u: goto L_089D12C8; case 206u: goto L_089D12D8; case 207u: goto L_089D12E4; case 208u: goto L_089D12F4; case 209u: goto L_089D12FC; case 210u: goto L_089D1304; case 211u: goto L_089D130C; case 212u: goto L_089D1334; case 213u: goto L_089D1344; case 214u: goto L_089D134C; case 215u: goto L_089D1354; case 216u: goto L_089D1364; case 217u: goto L_089D136C; case 218u: goto L_089D13B8; case 219u: goto L_089D13C4; case 220u: goto L_089D13D0; case 221u: goto L_089D13DC; case 222u: goto L_089D1408; case 223u: goto L_089D1424; case 224u: goto L_089D1430; case 225u: goto L_089D1438; case 226u: goto L_089D1448; case 227u: goto L_089D1460; case 228u: goto L_089D1468; case 229u: goto L_089D1480; case 230u: goto L_089D1488; case 231u: goto L_089D14A4; case 232u: goto L_089D14B0; case 233u: goto L_089D14CC; case 234u: goto L_089D14DC; case 235u: goto L_089D14E4; case 236u: goto L_089D14EC; case 237u: goto L_089D14F4; case 238u: goto L_089D14FC; case 239u: goto L_089D1504; case 240u: goto L_089D151C; case 241u: goto L_089D1524; case 242u: goto L_089D1540; case 243u: goto L_089D155C; case 244u: goto L_089D156C; case 245u: goto L_089D1574; case 246u: goto L_089D1580; case 247u: goto L_089D1588; case 248u: goto L_089D158C; case 249u: goto L_089D15BC; case 250u: goto L_089D15D8; case 251u: goto L_089D15E0; case 252u: goto L_089D15E8; case 253u: goto L_089D15F8; case 254u: goto L_089D1610; case 255u: goto L_089D1618; case 256u: goto L_089D162C; case 257u: goto L_089D1654; case 258u: goto L_089D165C; case 259u: goto L_089D1670; case 260u: goto L_089D1694; case 261u: goto L_089D16B0; case 262u: goto L_089D16BC; case 263u: goto L_089D16C4; case 264u: goto L_089D16CC; case 265u: goto L_089D16D4; case 266u: goto L_089D16F0; case 267u: goto L_089D16F8; case 268u: goto L_089D1700; case 269u: goto L_089D1704; case 270u: goto L_089D1734; case 271u: goto L_089D177C; case 272u: goto L_089D1790; case 273u: goto L_089D17E4; case 274u: goto L_089D1840; case 275u: goto L_089D1874; case 276u: goto L_089D189C; case 277u: goto L_089D191C; case 278u: goto L_089D1968; case 279u: goto L_089D1970; case 280u: goto L_089D1998; case 281u: goto L_089D19C0; case 282u: goto L_089D1A24; case 283u: goto L_089D1A40; case 284u: goto L_089D1A50; case 285u: goto L_089D1A58; case 286u: goto L_089D1A68; case 287u: goto L_089D1A6C; case 288u: goto L_089D1AA4; case 289u: goto L_089D1AB8; case 290u: goto L_089D1AC0; case 291u: goto L_089D1AEC; case 292u: goto L_089D1B1C; case 293u: goto L_089D1B34; case 294u: goto L_089D1B54; case 295u: goto L_089D1B60; case 296u: goto L_089D1B80; case 297u: goto L_089D1B9C; case 298u: goto L_089D1BA0; case 299u: goto L_089D1BB4; case 300u: goto L_089D1BC8; case 301u: goto L_089D1BD0; case 302u: goto L_089D1BE0; case 303u: goto L_089D1BE4; case 304u: goto L_089D1C0C; case 305u: goto L_089D1C14; case 306u: goto L_089D1C24; case 307u: goto L_089D1C44; case 308u: goto L_089D1C64; case 309u: goto L_089D1CA0; case 310u: goto L_089D1CD0; case 311u: goto L_089D1D28; case 312u: goto L_089D1D38; case 313u: goto L_089D1D40; case 314u: goto L_089D1D64; case 315u: goto L_089D1DAC; case 316u: goto L_089D1DB4; case 317u: goto L_089D1DE0; case 318u: goto L_089D1DFC; case 319u: goto L_089D1E0C; case 320u: goto L_089D1E18; case 321u: goto L_089D1E20; case 322u: goto L_089D1E28; case 323u: goto L_089D1E34; case 324u: goto L_089D1E48; case 325u: goto L_089D1E68; case 326u: goto L_089D1E90; case 327u: goto L_089D1ED8; case 328u: goto L_089D1F04; case 329u: goto L_089D1F20; case 330u: goto L_089D1F2C; case 331u: goto L_089D1F34; case 332u: goto L_089D1F3C; case 333u: goto L_089D1F44; case 334u: goto L_089D1F48; case 335u: goto L_089D1F50; case 336u: goto L_089D1F58; case 337u: goto L_089D1F6C; case 338u: goto L_089D1F8C; case 339u: goto L_089D1F94; case 340u: goto L_089D1FA4; case 341u: goto L_089D1FB4; case 342u: goto L_089D1FB8; case 343u: goto L_089D1FC0; case 344u: goto L_089D1FC8; case 345u: goto L_089D1FE0; case 346u: goto L_089D1FE4; case 347u: goto L_089D1FE8; case 348u: goto L_089D2018; case 349u: goto L_089D2020; case 350u: goto L_089D2024; case 351u: goto L_089D202C; case 352u: goto L_089D2040; case 353u: goto L_089D20A0; case 354u: goto L_089D20BC; case 355u: goto L_089D212C; case 356u: goto L_089D21C0; case 357u: goto L_089D21CC; case 358u: goto L_089D21D8; case 359u: goto L_089D21E4; case 360u: goto L_089D21F0; case 361u: goto L_089D21FC; case 362u: goto L_089D2208; case 363u: goto L_089D2210; case 364u: goto L_089D2218; case 365u: goto L_089D2234; case 366u: goto L_089D223C; case 367u: goto L_089D224C; case 368u: goto L_089D225C; case 369u: goto L_089D2260; case 370u: goto L_089D2268; case 371u: goto L_089D2270; case 372u: goto L_089D2288; case 373u: goto L_089D228C; case 374u: goto L_089D2290; case 375u: goto L_089D22C0; case 376u: goto L_089D22C8; case 377u: goto L_089D22D0; case 378u: goto L_089D22D8; case 379u: goto L_089D22E4; case 380u: goto L_089D22EC; case 381u: goto L_089D2304; case 382u: goto L_089D2324; case 383u: goto L_089D232C; case 384u: goto L_089D2334; case 385u: goto L_089D2344; case 386u: goto L_089D2350; case 387u: goto L_089D2390; case 388u: goto L_089D2398; case 389u: goto L_089D23A8; case 390u: goto L_089D23B0; case 391u: goto L_089D23B8; case 392u: goto L_089D23C0; case 393u: goto L_089D23C4; case 394u: goto L_089D23CC; case 395u: goto L_089D23E0; case 396u: goto L_089D2404; case 397u: goto L_089D240C; case 398u: goto L_089D241C; case 399u: goto L_089D242C; case 400u: goto L_089D243C; case 401u: goto L_089D244C; case 402u: goto L_089D245C; case 403u: goto L_089D246C; case 404u: goto L_089D247C; case 405u: goto L_089D248C; case 406u: goto L_089D24A4; case 407u: goto L_089D24BC; case 408u: goto L_089D24CC; case 409u: goto L_089D24E4; case 410u: goto L_089D24EC; case 411u: goto L_089D24FC; case 412u: goto L_089D250C; case 413u: goto L_089D251C; case 414u: goto L_089D2520; case 415u: goto L_089D253C; case 416u: goto L_089D2580; case 417u: goto L_089D2688; case 418u: goto L_089D26DC; case 419u: goto L_089D273C; case 420u: goto L_089D2748; case 421u: goto L_089D2758; case 422u: goto L_089D2764; case 423u: goto L_089D2784; case 424u: goto L_089D278C; case 425u: goto L_089D2794; case 426u: goto L_089D279C; case 427u: goto L_089D27A4; case 428u: goto L_089D27B8; case 429u: goto L_089D27BC; case 430u: goto L_089D27C0; case 431u: goto L_089D27C8; case 432u: goto L_089D27CC; case 433u: goto L_089D27E8; case 434u: goto L_089D2804; case 435u: goto L_089D2818; case 436u: goto L_089D2824; case 437u: goto L_089D2830; case 438u: goto L_089D2838; case 439u: goto L_089D284C; case 440u: goto L_089D2854; case 441u: goto L_089D2878; case 442u: goto L_089D2884; case 443u: goto L_089D288C; case 444u: goto L_089D2890; case 445u: goto L_089D28A0; case 446u: goto L_089D28B0; case 447u: goto L_089D28CC; case 448u: goto L_089D28D8; case 449u: goto L_089D2900; case 450u: goto L_089D2910; case 451u: goto L_089D291C; case 452u: goto L_089D2920; case 453u: goto L_089D2930; case 454u: goto L_089D2944; case 455u: goto L_089D2950; case 456u: goto L_089D2974; case 457u: goto L_089D29B0; case 458u: goto L_089D29BC; case 459u: goto L_089D29C8; case 460u: goto L_089D29D0; case 461u: goto L_089D2A1C; case 462u: goto L_089D2A24; case 463u: goto L_089D2A30; case 464u: goto L_089D2A38; case 465u: goto L_089D2A68; case 466u: goto L_089D2A78; case 467u: goto L_089D2A84; case 468u: goto L_089D2A8C; case 469u: goto L_089D2AA0; case 470u: goto L_089D2AB0; case 471u: goto L_089D2ABC; case 472u: goto L_089D2AC4; case 473u: goto L_089D2AD0; case 474u: goto L_089D2AD8; case 475u: goto L_089D2AEC; case 476u: goto L_089D2AF4; case 477u: goto L_089D2B08; case 478u: goto L_089D2B18; case 479u: goto L_089D2B1C; case 480u: goto L_089D2B28; case 481u: goto L_089D2B30; case 482u: goto L_089D2B44; case 483u: goto L_089D2B68; case 484u: goto L_089D2B8C; case 485u: goto L_089D2BD0; case 486u: goto L_089D2BE0; case 487u: goto L_089D2BEC; case 488u: goto L_089D2BF8; case 489u: goto L_089D2C00; case 490u: goto L_089D2C58; case 491u: goto L_089D2C70; case 492u: goto L_089D2C7C; case 493u: goto L_089D2C98; case 494u: goto L_089D2CA4; case 495u: goto L_089D2CB0; case 496u: goto L_089D2CB4; case 497u: goto L_089D2CC4; case 498u: goto L_089D2CE4; case 499u: goto L_089D2D04; case 500u: goto L_089D2D44; case 501u: goto L_089D2D5C; case 502u: goto L_089D2D68; case 503u: goto L_089D2D70; case 504u: goto L_089D2D80; case 505u: goto L_089D2D84; case 506u: goto L_089D2D90; case 507u: goto L_089D2DA0; case 508u: goto L_089D2DA8; case 509u: goto L_089D2DB8; case 510u: goto L_089D2DC8; case 511u: goto L_089D2DDC; case 512u: goto L_089D2DE8; case 513u: goto L_089D2DF0; case 514u: goto L_089D2DF8; case 515u: goto L_089D2E00; case 516u: goto L_089D2E08; case 517u: goto L_089D2E20; case 518u: goto L_089D2E28; case 519u: goto L_089D2E38; case 520u: goto L_089D2E40; case 521u: goto L_089D2E54; case 522u: goto L_089D2E5C; case 523u: goto L_089D2E6C; case 524u: goto L_089D2E74; case 525u: goto L_089D2E88; case 526u: goto L_089D2E9C; case 527u: goto L_089D2EB4; case 528u: goto L_089D2EB8; case 529u: goto L_089D2EDC; case 530u: goto L_089D2EE0; case 531u: goto L_089D2EFC; case 532u: goto L_089D2F10; case 533u: goto L_089D2F24; case 534u: goto L_089D2F2C; case 535u: goto L_089D2F40; case 536u: goto L_089D2F4C; case 537u: goto L_089D2F50; case 538u: goto L_089D2F58; case 539u: goto L_089D2F60; case 540u: goto L_089D2F78; case 541u: goto L_089D2F9C; case 542u: goto L_089D2FB8; case 543u: goto L_089D2FC4; case 544u: goto L_089D2FD0; case 545u: goto L_089D2FD4; case 546u: goto L_089D2FE4; case 547u: goto L_089D2FFC; case 548u: goto L_089D3050; case 549u: goto L_089D3064; case 550u: goto L_089D307C; case 551u: goto L_089D3090; case 552u: goto L_089D3098; case 553u: goto L_089D30AC; case 554u: goto L_089D30C4; case 555u: goto L_089D30FC; case 556u: goto L_089D3118; case 557u: goto L_089D3120; case 558u: goto L_089D314C; case 559u: goto L_089D3164; case 560u: goto L_089D316C; case 561u: goto L_089D317C; case 562u: goto L_089D318C; case 563u: goto L_089D31AC; case 564u: goto L_089D31BC; case 565u: goto L_089D31C8; case 566u: goto L_089D31D0; case 567u: goto L_089D31D8; case 568u: goto L_089D31E8; case 569u: goto L_089D31FC; case 570u: goto L_089D3220; case 571u: goto L_089D3248; case 572u: goto L_089D324C; case 573u: goto L_089D325C; case 574u: goto L_089D3270; case 575u: goto L_089D3284; case 576u: goto L_089D3298; case 577u: goto L_089D32DC; case 578u: goto L_089D32F0; case 579u: goto L_089D32FC; case 580u: goto L_089D3314; case 581u: goto L_089D3320; case 582u: goto L_089D3330; case 583u: goto L_089D333C; case 584u: goto L_089D335C; case 585u: goto L_089D3364; case 586u: goto L_089D3368; case 587u: goto L_089D3388; case 588u: goto L_089D33C0; case 589u: goto L_089D33CC; case 590u: goto L_089D33DC; case 591u: goto L_089D33E8; case 592u: goto L_089D3404; case 593u: goto L_089D3410; case 594u: goto L_089D3428; case 595u: goto L_089D3434; case 596u: goto L_089D3450; case 597u: goto L_089D3458; case 598u: goto L_089D3460; case 599u: goto L_089D348C; case 600u: goto L_089D3498; case 601u: goto L_089D34AC; case 602u: goto L_089D34B4; case 603u: goto L_089D34B8; case 604u: goto L_089D34D0; case 605u: goto L_089D3504; case 606u: goto L_089D3520; case 607u: goto L_089D3524; case 608u: goto L_089D3528; case 609u: goto L_089D3530; case 610u: goto L_089D353C; case 611u: goto L_089D3544; case 612u: goto L_089D355C; case 613u: goto L_089D3578; case 614u: goto L_089D357C; case 615u: goto L_089D3580; case 616u: goto L_089D3588; case 617u: goto L_089D359C; case 618u: goto L_089D35AC; case 619u: goto L_089D35B4; case 620u: goto L_089D35D8; case 621u: goto L_089D35FC; case 622u: goto L_089D3618; case 623u: goto L_089D361C; case 624u: goto L_089D3620; case 625u: goto L_089D3628; case 626u: goto L_089D3634; case 627u: goto L_089D363C; case 628u: goto L_089D3658; case 629u: goto L_089D3674; case 630u: goto L_089D3678; case 631u: goto L_089D367C; case 632u: goto L_089D3684; case 633u: goto L_089D36A0; case 634u: goto L_089D36B8; case 635u: goto L_089D36C4; case 636u: goto L_089D36CC; case 637u: goto L_089D36D8; case 638u: goto L_089D36E0; case 639u: goto L_089D36EC; case 640u: goto L_089D36F0; case 641u: goto L_089D36FC; case 642u: goto L_089D3700; case 643u: goto L_089D3708; case 644u: goto L_089D373C; case 645u: goto L_089D37FC; case 646u: goto L_089D3808; case 647u: goto L_089D38C8; case 648u: goto L_089D38D4; case 649u: goto L_089D3994; case 650u: goto L_089D39A0; case 651u: goto L_089D3A60; case 652u: goto L_089D3A6C; case 653u: goto L_089D3AD4; case 654u: goto L_089D3AE0; case 655u: goto L_089D3B48; case 656u: goto L_089D3B54; case 657u: goto L_089D3BB4; case 658u: goto L_089D3BC0; case 659u: goto L_089D3C20; case 660u: goto L_089D3C28; case 661u: goto L_089D3C48; case 662u: goto L_089D3CB0; case 663u: goto L_089D3CBC; case 664u: goto L_089D3D24; case 665u: goto L_089D3D30; case 666u: goto L_089D3D98; case 667u: goto L_089D3DA4; case 668u: goto L_089D3E0C; case 669u: goto L_089D3E18; case 670u: goto L_089D3E44; case 671u: goto L_089D3E50; case 672u: goto L_089D3E7C; case 673u: goto L_089D3E88; case 674u: goto L_089D3EC8; case 675u: goto L_089D3ED4; case 676u: goto L_089D3F14; case 677u: goto L_089D3F1C; case 678u: goto L_089D3F44; case 679u: goto L_089D3F50; case 680u: goto L_089D3F60; case 681u: goto L_089D3F70; case 682u: goto L_089D3F7C; case 683u: goto L_089D3F84; case 684u: goto L_089D3F94; case 685u: goto L_089D3F98; case 686u: goto L_089D3FA0; case 687u: goto L_089D3FAC; case 688u: goto L_089D3FBC; case 689u: goto L_089D3FD0; case 690u: goto L_089D3FD8; case 691u: goto L_089D3FE8; case 692u: goto L_089D3FF8; 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 - 0x089D0000u; 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_089D0000: aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D002C; } goto L_089D000C; } L_089D000C: ctx.gpr[20] = (ctx.gpr[16] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(1712))); if (aot_gpr_4 == 0u) { ctx.gpr[20] = (ctx.gpr[17] | 0u); goto L_089D0094; } goto L_089D001C; L_089D001C: aot_gpr_31 = (0x089D0024u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(1712))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 4u, 0x089D0024u, 0x089CF934u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0024u) goto L_089D0024; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0024: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (ctx.gpr[17] | 0u); if (branch_taken) { goto L_089D0094; } goto L_089D002C; } L_089D002C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 4u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[20] = (ctx.gpr[17] | 0u); if (branch_taken) { goto L_089D0094; } goto L_089D0048; } L_089D0048: ctx.gpr[20] = (ctx.gpr[16] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(596))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D0060; } goto L_089D0058; } L_089D0058: aot_gpr_31 = (0x089D0060u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(596))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 8u, 0x089D0060u, 0x089CF934u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0060u) goto L_089D0060; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0060: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(852))); if (aot_gpr_4 != 0u) { ctx.gpr[20] = (ctx.gpr[17] | 0u); goto L_089D0094; } goto L_089D006C; L_089D006C: ctx.gpr[20] = (ctx.gpr[20] + static_cast(944)); aot_gpr_31 = (0x089D0078u); aot_gpr_4 = (ctx.gpr[20] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0194. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 10u, 0x089D0078u, 0x08B0D970u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 387u, aot_mem); #else recomp_unit_0194_entry(rt, ctx, 387u, 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, 387u, 0x08B0D970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0078u) goto L_089D0078; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0078: aot_gpr_4 = (ctx.gpr[2] < static_cast(225) ? 1u : 0u); if (aot_gpr_4 != 0u) { ctx.gpr[20] = (ctx.gpr[17] | 0u); goto L_089D0094; } goto L_089D0084; L_089D0084: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089D0090u); aot_gpr_5 = (0u | 215u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0194. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 12u, 0x089D0090u, 0x08B0D94Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 383u, aot_mem); #else recomp_unit_0194_entry(rt, ctx, 383u, 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, 383u, 0x08B0D94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0090u) goto L_089D0090; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0090: ctx.gpr[20] = (ctx.gpr[17] | 0u); goto L_089D0094; L_089D0094: aot_gpr_31 = (0x089D009Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 14u, 0x089D009Cu, 0x089CFB28u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 680u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 680u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 680u, 0x089CFB28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D009Cu) goto L_089D009C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D009C: aot_gpr_4 = (ctx.gpr[2] << 6u); ctx.gpr[17] = (ctx.gpr[18] + aot_gpr_4); ctx.gpr[17] = (ctx.gpr[17] + static_cast(16)); aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(0), static_cast(aot_gpr_4)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(1), static_cast(aot_gpr_4)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(2), static_cast(ctx.gpr[19])); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(3), static_cast(aot_gpr_4)); { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (ctx.gpr[17] + 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 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(400)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(44), aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(32), ctx.gpr[16]); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(60), static_cast(0u)); { const bool branch_taken = ctx.gpr[16] == 0u; if (branch_taken) { goto L_089D00F0; } goto L_089D00E4; } L_089D00E4: aot_gpr_5 = (ctx.gpr[17] + static_cast(32)); aot_gpr_31 = (0x089D00F0u); aot_gpr_4 = (ctx.gpr[16] | 0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08A92F78, 163u, 419u, 0x08A92F78u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0163_entry, 163u, 419u, 0x08A92F78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D00F0u) goto L_089D00F0; AOT_REGCACHE_SYNC_OUT(); return; L_089D00F0: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(36), 0u); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(48), 0u); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(52), std::bit_cast(aot_fpr_20)); aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(56), std::bit_cast(aot_fpr_12)); { const bool branch_taken = ctx.gpr[16] == 0u; if (branch_taken) { goto L_089D01E0; } goto L_089D0110; } L_089D0110: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 6u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D01C0; } goto L_089D012C; } L_089D012C: ctx.gpr[20] = (ctx.gpr[16] | 0u); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(1712), ctx.gpr[17]); aot_gpr_31 = (0x089D013Cu); 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 == 0x089D013Cu) goto L_089D013C; AOT_REGCACHE_SYNC_OUT(); return; L_089D013C: { const bool branch_taken = ctx.gpr[20] == ctx.gpr[2]; if (branch_taken) { goto L_089D01E0; } goto L_089D0144; } L_089D0144: aot_gpr_4 = (ctx.gpr[20] + static_cast(48)); 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_4 + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), std::bit_cast(aot_fpr_13)); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_4); aot_gpr_4 = (std::bit_cast(aot_fpr_13)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_4); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_4 = (std::bit_cast(aot_fpr_14)); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_5 = (std::bit_cast(ctx.fpr[15])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_5); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089D0190u); aot_gpr_6 = (0u | 10000u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0065. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 21u, 0x089D0190u, 0x0890B0A8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); #else recomp_unit_0065_entry(rt, ctx, 779u, 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, 779u, 0x0890B0A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0190u) goto L_089D0190; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0190: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(248)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0)))))); aot_gpr_4 = (ctx.gpr[20] + aot_gpr_4); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); jump_target = aot_gpr_6; aot_gpr_31 = (0x089D01ACu); aot_gpr_5 = (0u | 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 == 0x089D01ACu) goto L_089D01AC; AOT_REGCACHE_SYNC_OUT(); return; L_089D01AC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089D01B8u); aot_gpr_5 = (0u | 32u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0065. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 23u, 0x089D01B8u, 0x08908D60u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); #else recomp_unit_0065_entry(rt, ctx, 240u, 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, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D01B8u) goto L_089D01B8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D01B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D01E0; } goto L_089D01C0; } L_089D01C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 4u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D01E0; } goto L_089D01DC; } L_089D01DC: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(596), ctx.gpr[17]); goto L_089D01E0; L_089D01E0: aot_gpr_4 = (ctx.gpr[18] + static_cast(16)); aot_gpr_4 = (ctx.gpr[17] - aot_gpr_4); aot_gpr_5 = (static_cast(static_cast(aot_gpr_4) >> 6u)); aot_gpr_5 = (aot_gpr_5 >> 26u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 6u)); ctx.gpr[2] = (aot_gpr_4 << 16u); ctx.gpr[2] = (static_cast(static_cast(ctx.gpr[2]) >> 16u)); { std::uint32_t aot_run_words[7]{}; 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]); ctx.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]; aot_gpr_31 = aot_run_words[6]; } 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_089D0224: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); { const std::uint32_t aot_run_words[4]{ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(16), aot_run_words); } ctx.gpr[18] = (0u | 0u); ctx.gpr[17] = (aot_gpr_4 | 0u); ctx.gpr[16] = (ctx.gpr[17] + static_cast(16)); goto L_089D0244; L_089D0244: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(16))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D0258; } goto L_089D0250; } L_089D0250: aot_gpr_31 = (0x089D0258u); aot_gpr_4 = (ctx.gpr[16] | 0u); goto L_089D0634; L_089D0258: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); ctx.gpr[17] = (ctx.gpr[17] + static_cast(64)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < 40 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; ctx.gpr[16] = (ctx.gpr[16] + static_cast(64)); if (branch_taken) { goto L_089D0244; } goto L_089D026C; } L_089D026C: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); ctx.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(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_089D0284: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); { const std::uint32_t aot_run_words[6]{std::bit_cast(aot_fpr_20), ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } ctx.gpr[16] = (aot_gpr_5 | 0u); ctx.gpr[19] = (0u | 0u); { 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_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } ctx.gpr[18] = (aot_gpr_4 | 0u); ctx.gpr[17] = (ctx.gpr[18] + static_cast(16)); goto L_089D02B4; L_089D02B4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(16))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D0310; } goto L_089D02C0; } L_089D02C0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(32))); 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(ctx.gpr[16] + static_cast(4))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(36))); 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_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(40))); aot_fpr_13 = aot_fpr_13 - ctx.fpr[16]; { const float fs = aot_fpr_13; 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; } aot_fpr_12 = aot_fpr_12 + aot_fpr_13; 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_089D0310; } goto L_089D0308; } L_089D0308: aot_gpr_31 = (0x089D0310u); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 36u, 0x089D0310u, 0x089CF934u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0310u) goto L_089D0310; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0310: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); ctx.gpr[18] = (ctx.gpr[18] + static_cast(64)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < 40 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; ctx.gpr[17] = (ctx.gpr[17] + static_cast(64)); if (branch_taken) { goto L_089D02B4; } goto L_089D0324; } L_089D0324: { std::uint32_t aot_run_words[6]{}; 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.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]; 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_089D0344: aot_gpr_5 = (aot_gpr_5 << 16u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 16u)); aot_gpr_5 = (aot_gpr_5 << 6u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(16))); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 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_089D0360: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[16]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_5 = (aot_gpr_5 << 16u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 16u)); aot_gpr_5 = (aot_gpr_5 << 6u); ctx.gpr[16] = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x089D0384u); aot_gpr_4 = (ctx.gpr[16] + static_cast(16)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 40u, 0x089D0384u, 0x089CF934u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0384u) goto L_089D0384; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0384: aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(17), static_cast(0u)); ctx.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_089D0398: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); { const std::uint32_t aot_run_words[4]{ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } ctx.gpr[18] = (0u | 0u); ctx.gpr[17] = (aot_gpr_4 | 0u); ctx.gpr[16] = (ctx.gpr[17] + static_cast(16)); goto L_089D03B8; L_089D03B8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(17))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D03D0; } goto L_089D03C4; } L_089D03C4: aot_gpr_31 = (0x089D03CCu); aot_gpr_4 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 44u, 0x089D03CCu, 0x089CF934u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D03CCu) goto L_089D03CC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D03CC: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(17), static_cast(0u)); goto L_089D03D0; L_089D03D0: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); ctx.gpr[17] = (ctx.gpr[17] + static_cast(64)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < 40 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; ctx.gpr[16] = (ctx.gpr[16] + static_cast(64)); if (branch_taken) { goto L_089D03B8; } goto L_089D03E4; } L_089D03E4: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); ctx.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_089D03FC: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); { const std::uint32_t aot_run_words[4]{ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } ctx.gpr[18] = (0u | 0u); ctx.gpr[17] = (aot_gpr_4 | 0u); ctx.gpr[16] = (ctx.gpr[17] + static_cast(16)); goto L_089D041C; L_089D041C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(16))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D0430; } goto L_089D0428; } L_089D0428: aot_gpr_31 = (0x089D0430u); aot_gpr_4 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 50u, 0x089D0430u, 0x089CF934u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0430u) goto L_089D0430; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0430: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); ctx.gpr[17] = (ctx.gpr[17] + static_cast(64)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < 40 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; ctx.gpr[16] = (ctx.gpr[16] + static_cast(64)); if (branch_taken) { goto L_089D041C; } goto L_089D0444; } L_089D0444: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); ctx.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_089D045C: aot_gpr_6 = (aot_mem.aot_direct_load_word_left(aot_gpr_4 + static_cast(3), aot_gpr_6)); aot_gpr_6 = (aot_mem.aot_direct_load_word_right(aot_gpr_4 + static_cast(0), aot_gpr_6)); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_6 = (aot_gpr_4 + static_cast(4)); aot_gpr_7 = (aot_mem.aot_direct_load_word_left(aot_gpr_6 + static_cast(3), aot_gpr_7)); aot_gpr_7 = (aot_mem.aot_direct_load_word_right(aot_gpr_6 + static_cast(0), aot_gpr_7)); aot_fpr_13 = std::bit_cast(aot_gpr_7); aot_gpr_4 = (aot_gpr_4 + static_cast(8)); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(aot_gpr_4 + static_cast(3), aot_gpr_6)); aot_gpr_6 = (aot_mem.aot_direct_load_word_right(aot_gpr_4 + static_cast(0), aot_gpr_6)); aot_fpr_14 = std::bit_cast(aot_gpr_6); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(4), std::bit_cast(aot_fpr_13)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(8), std::bit_cast(aot_fpr_14)); // 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_089D0498: aot_gpr_29 = (aot_gpr_29 + static_cast(-64)); { const std::uint32_t aot_run_words[6]{ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), aot_gpr_6); ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load_word_right(ctx.gpr[16] + static_cast(22), aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load_word_left(ctx.gpr[16] + static_cast(25), aot_gpr_4)); aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); ctx.gpr[20] = (0u + static_cast(-1)); { const bool branch_taken = aot_gpr_4 != ctx.gpr[20]; ctx.gpr[19] = (aot_gpr_5 | 0u); if (branch_taken) { goto L_089D04F0; } goto L_089D04D8; } L_089D04D8: aot_gpr_4 = (aot_mem.aot_direct_load_word_right(ctx.gpr[16] + static_cast(20), aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load_word_left(ctx.gpr[16] + static_cast(23), aot_gpr_4)); aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); { const bool branch_taken = aot_gpr_4 == ctx.gpr[20]; if (branch_taken) { goto L_089D05D0; } goto L_089D04F0; } L_089D04F0: aot_gpr_4 = (aot_mem.aot_direct_load_word_right(ctx.gpr[16] + static_cast(22), aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load_word_left(ctx.gpr[16] + static_cast(25), aot_gpr_4)); aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); { const bool branch_taken = aot_gpr_4 == ctx.gpr[20]; ctx.gpr[18] = (0u | 0u); if (branch_taken) { goto L_089D052C; } goto L_089D0508; } L_089D0508: aot_gpr_4 = (2237u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_6 = (aot_mem.aot_direct_load_word_right(ctx.gpr[16] + static_cast(22), aot_gpr_6)); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(ctx.gpr[16] + static_cast(25), aot_gpr_6)); aot_gpr_6 = (aot_gpr_6 << 16u); aot_gpr_6 = (static_cast(static_cast(aot_gpr_6) >> 16u)); aot_gpr_31 = (0x089D0528u); aot_gpr_5 = (ctx.gpr[19] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0182. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 57u, 0x089D0528u, 0x08ADCA6Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); #else recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0528u) goto L_089D0528; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0528: ctx.gpr[18] = (ctx.gpr[2] | 0u); goto L_089D052C; L_089D052C: ctx.gpr[17] = (ctx.gpr[18] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { goto L_089D0558; } goto L_089D0538; } L_089D0538: aot_gpr_5 = (aot_mem.aot_direct_load_word_right(ctx.gpr[16] + static_cast(20), aot_gpr_5)); aot_gpr_5 = (aot_mem.aot_direct_load_word_left(ctx.gpr[16] + static_cast(23), aot_gpr_5)); aot_gpr_5 = (aot_gpr_5 << 16u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 16u)); { const bool branch_taken = aot_gpr_5 != ctx.gpr[20]; aot_gpr_4 = (0u | 0u); if (branch_taken) { goto L_089D0560; } goto L_089D0550; } L_089D0550: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D0584; } goto L_089D0558; } L_089D0558: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D0614; } goto L_089D0560; } L_089D0560: aot_gpr_4 = (2237u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_6 = (aot_mem.aot_direct_load_word_right(ctx.gpr[16] + static_cast(20), aot_gpr_6)); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(ctx.gpr[16] + static_cast(23), aot_gpr_6)); aot_gpr_6 = (aot_gpr_6 << 16u); aot_gpr_6 = (static_cast(static_cast(aot_gpr_6) >> 16u)); aot_gpr_31 = (0x089D0580u); aot_gpr_5 = (ctx.gpr[19] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0182. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 63u, 0x089D0580u, 0x08ADCA6Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); #else recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0580u) goto L_089D0580; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0580: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_089D0584; L_089D0584: aot_gpr_6 = (2238u << 16u); aot_gpr_6 = (aot_gpr_6 + static_cast(14864)); aot_gpr_5 = (0u | 0u); if (ctx.gpr[18] != 0u) { aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(112))); goto L_089D0598; } goto L_089D0598; L_089D0598: aot_gpr_7 = (0u | 0u); if (aot_gpr_4 != 0u) { aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(112))); goto L_089D05A4; } goto L_089D05A4; L_089D05A4: ctx.gpr[1] = (aot_mem.aot_direct_load_word_right(ctx.gpr[16] + static_cast(15), ctx.gpr[1])); ctx.gpr[1] = (aot_mem.aot_direct_load_word_left(ctx.gpr[16] + static_cast(18), ctx.gpr[1])); aot_fpr_12 = std::bit_cast(ctx.gpr[1]); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(19))); aot_gpr_4 = (aot_gpr_6 | 0u); aot_gpr_6 = (aot_gpr_7 | 0u); aot_gpr_7 = (ctx.gpr[8] | 0u); aot_gpr_31 = (0x089D05C8u); ctx.gpr[8] = (0u | 0u); goto L_089D1074; L_089D05C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D0614; } goto L_089D05D0; } L_089D05D0: aot_gpr_4 = (ctx.gpr[16] + static_cast(3)); aot_gpr_31 = (0x089D05DCu); aot_gpr_5 = (aot_gpr_29 | 0u); goto L_089D045C; L_089D05DC: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_5 = (aot_gpr_29 + static_cast(16)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (2238u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(14864)); { 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_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); } ctx.gpr[1] = (aot_mem.aot_direct_load_word_right(ctx.gpr[16] + static_cast(15), ctx.gpr[1])); ctx.gpr[1] = (aot_mem.aot_direct_load_word_left(ctx.gpr[16] + static_cast(18), ctx.gpr[1])); aot_fpr_12 = std::bit_cast(ctx.gpr[1]); aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(19))); aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089D0614u); aot_gpr_7 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 70u, 0x089D0614u, 0x089CFED4u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 710u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 710u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 710u, 0x089CFED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0614u) goto L_089D0614; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0614: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); ctx.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(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_089D0634: aot_gpr_29 = (aot_gpr_29 + static_cast(-400)); { const std::uint32_t aot_run_words[8]{std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[24]), std::bit_cast(ctx.fpr[26]), ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(356), aot_run_words); } aot_gpr_5 = (16256u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(56))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_5 = (15107u << 16u); aot_gpr_5 = (aot_gpr_5 | 4719u); ctx.fpr[15] = std::bit_cast(aot_gpr_5); { const float fs = aot_fpr_14; const float ft = ctx.fpr[15]; 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; ctx.gpr[16] = (aot_gpr_4 | 0u); 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_089D0690; } goto L_089D0690; L_089D0690: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(56), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D0A58; } goto L_089D06A0; } L_089D06A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_gpr_4 = (aot_gpr_4 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (ctx.gpr[16] + static_cast(16)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 >> 1u); aot_gpr_5 = (0u | 3u); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089D094C; } goto L_089D06D0; } L_089D06D0: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 256u); 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_089D0720; } goto L_089D06EC; } L_089D06EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1712))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[16]; if (branch_taken) { goto L_089D0710; } goto L_089D06F8; } L_089D06F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2244))); aot_gpr_5 = (0u | 4u); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089D0860; } goto L_089D0708; } L_089D0708: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D0874; } goto L_089D0710; } L_089D0710: aot_gpr_31 = (0x089D0718u); aot_gpr_4 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 79u, 0x089D0718u, 0x089CF934u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0718u) goto L_089D0718; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0718: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D104C; } goto L_089D0720; } L_089D0720: aot_gpr_4 = (ctx.gpr[16] + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[17] = (aot_gpr_29 + static_cast(80)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = 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_31 = (0x089D0738u); aot_gpr_4 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 81u, 0x089D0738u, 0x089CF934u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0738u) goto L_089D0738; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0738: aot_gpr_31 = (0x089D0740u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0740u) goto L_089D0740; AOT_REGCACHE_SYNC_OUT(); return; L_089D0740: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_4 = (aot_gpr_4 + static_cast(-128)); 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 = (15477u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); ctx.fpr[22] = std::bit_cast(aot_gpr_4); { const float fs = aot_fpr_12; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = aot_fpr_20 + aot_fpr_12; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089D0774u); ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0774u) goto L_089D0774; AOT_REGCACHE_SYNC_OUT(); return; L_089D0774: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_4 = (aot_gpr_4 + static_cast(-128)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = ctx.fpr[24] + aot_fpr_12; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(84), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089D079Cu); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D079Cu) goto L_089D079C; AOT_REGCACHE_SYNC_OUT(); return; L_089D079C: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); 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 = (15267u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); 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_12 = aot_fpr_20 + aot_fpr_12; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), std::bit_cast(aot_fpr_12)); ctx.fpr[22] = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), std::bit_cast(ctx.fpr[22])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(68), std::bit_cast(ctx.fpr[22])); aot_gpr_4 = (15948u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), std::bit_cast(aot_fpr_12)); ctx.gpr[16] = (aot_gpr_29 + static_cast(64)); aot_gpr_4 = (16128u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (0u | 31u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_6 = (ctx.gpr[16] | 0u); aot_gpr_7 = (0u | 0u); ctx.gpr[8] = (0u | 0u); ctx.gpr[9] = (0u | 0u); ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x089D0810u); ctx.gpr[11] = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0062. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 85u, 0x089D0810u, 0x088FF060u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); #else recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0810u) goto L_089D0810; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0810: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), std::bit_cast(ctx.fpr[22])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(68), std::bit_cast(ctx.fpr[22])); aot_gpr_4 = (15820u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (16204u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (0u | 31u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_6 = (ctx.gpr[16] | 0u); aot_gpr_7 = (0u | 0u); ctx.gpr[8] = (0u | 0u); ctx.gpr[9] = (0u | 0u); ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x089D0858u); ctx.gpr[11] = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0062. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 86u, 0x089D0858u, 0x088FF060u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); #else recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0858u) goto L_089D0858; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0858: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D104C; } goto L_089D0860; } L_089D0860: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); aot_gpr_4 = (16256u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 - aot_fpr_13; aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(24), std::bit_cast(aot_fpr_12)); goto L_089D0874; L_089D0874: aot_gpr_31 = (0x089D087Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0067. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 89u, 0x089D087Cu, 0x08910B38u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); #else recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D087Cu) goto L_089D087C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D087C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_089D08B4; } goto L_089D0884; } L_089D0884: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D08B4; } goto L_089D0890; } L_089D0890: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(852))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089D0944; } goto L_089D08A0; } L_089D08A0: aot_gpr_4 = (17046u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(636), std::bit_cast(aot_fpr_12)); if (branch_taken) { goto L_089D0944; } goto L_089D08B4; } L_089D08B4: aot_gpr_31 = (0x089D08BCu); 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 == 0x089D08BCu) goto L_089D08BC; AOT_REGCACHE_SYNC_OUT(); return; L_089D08BC: { const bool branch_taken = ctx.gpr[17] != ctx.gpr[2]; if (branch_taken) { goto L_089D08FC; } goto L_089D08C4; } L_089D08C4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_4 = (16281u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); aot_fpr_13 = std::bit_cast(aot_gpr_4); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_6 = (0u | 33u); aot_gpr_7 = (0u | 0u); ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x089D08F4u); ctx.gpr[9] = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0057. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 96u, 0x089D08F4u, 0x088EB674u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); #else recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D08F4u) goto L_089D08F4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D08F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D0944; } goto L_089D08FC; } L_089D08FC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_4 = (16281u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); aot_fpr_13 = std::bit_cast(aot_gpr_4); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_6 = (0u | 33u); aot_gpr_7 = (0u | 0u); ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x089D092Cu); ctx.gpr[9] = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0057. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 98u, 0x089D092Cu, 0x088EB674u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); #else recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D092Cu) goto L_089D092C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D092C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_089D0944; } goto L_089D0934; } L_089D0934: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_5 = (32u << 16u); aot_gpr_4 = (aot_gpr_4 | aot_gpr_5); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(72), aot_gpr_4); goto L_089D0944; L_089D0944: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D0A58; } goto L_089D094C; } L_089D094C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 >> 1u); aot_gpr_5 = (0u | 2u); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089D09D4; } goto L_089D0968; } L_089D0968: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(596))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[16]; if (branch_taken) { goto L_089D09C4; } goto L_089D0978; } L_089D0978: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(1))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089D0A58; } goto L_089D0984; } L_089D0984: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_6 = (16281u << 16u); aot_gpr_6 = (aot_gpr_6 | 39322u); aot_fpr_13 = std::bit_cast(aot_gpr_6); { 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_14), std::bit_cast(aot_fpr_14)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_7 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x089D09BCu); aot_gpr_6 = (0u | 33u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0192. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 105u, 0x089D09BCu, 0x08B0452Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 71u, aot_mem); #else recomp_unit_0192_entry(rt, ctx, 71u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 71u, 0x08B0452Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D09BCu) goto L_089D09BC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D09BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D0A58; } goto L_089D09C4; } L_089D09C4: aot_gpr_31 = (0x089D09CCu); aot_gpr_4 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 107u, 0x089D09CCu, 0x089CF934u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D09CCu) goto L_089D09CC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D09CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D104C; } goto L_089D09D4; } L_089D09D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 8u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D0A58; } goto L_089D09F4; } L_089D09F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(452))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[16]; if (branch_taken) { goto L_089D0A18; } goto L_089D0A04; } L_089D0A04: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(1))); if (aot_gpr_4 == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); goto L_089D0A28; } goto L_089D0A10; L_089D0A10: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D0A58; } goto L_089D0A18; } L_089D0A18: aot_gpr_31 = (0x089D0A20u); aot_gpr_4 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 113u, 0x089D0A20u, 0x089CF934u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0A20u) goto L_089D0A20; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0A20: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D104C; } goto L_089D0A28; } L_089D0A28: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); aot_gpr_5 = (2048u << 16u); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089D0A58; } goto L_089D0A3C; } L_089D0A3C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_5 = (16384u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_5); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x089D0A58u); aot_gpr_5 = (0u | 1u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0010. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 116u, 0x089D0A58u, 0x0882C728u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 108u, aot_mem); #else recomp_unit_0010_entry(rt, ctx, 108u, 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, 108u, 0x0882C728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0A58u) goto L_089D0A58; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0A58: aot_gpr_31 = (0x089D0A60u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0087. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 117u, 0x089D0A60u, 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 == 0x089D0A60u) goto L_089D0A60; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0A60: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { goto L_089D0B30; } goto L_089D0A68; } L_089D0A68: aot_gpr_31 = (0x089D0A70u); 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 == 0x089D0A70u) goto L_089D0A70; AOT_REGCACHE_SYNC_OUT(); return; L_089D0A70: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(1712))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089D0B30; } goto L_089D0A7C; } L_089D0A7C: aot_gpr_31 = (0x089D0A84u); 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 == 0x089D0A84u) goto L_089D0A84; AOT_REGCACHE_SYNC_OUT(); return; L_089D0A84: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(72))); aot_gpr_5 = (2048u << 16u); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089D0B30; } goto L_089D0A98; } L_089D0A98: aot_gpr_31 = (0x089D0AA0u); 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 == 0x089D0AA0u) goto L_089D0AA0; AOT_REGCACHE_SYNC_OUT(); return; L_089D0AA0: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (ctx.gpr[16] + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(96)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(112)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_12 = std::bit_cast(aot_gpr_4); 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_089D0B30; } goto L_089D0AF0; } L_089D0AF0: aot_gpr_31 = (0x089D0AF8u); 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 == 0x089D0AF8u) goto L_089D0AF8; AOT_REGCACHE_SYNC_OUT(); return; L_089D0AF8: aot_gpr_31 = (0x089D0B00u); aot_gpr_4 = (ctx.gpr[2] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0080. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 126u, 0x089D0B00u, 0x089474ECu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 665u, aot_mem); #else recomp_unit_0080_entry(rt, ctx, 665u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 665u, 0x089474ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0B00u) goto L_089D0B00; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0B00: aot_gpr_4 = (2238u << 16u); aot_gpr_31 = (0x089D0B0Cu); ctx.gpr[17] = (aot_gpr_4 + static_cast(14864)); 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 == 0x089D0B0Cu) goto L_089D0B0C; AOT_REGCACHE_SYNC_OUT(); return; L_089D0B0C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); aot_gpr_4 = (16204u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_7 = (0u | 1u); aot_gpr_31 = (0x089D0B30u); ctx.gpr[8] = (0u | 1u); goto L_089D1074; L_089D0B30: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(48))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_5 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D0EF4; } goto L_089D0B44; } L_089D0B44: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(56))); aot_gpr_4 = (16025u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); 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_089D0B74; } goto L_089D0B64; } L_089D0B64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(400)); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(48), aot_gpr_4); if (branch_taken) { goto L_089D0BB0; } goto L_089D0B74; } L_089D0B74: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(56))); aot_gpr_4 = (16179u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); aot_fpr_13 = std::bit_cast(aot_gpr_4); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_13)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_089D0BA4; } goto L_089D0B94; } L_089D0B94: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(200)); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(48), aot_gpr_4); if (branch_taken) { goto L_089D0BB0; } goto L_089D0BA4; } L_089D0BA4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(80)); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(48), aot_gpr_4); goto L_089D0BB0; L_089D0BB0: aot_gpr_4 = (ctx.gpr[16] + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(144)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(52))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D0DC4; } goto L_089D0BD0; } L_089D0BD0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 4u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D0DC4; } goto L_089D0BF0; } L_089D0BF0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); aot_gpr_5 = (0u | 198u); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089D0C5C; } goto L_089D0C04; } L_089D0C04: ctx.gpr[17] = (aot_gpr_29 + static_cast(192)); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(208), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (49024u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(212), std::bit_cast(aot_fpr_13)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(216), std::bit_cast(aot_fpr_12)); aot_gpr_6 = (aot_gpr_29 + static_cast(208)); aot_gpr_31 = (0x089D0C30u); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 138u, 0x089D0C30u, 0x089CF564u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 601u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 601u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 601u, 0x089CF564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0C30u) goto L_089D0C30; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0C30: { 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 = (aot_gpr_29 + static_cast(144)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(152))); aot_gpr_4 = (15897u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(152), std::bit_cast(aot_fpr_12)); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D0DC4; } goto L_089D0C5C; } L_089D0C5C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); aot_gpr_5 = (0u | 222u); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089D0CD4; } goto L_089D0C70; } L_089D0C70: ctx.gpr[17] = (aot_gpr_29 + static_cast(224)); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(240), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (16428u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(244), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(248), std::bit_cast(aot_fpr_12)); aot_gpr_6 = (aot_gpr_29 + static_cast(240)); aot_gpr_31 = (0x089D0CA8u); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 141u, 0x089D0CA8u, 0x089CF564u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 601u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 601u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 601u, 0x089CF564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0CA8u) goto L_089D0CA8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0CA8: { 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 = (aot_gpr_29 + static_cast(144)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(152))); aot_gpr_4 = (15897u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(152), std::bit_cast(aot_fpr_12)); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D0DC4; } goto L_089D0CD4; } L_089D0CD4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(852))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089D0D58; } goto L_089D0CE4; } L_089D0CE4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); aot_gpr_6 = (static_cast(aot_gpr_5) < static_cast(aot_gpr_6) ? 1u : 0u); { const bool branch_taken = aot_gpr_6 == 0u; aot_gpr_4 = (0u | 0u); if (branch_taken) { goto L_089D0D0C; } goto L_089D0CFC; } L_089D0CFC: aot_gpr_4 = (aot_gpr_5 << 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))); goto L_089D0D0C; L_089D0D0C: aot_gpr_4 = (aot_gpr_4 + static_cast(96)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[17] = (aot_gpr_29 + static_cast(144)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[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); } ctx.gpr[18] = (aot_gpr_29 + static_cast(256)); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089D0D30u); aot_gpr_6 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 146u, 0x089D0D30u, 0x089CF564u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 601u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 601u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 601u, 0x089CF564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0D30u) goto L_089D0D30; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0D30: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(152))); aot_gpr_4 = (15897u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(152), std::bit_cast(aot_fpr_12)); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D0DC4; } goto L_089D0D58; } L_089D0D58: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(852))); aot_gpr_5 = (0u | 4u); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089D0DC4; } goto L_089D0D6C; } L_089D0D6C: ctx.gpr[17] = (aot_gpr_29 + static_cast(272)); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(288), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (48896u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(292), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(296), std::bit_cast(aot_fpr_12)); aot_gpr_6 = (aot_gpr_29 + static_cast(288)); aot_gpr_31 = (0x089D0DA0u); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 149u, 0x089D0DA0u, 0x089CF564u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 601u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 601u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 601u, 0x089CF564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0DA0u) goto L_089D0DA0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0DA0: { 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 = (aot_gpr_29 + static_cast(144)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(152))); aot_gpr_4 = (15897u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(152), std::bit_cast(aot_fpr_12)); goto L_089D0DC4; L_089D0DC4: ctx.fpr[22] = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(160), std::bit_cast(ctx.fpr[22])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(164), std::bit_cast(ctx.fpr[22])); aot_gpr_4 = (15436u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_fpr_12 = std::bit_cast(aot_gpr_4); { const float fs = aot_fpr_20; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } aot_gpr_4 = (15820u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089D0DF4u); { const float fs = aot_fpr_20; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0DF4u) goto L_089D0DF4; AOT_REGCACHE_SYNC_OUT(); return; L_089D0DF4: aot_fpr_14 = ctx.fpr[26] - ctx.fpr[24]; { const float fs = aot_fpr_14; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = ctx.fpr[24] + aot_fpr_12; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(168), std::bit_cast(aot_fpr_12)); ctx.gpr[17] = (aot_gpr_29 + static_cast(144)); aot_gpr_6 = (aot_gpr_29 + static_cast(160)); aot_gpr_4 = (0u | 27u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_7 = (0u | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); ctx.gpr[8] = (0u | 0u); ctx.gpr[9] = (0u | 0u); ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x089D0E30u); ctx.gpr[11] = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0062. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 152u, 0x089D0E30u, 0x088FF060u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); #else recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0E30u) goto L_089D0E30; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0E30: { 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 = (aot_gpr_29 + static_cast(176)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (48928u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); { const float fs = aot_fpr_20; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } aot_gpr_4 = (16160u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089D0E58u); { const float fs = aot_fpr_20; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0E58u) goto L_089D0E58; AOT_REGCACHE_SYNC_OUT(); return; L_089D0E58: aot_fpr_14 = ctx.fpr[26] - ctx.fpr[24]; { const float fs = aot_fpr_14; const float ft = ctx.fpr[0]; 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 = ctx.fpr[24] + aot_fpr_14; ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(176))); aot_fpr_12 = ctx.fpr[15] + aot_fpr_12; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(176), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089D0E78u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0E78u) goto L_089D0E78; AOT_REGCACHE_SYNC_OUT(); return; L_089D0E78: aot_fpr_12 = ctx.fpr[26] - ctx.fpr[24]; { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = ctx.fpr[24] + aot_fpr_12; aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(180))); aot_fpr_12 = aot_fpr_13 + aot_fpr_12; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(180), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (16416u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089D0EA0u); { const float fs = aot_fpr_20; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0EA0u) goto L_089D0EA0; AOT_REGCACHE_SYNC_OUT(); return; L_089D0EA0: aot_fpr_14 = aot_fpr_20 - ctx.fpr[26]; { const float fs = aot_fpr_14; const float ft = ctx.fpr[0]; 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_14 = ctx.fpr[26] + aot_fpr_14; aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(184))); aot_fpr_13 = aot_fpr_13 + aot_fpr_14; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(184), std::bit_cast(aot_fpr_13)); { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[22])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(128), aot_run_words); } aot_gpr_6 = (aot_gpr_29 + static_cast(128)); aot_gpr_4 = (16025u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (0u | 57u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_7 = (0u | 0u); ctx.gpr[8] = (0u | 0u); ctx.gpr[9] = (0u | 0u); ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x089D0EF4u); ctx.gpr[11] = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0062. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 156u, 0x089D0EF4u, 0x088FF060u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); #else recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0EF4u) goto L_089D0EF4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0EF4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_5 < aot_gpr_4 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089D0F14; } goto L_089D0F08; } L_089D0F08: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(1))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D1044; } goto L_089D0F14; } L_089D0F14: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(44))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_5 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D0F34; } goto L_089D0F28; } L_089D0F28: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(400)); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(44), aot_gpr_4); goto L_089D0F34; L_089D0F34: aot_gpr_31 = (0x089D0F3Cu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0F3Cu) goto L_089D0F3C; AOT_REGCACHE_SYNC_OUT(); return; L_089D0F3C: ctx.gpr[17] = (ctx.gpr[2] & 65535u); ctx.gpr[17] = (ctx.gpr[17] & 127u); aot_gpr_4 = (ctx.gpr[16] + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(48)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); aot_gpr_4 = (16544u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089D0FE8; } goto L_089D0F74; } L_089D0F74: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5048))); aot_gpr_7 = (aot_gpr_29 + static_cast(48)); aot_gpr_4 = (16608u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_13 = std::bit_cast(0u); aot_gpr_4 = (49376u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_4); aot_gpr_4 = (static_cast(static_cast(ctx.gpr[17]) >> 1u)); aot_gpr_4 = (aot_gpr_4 >> 31u); aot_gpr_4 = (ctx.gpr[17] + aot_gpr_4); ctx.gpr[9] = (static_cast(static_cast(aot_gpr_4) >> 1u)); ctx.gpr[9] = (ctx.gpr[9] & 255u); aot_gpr_4 = (16672u << 16u); ctx.fpr[16] = std::bit_cast(aot_gpr_4); aot_gpr_4 = (16256u << 16u); ctx.fpr[17] = std::bit_cast(aot_gpr_4); aot_gpr_4 = (16928u << 16u); ctx.fpr[18] = std::bit_cast(aot_gpr_4); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 2u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_13)); ctx.gpr[8] = (0u | 0u); ctx.gpr[10] = (ctx.gpr[9] | 0u); ctx.gpr[11] = (0u | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); ctx.fpr[19] = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x089D0FE8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_13)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0164. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 163u, 0x089D0FE8u, 0x08A97518u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); #else recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 490u, 0x08A97518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0FE8u) goto L_089D0FE8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D0FE8: aot_gpr_4 = (ctx.gpr[16] + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_5 = (aot_gpr_29 + static_cast(304)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_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); } ctx.fpr[15] = std::bit_cast(0u); { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[15]), std::bit_cast(ctx.fpr[15]), std::bit_cast(ctx.fpr[15])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(320), aot_run_words); } aot_gpr_6 = (aot_gpr_29 + static_cast(320)); aot_gpr_4 = (16704u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_13 = std::bit_cast(ctx.gpr[17]); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_4 = (15360u << 16u); aot_fpr_14 = std::bit_cast(aot_gpr_4); { 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_gpr_4 = (0u | 0u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_7 = (0u | 0u); aot_gpr_31 = (0x089D103Cu); ctx.gpr[8] = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0200. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 164u, 0x089D103Cu, 0x08B25C64u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); #else recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D103Cu) goto L_089D103C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D103C: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D104C; } goto L_089D1044; } L_089D1044: aot_gpr_31 = (0x089D104Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 166u, 0x089D104Cu, 0x089CF934u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D104Cu) goto L_089D104C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D104C: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(356), 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.gpr[16] = aot_run_words[4]; ctx.gpr[17] = aot_run_words[5]; ctx.gpr[18] = aot_run_words[6]; aot_gpr_31 = aot_run_words[7]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(400)); // 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_089D1074: aot_gpr_29 = (aot_gpr_29 + static_cast(-112)); { const std::uint32_t aot_run_words[10]{std::bit_cast(aot_fpr_20), ctx.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(68), aot_run_words); } ctx.gpr[18] = (aot_gpr_7 & 255u); ctx.gpr[19] = (ctx.gpr[8] & 255u); ctx.gpr[22] = (0u | 0u); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(72))); aot_gpr_7 = (aot_gpr_7 & 14u); aot_gpr_7 = (aot_gpr_7 ^ 6u); aot_gpr_7 = (aot_gpr_7 < static_cast(1) ? 1u : 0u); aot_gpr_7 = (aot_gpr_7 & 255u); ctx.gpr[20] = (aot_gpr_4 | 0u); ctx.gpr[16] = (aot_gpr_5 | 0u); ctx.gpr[17] = (aot_gpr_6 | 0u); { const bool branch_taken = aot_gpr_7 == 0u; aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_12)); if (branch_taken) { goto L_089D1120; } goto L_089D10D4; } L_089D10D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1712))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089D1118; } goto L_089D10E0; } L_089D10E0: aot_gpr_31 = (0x089D10E8u); aot_gpr_4 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0064. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 170u, 0x089D10E8u, 0x08906DE4u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); #else recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D10E8u) goto L_089D10E8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D10E8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_089D1110; } goto L_089D10F0; } L_089D10F0: aot_gpr_31 = (0x089D10F8u); aot_gpr_4 = (ctx.gpr[20] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 172u, 0x089D10F8u, 0x089CFB28u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 680u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 680u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 680u, 0x089CFB28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D10F8u) goto L_089D10F8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D10F8: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u + static_cast(-1)); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089D130C; } goto L_089D1108; } L_089D1108: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D1700; } goto L_089D1110; } L_089D1110: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_089D1704; } goto L_089D1118; } L_089D1118: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_089D1704; } goto L_089D1120; } L_089D1120: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 8u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D1170; } goto L_089D113C; } L_089D113C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(478)))))); { const bool branch_taken = static_cast(aot_gpr_5) <= 0; if (branch_taken) { goto L_089D1160; } goto L_089D114C; } L_089D114C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(452))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D1168; } goto L_089D1158; } L_089D1158: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_089D1704; } goto L_089D1160; } L_089D1160: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_089D1704; } goto L_089D1168; } L_089D1168: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D10F0; } goto L_089D1170; } L_089D1170: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 4u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D11D4; } goto L_089D118C; } L_089D118C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(596))); { const bool branch_taken = aot_gpr_5 != 0u; if (branch_taken) { goto L_089D11B0; } goto L_089D119C; } L_089D119C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(852))); { const bool branch_taken = aot_gpr_5 != 0u; if (branch_taken) { goto L_089D10F0; } goto L_089D11A8; } L_089D11A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D11B8; } goto L_089D11B0; } L_089D11B0: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_089D1704; } goto L_089D11B8; } L_089D11B8: aot_gpr_31 = (0x089D11C0u); aot_gpr_4 = (aot_gpr_4 + static_cast(944)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0194. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 188u, 0x089D11C0u, 0x08B0D970u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 387u, aot_mem); #else recomp_unit_0194_entry(rt, ctx, 387u, 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, 387u, 0x08B0D970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D11C0u) goto L_089D11C0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D11C0: aot_gpr_4 = (ctx.gpr[2] < static_cast(225) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089D10F0; } goto L_089D11CC; } L_089D11CC: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_089D1704; } goto L_089D11D4; } L_089D11D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 14u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D10F0; } goto L_089D11F0; } L_089D11F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(352))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(108))); aot_gpr_5 = (aot_gpr_5 + static_cast(64)); 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))); jump_target = aot_gpr_5; aot_gpr_31 = (0x089D120Cu); 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 == 0x089D120Cu) goto L_089D120C; AOT_REGCACHE_SYNC_OUT(); return; L_089D120C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_gpr_4 < static_cast(12) ? 1u : 0u); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_089D1304; } goto L_089D121C; } L_089D121C: aot_gpr_4 = (aot_gpr_4 << 2u); ctx.gpr[1] = (2232u << 16u); ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-3488))); jump_target = ctx.gpr[1]; // 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_089D1234: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(376))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089D1248; } goto L_089D1240; } L_089D1240: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D1304; } goto L_089D1248; } L_089D1248: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_089D1704; } goto L_089D1250; } L_089D1250: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(368))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089D1274; } goto L_089D125C; } L_089D125C: ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(352))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(96))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D127C; } goto L_089D126C; } L_089D126C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(96))); if (branch_taken) { goto L_089D129C; } goto L_089D1274; } L_089D1274: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_089D1704; } goto L_089D127C; } L_089D127C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[21] + static_cast(10)))))); aot_gpr_6 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x089D128Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 202u, 0x089D128Cu, 0x08A9C6FCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); #else recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D128Cu) goto L_089D128C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D128C: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(48))); aot_mem.aot_direct_store8(ctx.gpr[21] + static_cast(4), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(96))); goto L_089D129C; L_089D129C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(456))); aot_gpr_4 = (17274u << 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_089D12F4; } goto L_089D12B8; } L_089D12B8: ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(352))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(96))); { const bool branch_taken = aot_gpr_4 != 0u; ctx.gpr[23] = (0u | 5u); if (branch_taken) { goto L_089D12E4; } goto L_089D12C8; } L_089D12C8: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[21] + static_cast(10)))))); aot_gpr_6 = (aot_gpr_29 + static_cast(49)); aot_gpr_31 = (0x089D12D8u); aot_gpr_4 = (ctx.gpr[21] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 206u, 0x089D12D8u, 0x08A9C6FCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); #else recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D12D8u) goto L_089D12D8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D12D8: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(49))); aot_mem.aot_direct_store8(ctx.gpr[21] + static_cast(4), static_cast(aot_gpr_4)); goto L_089D12E4; L_089D12E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(96))); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(194))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[23]; if (branch_taken) { goto L_089D12FC; } goto L_089D12F4; } L_089D12F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D1304; } goto L_089D12FC; } L_089D12FC: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_089D1704; } goto L_089D1304; } L_089D1304: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D10F0; } goto L_089D130C; } L_089D130C: aot_gpr_4 = (aot_gpr_4 << 6u); ctx.gpr[22] = (ctx.gpr[20] + aot_gpr_4); ctx.gpr[22] = (ctx.gpr[22] + static_cast(16)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 6u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[23] = (0u | 1u); if (branch_taken) { goto L_089D1488; } goto L_089D1334; } L_089D1334: ctx.gpr[20] = (ctx.gpr[16] | 0u); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(1712), ctx.gpr[22]); aot_gpr_31 = (0x089D1344u); 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 == 0x089D1344u) goto L_089D1344; AOT_REGCACHE_SYNC_OUT(); return; L_089D1344: { const bool branch_taken = ctx.gpr[20] == ctx.gpr[2]; if (branch_taken) { goto L_089D1430; } goto L_089D134C; } L_089D134C: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { goto L_089D136C; } goto L_089D1354; } L_089D1354: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089D1364u); aot_gpr_6 = (0u | 10000u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0065. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 216u, 0x089D1364u, 0x0890B27Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); #else recomp_unit_0065_entry(rt, ctx, 803u, 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, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1364u) goto L_089D1364; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D1364: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D13C4; } goto L_089D136C; } L_089D136C: aot_gpr_4 = (ctx.gpr[20] + static_cast(48)); 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_4 + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(52), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), std::bit_cast(aot_fpr_13)); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_4); aot_gpr_4 = (std::bit_cast(aot_fpr_13)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), aot_gpr_4); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); aot_gpr_4 = (std::bit_cast(aot_fpr_14)); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); aot_gpr_5 = (std::bit_cast(ctx.fpr[15])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), aot_gpr_5); aot_gpr_5 = (aot_gpr_29 + static_cast(32)); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089D13B8u); aot_gpr_6 = (0u | 10000u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0065. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 218u, 0x089D13B8u, 0x0890B0A8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); #else recomp_unit_0065_entry(rt, ctx, 779u, 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, 779u, 0x0890B0A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D13B8u) goto L_089D13B8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D13B8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089D13C4u); aot_gpr_5 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0067. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 219u, 0x089D13C4u, 0x089103CCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 60u, aot_mem); #else recomp_unit_0067_entry(rt, ctx, 60u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 60u, 0x089103CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D13C4u) goto L_089D13C4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D13C4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089D13D0u); aot_gpr_5 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0178. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 220u, 0x089D13D0u, 0x08ACD4BCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); #else recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D13D0u) goto L_089D13D0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D13D0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089D13DCu); aot_gpr_5 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0067. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 221u, 0x089D13DCu, 0x0891034Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); #else recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D13DCu) goto L_089D13DC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D13DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(10000)); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(1368), aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(456))); aot_gpr_5 = (49152u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(-1)); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(456), aot_gpr_4); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089D1408u); aot_gpr_5 = (0u | 5u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0890BE50, 65u, 982u, 0x0890BE50u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0065_entry, 65u, 982u, 0x0890BE50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1408u) goto L_089D1408; AOT_REGCACHE_SYNC_OUT(); return; L_089D1408: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(248)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0)))))); aot_gpr_4 = (ctx.gpr[20] + aot_gpr_4); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); jump_target = aot_gpr_6; aot_gpr_31 = (0x089D1424u); aot_gpr_5 = (0u | 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 == 0x089D1424u) goto L_089D1424; AOT_REGCACHE_SYNC_OUT(); return; L_089D1424: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089D1430u); aot_gpr_5 = (0u | 32u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0065. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 224u, 0x089D1430u, 0x08908D60u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); #else recomp_unit_0065_entry(rt, ctx, 240u, 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, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1430u) goto L_089D1430; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D1430: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { goto L_089D158C; } goto L_089D1438; } L_089D1438: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(1360))); aot_gpr_5 = (0u | 6u); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089D1468; } goto L_089D1448; } L_089D1448: aot_gpr_4 = (0u | 15u); aot_gpr_5 = (0u | 1u); aot_gpr_6 = (ctx.gpr[16] | 0u); aot_gpr_7 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089D1460u); ctx.gpr[8] = (0u | 10000u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0095. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 227u, 0x089D1460u, 0x0898019Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); #else recomp_unit_0095_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_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1460u) goto L_089D1460; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D1460: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D158C; } goto L_089D1468; } L_089D1468: aot_gpr_4 = (0u | 14u); aot_gpr_5 = (0u | 1u); aot_gpr_6 = (ctx.gpr[16] | 0u); aot_gpr_7 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089D1480u); ctx.gpr[8] = (0u | 10000u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0095. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 229u, 0x089D1480u, 0x0898019Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); #else recomp_unit_0095_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_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1480u) goto L_089D1480; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D1480: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D158C; } goto L_089D1488; } L_089D1488: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 8u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D14B0; } goto L_089D14A4; } L_089D14A4: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(452), ctx.gpr[22]); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D158C; } goto L_089D14B0; } L_089D14B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 4u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D1524; } goto L_089D14CC; } L_089D14CC: ctx.gpr[20] = (ctx.gpr[16] | 0u); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(596), ctx.gpr[22]); aot_gpr_31 = (0x089D14DCu); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast(86)))))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0186. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 234u, 0x089D14DCu, 0x08AECC3Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 217u, aot_mem); #else recomp_unit_0186_entry(rt, ctx, 217u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 217u, 0x08AECC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D14DCu) goto L_089D14DC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D14DC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { goto L_089D14F4; } goto L_089D14E4; } L_089D14E4: aot_gpr_31 = (0x089D14ECu); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast(86)))))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0186. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 236u, 0x089D14ECu, 0x08AECAA8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 181u, aot_mem); #else recomp_unit_0186_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_0186_entry, 186u, 181u, 0x08AECAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D14ECu) goto L_089D14EC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D14EC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_089D14FC; } goto L_089D14F4; } L_089D14F4: aot_gpr_31 = (0x089D14FCu); aot_gpr_4 = (ctx.gpr[20] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0194. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 238u, 0x089D14FCu, 0x08B0E268u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 526u, aot_mem); #else recomp_unit_0194_entry(rt, ctx, 526u, 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, 526u, 0x08B0E268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D14FCu) goto L_089D14FC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D14FC: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { goto L_089D151C; } goto L_089D1504; } L_089D1504: aot_gpr_4 = (0u | 16u); aot_gpr_5 = (0u | 2u); aot_gpr_6 = (ctx.gpr[16] | 0u); aot_gpr_7 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089D151Cu); ctx.gpr[8] = (0u | 10000u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0095. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 240u, 0x089D151Cu, 0x0898019Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); #else recomp_unit_0095_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_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D151Cu) goto L_089D151C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D151C: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D158C; } goto L_089D1524; } L_089D1524: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 14u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D158C; } goto L_089D1540; } L_089D1540: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(352))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(108))); aot_gpr_5 = (aot_gpr_5 + static_cast(64)); 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))); jump_target = aot_gpr_5; aot_gpr_31 = (0x089D155Cu); 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 == 0x089D155Cu) goto L_089D155C; AOT_REGCACHE_SYNC_OUT(); return; L_089D155C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (static_cast(aot_gpr_4) < 2 ? 1u : 0u); if (aot_gpr_5 == 0u) { aot_gpr_4 = (static_cast(aot_gpr_4) < 4 ? 1u : 0u); goto L_089D1580; } goto L_089D156C; L_089D156C: { const bool branch_taken = static_cast(aot_gpr_4) < 0; if (branch_taken) { goto L_089D158C; } goto L_089D1574; } L_089D1574: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(376), ctx.gpr[22]); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D158C; } goto L_089D1580; } L_089D1580: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D158C; } goto L_089D1588; } L_089D1588: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(368), ctx.gpr[22]); goto L_089D158C; L_089D158C: aot_gpr_4 = (ctx.gpr[16] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(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_mem.aot_direct_store8(ctx.gpr[22] + static_cast(0), static_cast(ctx.gpr[23])); aot_mem.aot_direct_store8(ctx.gpr[22] + static_cast(60), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[22] + static_cast(1), static_cast(0u)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (ctx.gpr[22] + 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); } { const bool branch_taken = ctx.gpr[16] == 0u; if (branch_taken) { goto L_089D15F8; } goto L_089D15BC; } L_089D15BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 6u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D15F8; } goto L_089D15D8; } L_089D15D8: aot_gpr_31 = (0x089D15E0u); aot_gpr_4 = (ctx.gpr[16] | 0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0890D44C, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D15E0u) goto L_089D15E0; AOT_REGCACHE_SYNC_OUT(); return; L_089D15E0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_089D15F8; } goto L_089D15E8; } L_089D15E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(3333)); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(40), aot_gpr_4); if (branch_taken) { goto L_089D1694; } goto L_089D15F8; } L_089D15F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_5 = (0u | 4u); ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-11700))); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-11704))); if (branch_taken) { goto L_089D1654; } goto L_089D1610; } L_089D1610: aot_gpr_31 = (0x089D1618u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1618u) goto L_089D1618; AOT_REGCACHE_SYNC_OUT(); return; L_089D1618: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_7 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089D162Cu); aot_gpr_6 = (ctx.gpr[20] | 0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B60E5C, 215u, 177u, 0x08B60E5Cu>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[9], ctx.gpr[10], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0215_entry, 215u, 177u, 0x08B60E5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D162Cu) goto L_089D162C; AOT_REGCACHE_SYNC_OUT(); return; L_089D162C: ctx.gpr[1] = (ctx.gpr[3] << 1u); aot_gpr_5 = (static_cast(static_cast(ctx.gpr[3]) >> 31u)); aot_gpr_4 = (ctx.gpr[2] >> 31u); aot_gpr_4 = (ctx.gpr[1] | aot_gpr_4); aot_gpr_4 = (aot_gpr_4 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_gpr_4 = (aot_gpr_4 + static_cast(4000)); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(40), aot_gpr_4); if (branch_taken) { goto L_089D1694; } goto L_089D1654; } L_089D1654: aot_gpr_31 = (0x089D165Cu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D165Cu) goto L_089D165C; AOT_REGCACHE_SYNC_OUT(); return; L_089D165C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_7 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089D1670u); aot_gpr_6 = (ctx.gpr[20] | 0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B60E5C, 215u, 177u, 0x08B60E5Cu>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[9], ctx.gpr[10], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0215_entry, 215u, 177u, 0x08B60E5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1670u) goto L_089D1670; AOT_REGCACHE_SYNC_OUT(); return; L_089D1670: ctx.gpr[1] = (ctx.gpr[3] << 1u); aot_gpr_5 = (static_cast(static_cast(ctx.gpr[3]) >> 31u)); aot_gpr_4 = (ctx.gpr[2] >> 31u); aot_gpr_4 = (ctx.gpr[1] | aot_gpr_4); aot_gpr_4 = (aot_gpr_4 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_gpr_4 = (aot_gpr_4 + static_cast(10000)); aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(40), aot_gpr_4); goto L_089D1694; L_089D1694: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(400)); aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(44), aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(32), ctx.gpr[16]); aot_gpr_5 = (ctx.gpr[22] + static_cast(32)); aot_gpr_31 = (0x089D16B0u); aot_gpr_4 = (ctx.gpr[16] | 0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08A92F78, 163u, 419u, 0x08A92F78u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0163_entry, 163u, 419u, 0x08A92F78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D16B0u) goto L_089D16B0; AOT_REGCACHE_SYNC_OUT(); return; L_089D16B0: aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(36), ctx.gpr[17]); { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { goto L_089D16CC; } goto L_089D16BC; } L_089D16BC: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_5 = (ctx.gpr[22] + static_cast(36)); if (branch_taken) { goto L_089D16CC; } goto L_089D16C4; } L_089D16C4: aot_gpr_31 = (0x089D16CCu); 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_08A92F78, 163u, 419u, 0x08A92F78u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0163_entry, 163u, 419u, 0x08A92F78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D16CCu) goto L_089D16CC; AOT_REGCACHE_SYNC_OUT(); return; L_089D16CC: aot_gpr_31 = (0x089D16D4u); aot_gpr_4 = (ctx.gpr[22] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 265u, 0x089D16D4u, 0x089CFA7Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 672u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 672u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 672u, 0x089CFA7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D16D4u) goto L_089D16D4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D16D4: aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(48), 0u); aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(52), std::bit_cast(aot_fpr_20)); aot_mem.aot_direct_store8(ctx.gpr[22] + static_cast(2), static_cast(ctx.gpr[18])); aot_mem.aot_direct_store8(ctx.gpr[22] + static_cast(3), static_cast(ctx.gpr[23])); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D1700; } goto L_089D16F0; } L_089D16F0: { const bool branch_taken = ctx.gpr[19] == 0u; if (branch_taken) { goto L_089D1700; } goto L_089D16F8; } L_089D16F8: aot_gpr_31 = (0x089D1700u); aot_gpr_4 = (ctx.gpr[22] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 268u, 0x089D1700u, 0x089CF58Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 602u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 602u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 602u, 0x089CF58Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1700u) goto L_089D1700; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D1700: ctx.gpr[2] = (ctx.gpr[22] | 0u); goto L_089D1704; L_089D1704: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(68), aot_run_words); aot_fpr_20 = std::bit_cast(aot_run_words[0]); ctx.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(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_089D1734: aot_gpr_29 = (aot_gpr_29 + static_cast(-112)); { const std::uint32_t aot_run_words[12]{std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[24]), std::bit_cast(ctx.fpr[26]), std::bit_cast(ctx.fpr[28]), ctx.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); } ctx.gpr[16] = (aot_gpr_4 | 0u); ctx.gpr[17] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 40 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D1A68; } goto L_089D177C; } L_089D177C: aot_gpr_4 = (ctx.gpr[17] << 6u); aot_gpr_4 = (ctx.gpr[16] + aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(16))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D1A58; } goto L_089D1790; } L_089D1790: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); aot_gpr_4 = (ctx.gpr[17] << 6u); aot_gpr_4 = (ctx.gpr[16] + aot_gpr_4); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(32))); aot_fpr_13 = aot_fpr_13 - aot_fpr_14; { const float fs = aot_fpr_13; 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; } ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(36))); ctx.fpr[15] = ctx.fpr[15] - ctx.fpr[16]; { const float fs = ctx.fpr[15]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast(0x7FC00000u); else ctx.fpr[15] = fs * ft; } aot_fpr_13 = aot_fpr_13 + ctx.fpr[15]; aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(40))); aot_fpr_14 = aot_fpr_14 - ctx.fpr[17]; { 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_13 = aot_fpr_13 + aot_fpr_14; { 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)) ctx.fpr[16] = std::bit_cast(0x7FC00000u); else ctx.fpr[16] = fs * ft; } ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 < ctx.fpr[16])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_089D1A58; } goto L_089D17E4; } L_089D17E4: aot_gpr_4 = (ctx.gpr[17] << 6u); ctx.gpr[18] = (ctx.gpr[16] + aot_gpr_4); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(72))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_4 = (15428u << 16u); aot_gpr_4 = (aot_gpr_4 | 39846u); aot_fpr_14 = std::bit_cast(aot_gpr_4); { 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; aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(72), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (0u | 210u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(16), static_cast(aot_gpr_4)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(17), static_cast(aot_gpr_4)); aot_gpr_4 = (0u | 240u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(18), static_cast(aot_gpr_4)); aot_gpr_4 = (0u | 90u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(19), static_cast(aot_gpr_4)); aot_gpr_4 = (ctx.gpr[18] + static_cast(32)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[19] = (aot_gpr_29 + static_cast(48)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = 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 = (0x089D1840u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1840u) goto L_089D1840; AOT_REGCACHE_SYNC_OUT(); return; L_089D1840: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_4 = (aot_gpr_4 + static_cast(-128)); 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 = (15477u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); ctx.fpr[22] = std::bit_cast(aot_gpr_4); { const float fs = aot_fpr_12; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = aot_fpr_20 + aot_fpr_12; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089D1874u); ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1874u) goto L_089D1874; AOT_REGCACHE_SYNC_OUT(); return; L_089D1874: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_4 = (aot_gpr_4 + static_cast(-128)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = ctx.fpr[24] + aot_fpr_12; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(52), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089D189Cu); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D189Cu) goto L_089D189C; AOT_REGCACHE_SYNC_OUT(); return; L_089D189C: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); 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 = (15267u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); ctx.fpr[24] = std::bit_cast(aot_gpr_4); { const float fs = aot_fpr_12; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = aot_fpr_20 + aot_fpr_12; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), std::bit_cast(aot_fpr_12)); ctx.fpr[26] = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), std::bit_cast(ctx.fpr[26])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), std::bit_cast(ctx.fpr[26])); aot_gpr_4 = (15820u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), std::bit_cast(aot_fpr_12)); ctx.gpr[20] = (aot_gpr_29 + static_cast(32)); aot_gpr_4 = (16281u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.gpr[21] = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (0u | 28u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_7 = (0u | 0u); ctx.gpr[8] = (ctx.gpr[21] | 0u); ctx.gpr[9] = (0u | 0u); ctx.gpr[10] = (0u | 0u); ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089D191Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0063. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 277u, 0x089D191Cu, 0x0890043Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); #else recomp_unit_0063_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_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D191Cu) goto L_089D191C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D191C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), std::bit_cast(ctx.fpr[26])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), std::bit_cast(ctx.fpr[26])); aot_gpr_4 = (15692u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (16307u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (0u | 28u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_7 = (0u | 0u); ctx.gpr[8] = (ctx.gpr[21] | 0u); ctx.gpr[9] = (0u | 0u); ctx.gpr[10] = (0u | 0u); ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089D1968u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0063. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 278u, 0x089D1968u, 0x0890043Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); #else recomp_unit_0063_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_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1968u) goto L_089D1968; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D1968: aot_gpr_31 = (0x089D1970u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1970u) goto L_089D1970; AOT_REGCACHE_SYNC_OUT(); return; L_089D1970: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_4 = (aot_gpr_4 + static_cast(-128)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = aot_fpr_20 + aot_fpr_12; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089D1998u); ctx.fpr[28] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1998u) goto L_089D1998; AOT_REGCACHE_SYNC_OUT(); return; L_089D1998: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_4 = (aot_gpr_4 + static_cast(-128)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = ctx.fpr[28] + aot_fpr_12; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(52), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089D19C0u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D19C0u) goto L_089D19C0; AOT_REGCACHE_SYNC_OUT(); return; L_089D19C0: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = aot_fpr_20 + aot_fpr_12; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), std::bit_cast(ctx.fpr[26])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), std::bit_cast(ctx.fpr[26])); aot_gpr_4 = (15897u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (0u | 28u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_7 = (0u | 0u); ctx.gpr[8] = (ctx.gpr[21] | 0u); ctx.gpr[9] = (0u | 0u); ctx.gpr[10] = (0u | 0u); ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089D1A24u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0063. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 282u, 0x089D1A24u, 0x0890043Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); #else recomp_unit_0063_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_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1A24u) goto L_089D1A24; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D1A24: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[18] + static_cast(76), static_cast(aot_gpr_4)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(72))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[26])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_089D1A50; } goto L_089D1A40; } L_089D1A40: aot_gpr_4 = (ctx.gpr[17] << 6u); aot_gpr_4 = (ctx.gpr[16] + aot_gpr_4); aot_gpr_31 = (0x089D1A50u); aot_gpr_4 = (aot_gpr_4 + static_cast(16)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 284u, 0x089D1A50u, 0x089CF934u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1A50u) goto L_089D1A50; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D1A50: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { goto L_089D1A6C; } goto L_089D1A58; } L_089D1A58: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 40 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089D177C; } goto L_089D1A68; } L_089D1A68: ctx.gpr[2] = (0u | 0u); goto L_089D1A6C; L_089D1A6C: { std::uint32_t aot_run_words[12]{}; 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]); ctx.fpr[24] = std::bit_cast(aot_run_words[2]); ctx.fpr[26] = std::bit_cast(aot_run_words[3]); ctx.fpr[28] = std::bit_cast(aot_run_words[4]); ctx.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]; aot_gpr_31 = aot_run_words[11]; } 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_089D1AA4: 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_4 = (2238u << 16u); aot_gpr_31 = (0x089D1AB8u); aot_gpr_4 = (aot_gpr_4 + static_cast(14864)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 289u, 0x089D1AB8u, 0x089CFABCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 674u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 674u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 674u, 0x089CFABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1AB8u) goto L_089D1AB8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D1AB8: aot_gpr_31 = (0x089D1AC0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-11696)); 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, ctx.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 == 0x089D1AC0u) goto L_089D1AC0; AOT_REGCACHE_SYNC_OUT(); return; L_089D1AC0: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(9636), static_cast(0u)); aot_gpr_4 = (ctx.gpr[28] + static_cast(-11684)); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(9636))); aot_gpr_5 = (aot_gpr_5 << 2u); aot_gpr_6 = (2237u << 16u); aot_gpr_6 = (aot_gpr_6 + static_cast(-30144)); aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); 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_089D1AEC: aot_gpr_5 = (18804u << 16u); aot_gpr_5 = (aot_gpr_5 | 9216u); aot_fpr_12 = std::bit_cast(aot_gpr_5); ctx.gpr[2] = (aot_gpr_4 | 0u); aot_gpr_5 = (51572u << 16u); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), std::bit_cast(aot_fpr_12)); aot_gpr_5 = (aot_gpr_5 | 9216u); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), 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_089D1B1C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), std::bit_cast(aot_fpr_13)); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), std::bit_cast(aot_fpr_14)); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), std::bit_cast(ctx.fpr[15])); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 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_089D1B34: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); aot_gpr_6 = (aot_gpr_7 << 2u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089D1B54u); aot_gpr_7 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 294u, 0x089D1B54u, 0x08A9D3CCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); #else recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1B54u) goto L_089D1B54; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D1B54: 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_089D1B60: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_5); aot_gpr_7 = (aot_gpr_5 << 2u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_4); aot_gpr_5 = (0u | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x089D1B80u); aot_gpr_6 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 296u, 0x089D1B80u, 0x08A9D3CCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); #else recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1B80u) goto L_089D1B80; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D1B80: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(16))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_6 = (0u | 0u); ctx.gpr[9] = (static_cast(aot_gpr_6) < static_cast(aot_gpr_4) ? 1u : 0u); { const bool branch_taken = ctx.gpr[9] == 0u; ctx.gpr[8] = (ctx.gpr[2] | 0u); if (branch_taken) { goto L_089D1BB4; } goto L_089D1B9C; } L_089D1B9C: ctx.gpr[9] = (ctx.gpr[8] | 0u); goto L_089D1BA0; L_089D1BA0: aot_mem.aot_direct_store32(ctx.gpr[9] + static_cast(0), 0u); aot_gpr_6 = (aot_gpr_6 + static_cast(1)); ctx.gpr[10] = (static_cast(aot_gpr_6) < static_cast(aot_gpr_4) ? 1u : 0u); { const bool branch_taken = ctx.gpr[10] != 0u; ctx.gpr[9] = (ctx.gpr[9] + static_cast(4)); if (branch_taken) { goto L_089D1BA0; } goto L_089D1BB4; } L_089D1BB4: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(8))); aot_gpr_6 = (0u | 0u); ctx.gpr[9] = (static_cast(aot_gpr_6) < static_cast(ctx.gpr[2]) ? 1u : 0u); { const bool branch_taken = ctx.gpr[9] == 0u; ctx.gpr[11] = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(0))); if (branch_taken) { goto L_089D1C24; } goto L_089D1BC8; } L_089D1BC8: ctx.gpr[9] = (aot_gpr_4 + static_cast(-1)); ctx.gpr[3] = (0u | 0u); goto L_089D1BD0; L_089D1BD0: ctx.gpr[10] = (ctx.gpr[11] + ctx.gpr[3]); ctx.gpr[10] = (aot_mem.aot_direct_load32(ctx.gpr[10] + static_cast(0))); { const bool branch_taken = ctx.gpr[10] == 0u; if (branch_taken) { goto L_089D1C14; } goto L_089D1BE0; } L_089D1BE0: ctx.gpr[11] = (aot_mem.aot_direct_load32(ctx.gpr[10] + static_cast(8))); goto L_089D1BE4; L_089D1BE4: ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[10] + static_cast(0))); ctx.gpr[11] = (ctx.gpr[11] & ctx.gpr[9]); ctx.gpr[11] = (ctx.gpr[11] << 2u); ctx.gpr[11] = (ctx.gpr[8] + ctx.gpr[11]); ctx.gpr[12] = (aot_mem.aot_direct_load32(ctx.gpr[11] + static_cast(0))); aot_mem.aot_direct_store32(ctx.gpr[10] + static_cast(0), ctx.gpr[12]); aot_mem.aot_direct_store32(ctx.gpr[11] + static_cast(0), ctx.gpr[10]); ctx.gpr[10] = (ctx.gpr[2] | 0u); if (ctx.gpr[10] != 0u) { ctx.gpr[11] = (aot_mem.aot_direct_load32(ctx.gpr[10] + static_cast(8))); goto L_089D1BE4; } goto L_089D1C0C; L_089D1C0C: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(8))); ctx.gpr[11] = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(0))); goto L_089D1C14; L_089D1C14: aot_gpr_6 = (aot_gpr_6 + static_cast(1)); ctx.gpr[10] = (static_cast(aot_gpr_6) < static_cast(ctx.gpr[2]) ? 1u : 0u); { const bool branch_taken = ctx.gpr[10] != 0u; ctx.gpr[3] = (ctx.gpr[3] + static_cast(4)); if (branch_taken) { goto L_089D1BD0; } goto L_089D1C24; } L_089D1C24: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[8]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_7); aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_6 = (ctx.gpr[2] << 2u); aot_gpr_5 = (ctx.gpr[11] | 0u); aot_gpr_31 = (0x089D1C44u); aot_gpr_7 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 307u, 0x089D1C44u, 0x08A9D3CCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); #else recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1C44u) goto L_089D1C44; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D1C44: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_6); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); 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_089D1C64: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); { const std::uint32_t aot_run_words[3]{ctx.gpr[17], ctx.gpr[18], ctx.gpr[19]}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } ctx.gpr[17] = (aot_gpr_7 | 0u); ctx.gpr[18] = (aot_gpr_6 | 0u); ctx.gpr[19] = (aot_gpr_5 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); aot_gpr_7 = (ctx.gpr[18] + static_cast(17)); aot_gpr_5 = (0u | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[16]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[20]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x089D1CA0u); aot_gpr_6 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 309u, 0x089D1CA0u, 0x08A9D3CCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); #else recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1CA0u) goto L_089D1CA0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D1CA0: ctx.gpr[16] = (ctx.gpr[2] | 0u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(12), ctx.gpr[18]); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(8), ctx.gpr[17]); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(5), static_cast(0u)); aot_gpr_4 = (0u | 4u); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(4), static_cast(aot_gpr_4)); ctx.gpr[20] = (ctx.gpr[16] + static_cast(16)); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(6), static_cast(0u)); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089D1CD0u); aot_gpr_6 = (ctx.gpr[18] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0088. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 310u, 0x089D1CD0u, 0x089645DCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); #else recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1CD0u) goto L_089D1CD0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D1CD0: aot_gpr_4 = (ctx.gpr[20] + ctx.gpr[18]); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(0u)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(8))); aot_gpr_5 = (aot_gpr_5 + static_cast(-1)); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(0))); aot_gpr_5 = (ctx.gpr[17] & aot_gpr_5); aot_gpr_5 = (aot_gpr_5 << 2u); aot_gpr_7 = (aot_gpr_7 + aot_gpr_5); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(0))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(0), aot_gpr_7); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(0))); aot_gpr_5 = (aot_gpr_7 + aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[16]); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(4))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(8))); aot_gpr_7 = (aot_gpr_7 + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(4), aot_gpr_7); aot_gpr_6 = (static_cast(aot_gpr_5) < static_cast(aot_gpr_7) ? 1u : 0u); { const bool branch_taken = aot_gpr_6 == 0u; aot_gpr_6 = (16384u << 16u); if (branch_taken) { goto L_089D1D40; } goto L_089D1D28; } L_089D1D28: aot_gpr_6 = (aot_gpr_6 + static_cast(-2)); aot_gpr_6 = (static_cast(aot_gpr_6) < static_cast(aot_gpr_5) ? 1u : 0u); { const bool branch_taken = aot_gpr_6 != 0u; if (branch_taken) { goto L_089D1D40; } goto L_089D1D38; } L_089D1D38: aot_gpr_31 = (0x089D1D40u); aot_gpr_5 = (aot_gpr_5 + aot_gpr_5); goto L_089D1B60; L_089D1D40: ctx.gpr[2] = (ctx.gpr[16] | 0u); { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(4), aot_run_words); ctx.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_089D1D64: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[16]); ctx.gpr[16] = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[17]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[19]); ctx.gpr[19] = (aot_gpr_6 | 0u); ctx.gpr[17] = (aot_gpr_5 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(16))); aot_gpr_5 = (ctx.gpr[19] >> 5u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), ctx.gpr[20]); aot_gpr_5 = (aot_gpr_5 + static_cast(1)); ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_7 = (aot_gpr_6 < aot_gpr_5 ? 1u : 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[18]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); { const bool branch_taken = aot_gpr_7 != 0u; ctx.gpr[18] = (ctx.gpr[19] | 0u); if (branch_taken) { goto L_089D1DE0; } goto L_089D1DAC; } L_089D1DAC: aot_gpr_7 = (aot_gpr_6 + static_cast(-1)); aot_gpr_7 = (ctx.gpr[17] + aot_gpr_7); goto L_089D1DB4; L_089D1DB4: ctx.gpr[8] = (ctx.gpr[19] << 5u); ctx.gpr[9] = (ctx.gpr[19] >> 2u); ctx.gpr[10] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_7 + static_cast(0)))))); ctx.gpr[8] = (ctx.gpr[8] + ctx.gpr[9]); ctx.gpr[9] = (ctx.gpr[10] & 255u); ctx.gpr[8] = (ctx.gpr[8] + ctx.gpr[9]); ctx.gpr[19] = (ctx.gpr[19] ^ ctx.gpr[8]); aot_gpr_6 = (aot_gpr_6 - aot_gpr_5); ctx.gpr[8] = (aot_gpr_6 < aot_gpr_5 ? 1u : 0u); { const bool branch_taken = ctx.gpr[8] == 0u; aot_gpr_7 = (aot_gpr_7 - aot_gpr_5); if (branch_taken) { goto L_089D1DB4; } goto L_089D1DE0; } L_089D1DE0: aot_gpr_4 = (aot_gpr_4 + static_cast(-1)); aot_gpr_4 = (ctx.gpr[19] & aot_gpr_4); aot_gpr_4 = (aot_gpr_4 << 2u); aot_gpr_4 = (ctx.gpr[20] + aot_gpr_4); ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); { const bool branch_taken = ctx.gpr[20] == 0u; if (branch_taken) { goto L_089D1E34; } goto L_089D1DFC; } L_089D1DFC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); { const bool branch_taken = aot_gpr_5 != ctx.gpr[18]; aot_gpr_5 = (aot_gpr_4 + static_cast(16)); if (branch_taken) { goto L_089D1E28; } goto L_089D1E0C; } L_089D1E0C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089D1E18u); aot_gpr_6 = (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_08B58100, 213u, 23u, 0x08B58100u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], ctx.gpr[9], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0213_entry, 213u, 23u, 0x08B58100u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1E18u) goto L_089D1E18; AOT_REGCACHE_SYNC_OUT(); return; L_089D1E18: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { goto L_089D1E28; } goto L_089D1E20; } L_089D1E20: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[20] | 0u); if (branch_taken) { goto L_089D1E48; } goto L_089D1E28; } L_089D1E28: ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); { const bool branch_taken = ctx.gpr[20] != 0u; if (branch_taken) { goto L_089D1DFC; } goto L_089D1E34; } L_089D1E34: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089D1E48u); aot_gpr_7 = (ctx.gpr[19] | 0u); goto L_089D1C64; L_089D1E48: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); ctx.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_089D1E68: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[16]); ctx.gpr[16] = (aot_gpr_5 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[17]); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_gpr_7 = (ctx.gpr[16] + static_cast(16)); aot_gpr_5 = (0u | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089D1E90u); aot_gpr_6 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 326u, 0x089D1E90u, 0x08A9D3CCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); #else recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1E90u) goto L_089D1E90; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D1E90: aot_gpr_4 = (0u | 2u); aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(5), static_cast(aot_gpr_4)); aot_gpr_4 = (0u | 7u); aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(4), static_cast(aot_gpr_4)); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(12), ctx.gpr[16]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(16))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(56))); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(8), aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(16))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(0), aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(16), ctx.gpr[2]); { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); ctx.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_089D1ED8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<0u>(aot_gpr_4); { const float vfpu_constant = std::bit_cast(0x3FC90FDBu); const float vfpu_value[4]{vfpu_constant, vfpu_constant, vfpu_constant, vfpu_constant}; ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_value); } ctx.execute_vfpu_unary_ct<0u, 0u, 1u, 5u>(); ctx.execute_vfpu_unary_ct<64u, 0u, 1u, 23u>(); ctx.execute_vfpu_vec3_ct<0u, 64u, 32u, 1u, 2u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<0u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); 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_089D1F04: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[17]); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[16]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[16] = (aot_gpr_5 | 0u); if (branch_taken) { goto L_089D1F58; } goto L_089D1F20; } L_089D1F20: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); { const bool branch_taken = ctx.gpr[17] == 0u; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(0), static_cast(0u)); if (branch_taken) { goto L_089D1F44; } goto L_089D1F2C; } L_089D1F2C: if (aot_gpr_4 == 0u) { aot_gpr_4 = (ctx.gpr[16] & 1u); goto L_089D1F48; } goto L_089D1F34; L_089D1F34: if (aot_gpr_4 == 0u) { aot_gpr_4 = (ctx.gpr[16] & 1u); goto L_089D1F48; } goto L_089D1F3C; L_089D1F3C: aot_gpr_31 = (0x089D1F44u); 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, aot_gpr_7, ctx.gpr[8], ctx.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 == 0x089D1F44u) goto L_089D1F44; AOT_REGCACHE_SYNC_OUT(); return; L_089D1F44: aot_gpr_4 = (ctx.gpr[16] & 1u); goto L_089D1F48; L_089D1F48: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D1F58; } goto L_089D1F50; } L_089D1F50: aot_gpr_31 = (0x089D1F58u); 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, aot_gpr_7, ctx.gpr[8], ctx.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 == 0x089D1F58u) goto L_089D1F58; AOT_REGCACHE_SYNC_OUT(); return; L_089D1F58: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(4), aot_run_words); ctx.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_089D1F6C: aot_gpr_29 = (aot_gpr_29 + static_cast(-48)); aot_gpr_7 = (aot_gpr_5 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(104))); aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_6 = (aot_gpr_4 + static_cast(4)); 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_089D1FC0; } goto L_089D1F8C; } L_089D1F8C: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(16), static_cast(0u)); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(16))); goto L_089D1F94; L_089D1F94: ctx.gpr[8] = (ctx.gpr[8] < aot_gpr_7 ? 1u : 0u); ctx.gpr[8] = (ctx.gpr[8] & 255u); if (ctx.gpr[8] != 0u) { aot_gpr_6 = (aot_gpr_6 + static_cast(12)); goto L_089D1FB4; } goto L_089D1FA4; L_089D1FA4: aot_gpr_4 = (aot_gpr_6 | 0u); aot_gpr_6 = (aot_gpr_4 + static_cast(8)); { const bool branch_taken = 0u == 0u; aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(0))); if (branch_taken) { goto L_089D1FB8; } goto L_089D1FB4; } L_089D1FB4: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(0))); goto L_089D1FB8; L_089D1FB8: if (aot_gpr_6 != 0u) { ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(16))); goto L_089D1F94; } goto L_089D1FC0; L_089D1FC0: if (aot_gpr_4 == aot_gpr_5) { aot_gpr_4 = (aot_gpr_5 | 0u); goto L_089D1FE4; } goto L_089D1FC8; L_089D1FC8: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(17), static_cast(0u)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_gpr_6 = (aot_gpr_7 < aot_gpr_6 ? 1u : 0u); aot_gpr_6 = (aot_gpr_6 & 255u); if (aot_gpr_6 == 0u) { aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_4); goto L_089D1FE8; } goto L_089D1FE0; L_089D1FE0: aot_gpr_4 = (aot_gpr_5 | 0u); goto L_089D1FE4; L_089D1FE4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_4); goto L_089D1FE8; L_089D1FE8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_4 = (aot_gpr_5 ^ aot_gpr_4); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D2020; } goto L_089D2018; } L_089D2018: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_089D2024; } goto L_089D2020; } L_089D2020: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(20))); goto L_089D2024; L_089D2024: 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_089D202C: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[16]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089D2040u); ctx.gpr[16] = (aot_gpr_4 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0162. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 352u, 0x089D2040u, 0x08A8D728u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 273u, aot_mem); #else recomp_unit_0162_entry(rt, ctx, 273u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 273u, 0x08A8D728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2040u) goto L_089D2040; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2040: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-26772)); aot_gpr_5 = (0u | 65535u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(4), aot_gpr_4); aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store16(ctx.gpr[16] + static_cast(176), static_cast(aot_gpr_5)); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(184), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(188), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(214), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(336), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(337), static_cast(0u)); aot_mem.aot_direct_store16(ctx.gpr[16] + static_cast(338), static_cast(0u)); aot_gpr_4 = (0u + static_cast(-1)); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(340), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(341), static_cast(aot_gpr_4)); aot_mem.aot_direct_store16(ctx.gpr[16] + static_cast(342), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(344), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(345), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(346), static_cast(0u)); ctx.gpr[2] = (ctx.gpr[16] | 0u); ctx.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_089D20A0: aot_gpr_29 = (aot_gpr_29 + static_cast(-48)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), ctx.gpr[16]); ctx.gpr[16] = (aot_gpr_5 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), ctx.gpr[17]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), aot_gpr_31); aot_gpr_31 = (0x089D20BCu); ctx.gpr[17] = (aot_gpr_4 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0162. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 354u, 0x089D20BCu, 0x08A8D7B0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 275u, aot_mem); #else recomp_unit_0162_entry(rt, ctx, 275u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 275u, 0x08A8D7B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D20BCu) goto L_089D20BC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D20BC: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-26772)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), aot_gpr_4); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1252))); 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_mem.aot_direct_store16(ctx.gpr[17] + static_cast(178), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2228))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(180), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2196))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(181), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1360))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(182), static_cast(aot_gpr_4)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(1929)))))); aot_gpr_5 = (aot_gpr_4 << 5u); aot_gpr_4 = (aot_gpr_4 << 2u); aot_gpr_4 = (aot_gpr_5 - aot_gpr_4); aot_gpr_4 = (ctx.gpr[16] + aot_gpr_4); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(183), static_cast(aot_gpr_4)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2256))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(184), std::bit_cast(aot_fpr_12)); aot_gpr_5 = (ctx.gpr[16] + static_cast(816)); aot_gpr_4 = (ctx.gpr[17] + static_cast(192)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2260))); aot_gpr_31 = (0x089D212Cu); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(188), std::bit_cast(aot_fpr_12)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 355u, 0x089D212Cu, 0x08A9D4C4u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 166u, aot_mem); #else recomp_unit_0166_entry(rt, ctx, 166u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 166u, 0x08A9D4C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D212Cu) goto L_089D212C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D212C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(456))); aot_gpr_5 = (64u << 16u); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_gpr_4 = (aot_gpr_4 >> 22u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(336), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(456))); aot_gpr_5 = (8192u << 16u); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); aot_gpr_4 = (aot_gpr_4 >> 29u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(337), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(1916))); aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(338), static_cast(aot_gpr_4)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(304)))))); aot_gpr_4 = (aot_gpr_4 & 1u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(340), static_cast(aot_gpr_4)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(1928)))))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(341), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(311))); aot_gpr_4 = (aot_gpr_4 & 255u); aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(342), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2244))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(344), static_cast(aot_gpr_4)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(1929)))))); aot_gpr_5 = (aot_gpr_4 << 5u); aot_gpr_4 = (aot_gpr_4 << 2u); aot_gpr_4 = (aot_gpr_5 - aot_gpr_4); aot_gpr_4 = (ctx.gpr[16] + aot_gpr_4); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(345), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(340))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(346), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(76))); aot_gpr_5 = (8u << 16u); aot_gpr_4 = (aot_gpr_4 & aot_gpr_5); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D21CC; } goto L_089D21C0; } L_089D21C0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(346))); aot_gpr_4 = (aot_gpr_4 | 32u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(346), static_cast(aot_gpr_4)); goto L_089D21CC; L_089D21CC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(80))); aot_gpr_31 = (0x089D21D8u); aot_gpr_4 = (ctx.gpr[17] | 0u); goto L_089D2304; L_089D21D8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(214))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089D21F0; } goto L_089D21E4; } L_089D21E4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(80))); aot_gpr_31 = (0x089D21F0u); aot_gpr_4 = (ctx.gpr[17] | 0u); goto L_089D2304; L_089D21F0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(1931))); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; if (branch_taken) { goto L_089D2208; } goto L_089D21FC; } L_089D21FC: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); aot_gpr_31 = (0x089D2208u); aot_gpr_5 = (ctx.gpr[16] + static_cast(1168)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0023. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 362u, 0x089D2208u, 0x08860358u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); #else recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2208u) goto L_089D2208; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2208: aot_gpr_31 = (0x089D2210u); aot_gpr_4 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0067. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 363u, 0x089D2210u, 0x08910B38u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); #else recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2210u) goto L_089D2210; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2210: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (2237u << 16u); if (branch_taken) { goto L_089D22E4; } goto L_089D2218; } L_089D2218: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(104))); aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_7 = (aot_gpr_5 + static_cast(4)); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(0))); { const bool branch_taken = aot_gpr_7 == 0u; ctx.gpr[8] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1152))); if (branch_taken) { goto L_089D2268; } goto L_089D2234; } L_089D2234: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(12), static_cast(0u)); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(16))); goto L_089D223C; L_089D223C: ctx.gpr[9] = (ctx.gpr[9] < ctx.gpr[8] ? 1u : 0u); ctx.gpr[9] = (ctx.gpr[9] & 255u); if (ctx.gpr[9] != 0u) { aot_gpr_7 = (aot_gpr_7 + static_cast(12)); goto L_089D225C; } goto L_089D224C; L_089D224C: aot_gpr_5 = (aot_gpr_7 | 0u); aot_gpr_7 = (aot_gpr_5 + static_cast(8)); { const bool branch_taken = 0u == 0u; aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(0))); if (branch_taken) { goto L_089D2260; } goto L_089D225C; } L_089D225C: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(0))); goto L_089D2260; L_089D2260: if (aot_gpr_7 != 0u) { ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(16))); goto L_089D223C; } goto L_089D2268; L_089D2268: if (aot_gpr_5 == aot_gpr_6) { aot_gpr_5 = (aot_gpr_6 | 0u); goto L_089D228C; } goto L_089D2270; L_089D2270: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(13), static_cast(0u)); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(16))); aot_gpr_7 = (ctx.gpr[8] < aot_gpr_7 ? 1u : 0u); aot_gpr_7 = (aot_gpr_7 & 255u); if (aot_gpr_7 == 0u) { aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_5); goto L_089D2290; } goto L_089D2288; L_089D2288: aot_gpr_5 = (aot_gpr_6 | 0u); goto L_089D228C; L_089D228C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_5); goto L_089D2290; L_089D2290: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_6); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_6); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (aot_gpr_6 ^ aot_gpr_5); aot_gpr_5 = (aot_gpr_5 < static_cast(1) ? 1u : 0u); aot_gpr_5 = (aot_gpr_5 & 255u); if (aot_gpr_5 == 0u) { aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(20))); goto L_089D22C8; } goto L_089D22C0; L_089D22C0: { const bool branch_taken = 0u == 0u; aot_gpr_6 = (0u | 0u); if (branch_taken) { goto L_089D22C8; } goto L_089D22C8; } L_089D22C8: { const bool branch_taken = aot_gpr_6 == 0u; if (branch_taken) { goto L_089D22E4; } goto L_089D22D0; } L_089D22D0: aot_gpr_31 = (0x089D22D8u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1152))); goto L_089D1F6C; L_089D22D8: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(8))); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(176), static_cast(aot_gpr_4)); if (branch_taken) { goto L_089D22EC; } goto L_089D22E4; } L_089D22E4: aot_gpr_4 = (0u | 65535u); aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(176), static_cast(aot_gpr_4)); goto L_089D22EC; L_089D22EC: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(36), aot_run_words); ctx.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(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_089D2304: 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_mem.aot_direct_load32(aot_gpr_5 + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[16]); aot_gpr_6 = (0u | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_5 = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); goto L_089D2324; L_089D2324: { const bool branch_taken = ctx.gpr[16] == 0u; aot_gpr_7 = (aot_gpr_6 < static_cast(5) ? 1u : 0u); if (branch_taken) { goto L_089D2398; } goto L_089D232C; } L_089D232C: { const bool branch_taken = aot_gpr_7 == 0u; if (branch_taken) { goto L_089D2398; } goto L_089D2334; } L_089D2334: aot_gpr_7 = (ctx.gpr[16] | 0u); ctx.gpr[8] = (aot_mem.aot_direct_load8(aot_gpr_7 + static_cast(64))); if (ctx.gpr[8] == 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(16))); goto L_089D2350; } goto L_089D2344; L_089D2344: aot_mem.aot_direct_store8(aot_gpr_7 + static_cast(64), static_cast(0u)); { const bool branch_taken = 0u == 0u; ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); if (branch_taken) { goto L_089D2390; } goto L_089D2350; } L_089D2350: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(216), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(36))); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(220), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(40))); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(224), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(44))); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(228), std::bit_cast(aot_fpr_12)); ctx.gpr[8] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_7 + static_cast(50)))))); aot_mem.aot_direct_store16(aot_gpr_5 + static_cast(232), static_cast(ctx.gpr[8])); ctx.gpr[8] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_7 + static_cast(48)))))); aot_gpr_6 = (aot_gpr_6 + static_cast(1)); aot_mem.aot_direct_store16(aot_gpr_5 + static_cast(234), static_cast(ctx.gpr[8])); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(8))); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(236), aot_gpr_7); ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_5 = (aot_gpr_5 + static_cast(24)); goto L_089D2390; L_089D2390: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D2324; } goto L_089D2398; } L_089D2398: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(214), static_cast(aot_gpr_6)); ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); { const bool branch_taken = ctx.gpr[16] == 0u; if (branch_taken) { goto L_089D23CC; } goto L_089D23A8; } L_089D23A8: aot_gpr_31 = (0x089D23B0u); aot_gpr_4 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0034. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 390u, 0x089D23B0u, 0x0888FEECu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 625u, aot_mem); #else recomp_unit_0034_entry(rt, ctx, 625u, 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, 625u, 0x0888FEECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D23B0u) goto L_089D23B0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D23B0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_089D23C0; } goto L_089D23B8; } L_089D23B8: { const bool branch_taken = 0u == 0u; ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); if (branch_taken) { goto L_089D23C4; } goto L_089D23C0; } L_089D23C0: ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); goto L_089D23C4; L_089D23C4: { const bool branch_taken = ctx.gpr[16] != 0u; if (branch_taken) { goto L_089D23A8; } goto L_089D23CC; } L_089D23CC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); ctx.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_089D23E0: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[16]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[17]); ctx.gpr[16] = (aot_gpr_5 | 0u); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[18]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089D2404u); ctx.gpr[18] = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0162. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 396u, 0x089D2404u, 0x08A8D860u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 279u, aot_mem); #else recomp_unit_0162_entry(rt, ctx, 279u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 279u, 0x08A8D860u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2404u) goto L_089D2404; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2404: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_089D2520; } goto L_089D240C; } L_089D240C: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(176))); aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(176))); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089D2520; } goto L_089D241C; } L_089D241C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(340))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(340))); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089D2520; } goto L_089D242C; } L_089D242C: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(178))); aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(178))); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089D2520; } goto L_089D243C; } L_089D243C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(180))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(180))); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089D2520; } goto L_089D244C; } L_089D244C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(181))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(181))); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089D2520; } goto L_089D245C; } L_089D245C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(182))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(182))); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089D2520; } goto L_089D246C; } L_089D246C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(183))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(183))); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089D2520; } goto L_089D247C; } L_089D247C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(345))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(345))); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089D2520; } goto L_089D248C; } L_089D248C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(184))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(184))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(aot_fpr_13)) && aot_fpr_12 == aot_fpr_13)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_089D2520; } goto L_089D24A4; } L_089D24A4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(188))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(188))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(aot_fpr_13)) && aot_fpr_12 == aot_fpr_13)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_089D2520; } goto L_089D24BC; } L_089D24BC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(214))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(214))); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; aot_gpr_6 = (aot_gpr_4 << 3u); if (branch_taken) { goto L_089D2520; } goto L_089D24CC; } L_089D24CC: aot_gpr_4 = (aot_gpr_6 + aot_gpr_6); aot_gpr_7 = (ctx.gpr[17] + static_cast(216)); aot_gpr_6 = (aot_gpr_6 + aot_gpr_4); aot_gpr_5 = (ctx.gpr[16] + static_cast(216)); aot_gpr_31 = (0x089D24E4u); aot_gpr_4 = (aot_gpr_7 | 0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B58100, 213u, 23u, 0x08B58100u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], ctx.gpr[9], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0213_entry, 213u, 23u, 0x08B58100u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D24E4u) goto L_089D24E4; AOT_REGCACHE_SYNC_OUT(); return; L_089D24E4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { goto L_089D2520; } goto L_089D24EC; } L_089D24EC: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(342))); aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(342))); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089D2520; } goto L_089D24FC; } L_089D24FC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(344))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(344))); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089D2520; } goto L_089D250C; } L_089D250C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(346))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(346))); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089D2520; } goto L_089D251C; } L_089D251C: ctx.gpr[18] = (0u | 1u); goto L_089D2520; L_089D2520: 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); ctx.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_089D253C: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); { const std::uint32_t aot_run_words[3]{ctx.gpr[16], ctx.gpr[17], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } ctx.gpr[16] = (aot_gpr_5 | 0u); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28628)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(0))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(0), static_cast(aot_gpr_4)); aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28612)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), aot_gpr_4); aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); aot_gpr_31 = (0x089D2580u); aot_gpr_5 = (ctx.gpr[16] + static_cast(16)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0022. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 416u, 0x089D2580u, 0x0885F828u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); #else recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2580u) goto L_089D2580; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2580: aot_gpr_4 = (ctx.gpr[16] + static_cast(96)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (ctx.gpr[17] + static_cast(96)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (ctx.gpr[16] + static_cast(112)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (ctx.gpr[17] + static_cast(112)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (ctx.gpr[16] + static_cast(128)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (ctx.gpr[17] + static_cast(128)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (ctx.gpr[16] + 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); } aot_gpr_4 = (ctx.gpr[17] + static_cast(144)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(160))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(160), static_cast(aot_gpr_4)); aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-26772)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(176))); aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(176), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(178))); aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(178), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(180))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(180), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(181))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(181), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(182))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(182), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(183))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(183), static_cast(aot_gpr_4)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(184))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(184), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(188))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(188), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (ctx.gpr[17] + static_cast(192)); aot_gpr_5 = (ctx.gpr[16] + static_cast(192)); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0)))))); aot_gpr_7 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(2)))))); ctx.gpr[8] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(4)))))); aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(0), static_cast(aot_gpr_6)); aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(2), static_cast(aot_gpr_7)); aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(4), static_cast(ctx.gpr[8])); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(6)))))); aot_gpr_7 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(8)))))); ctx.gpr[8] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(10)))))); aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(6), static_cast(aot_gpr_6)); aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(8), static_cast(aot_gpr_7)); aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(10), static_cast(ctx.gpr[8])); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(12)))))); aot_gpr_7 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(14)))))); ctx.gpr[8] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(16)))))); aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(12), static_cast(aot_gpr_6)); aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(14), static_cast(aot_gpr_7)); aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(16), static_cast(ctx.gpr[8])); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(18)))))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(20)))))); aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(18), static_cast(aot_gpr_6)); aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(20), static_cast(aot_gpr_5)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(214))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(214), static_cast(aot_gpr_4)); aot_gpr_6 = (0u | 0u); aot_gpr_5 = (ctx.gpr[17] + static_cast(216)); aot_gpr_4 = (ctx.gpr[16] + static_cast(216)); goto L_089D2688; L_089D2688: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_4 + static_cast(0), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } aot_gpr_7 = (std::bit_cast(aot_fpr_12)); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); ctx.gpr[8] = (std::bit_cast(aot_fpr_13)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_7); ctx.gpr[9] = (std::bit_cast(aot_fpr_14)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(4), ctx.gpr[8]); aot_gpr_7 = (std::bit_cast(ctx.fpr[15])); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(8), ctx.gpr[9]); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); { const std::uint32_t aot_run_words[3]{aot_gpr_7, ctx.gpr[8], ctx.gpr[9]}; aot_mem.aot_direct_store32_block(aot_gpr_5 + static_cast(12), aot_run_words); } aot_gpr_6 = (aot_gpr_6 + static_cast(1)); aot_gpr_5 = (aot_gpr_5 + static_cast(24)); aot_gpr_7 = (static_cast(aot_gpr_6) < 5 ? 1u : 0u); { const bool branch_taken = aot_gpr_7 != 0u; aot_gpr_4 = (aot_gpr_4 + static_cast(24)); if (branch_taken) { goto L_089D2688; } goto L_089D26DC; } L_089D26DC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(336))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(336), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(337))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(337), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(338))); aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(338), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(340))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(340), static_cast(aot_gpr_4)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(341)))))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(341), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(342))); aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(342), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(344))); ctx.gpr[2] = (ctx.gpr[17] | 0u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(344), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(345))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(345), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(346))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(346), static_cast(aot_gpr_4)); { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); ctx.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_089D273C: ctx.gpr[2] = (2205u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(10044)); // 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_089D2748: 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 = (0x089D2758u); goto L_089D273C; L_089D2758: 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_089D2764: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[16]); ctx.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 = (0x089D2784u); ctx.gpr[18] = (0u | 0u); goto L_089D273C; L_089D2784: if (ctx.gpr[2] == ctx.gpr[16]) { ctx.gpr[18] = (0u | 1u); goto L_089D27CC; } goto L_089D278C; L_089D278C: aot_gpr_31 = (0x089D2794u); ctx.gpr[17] = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0034. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 425u, 0x089D2794u, 0x0888E51Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); #else recomp_unit_0034_entry(rt, ctx, 400u, 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, 400u, 0x0888E51Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2794u) goto L_089D2794; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2794: if (ctx.gpr[2] == ctx.gpr[16]) { ctx.gpr[17] = (0u | 1u); goto L_089D27BC; } goto L_089D279C; L_089D279C: aot_gpr_31 = (0x089D27A4u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0165. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 427u, 0x089D27A4u, 0x08A9A6CCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); #else recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 295u, 0x08A9A6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D27A4u) goto L_089D27A4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D27A4: aot_gpr_4 = (ctx.gpr[2] ^ ctx.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_089D27C0; } goto L_089D27B8; } L_089D27B8: ctx.gpr[17] = (0u | 1u); goto L_089D27BC; L_089D27BC: aot_gpr_4 = (ctx.gpr[17] & 255u); goto L_089D27C0; L_089D27C0: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D27CC; } goto L_089D27C8; } L_089D27C8: ctx.gpr[18] = (0u | 1u); goto L_089D27CC; L_089D27CC: 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); ctx.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_089D27E8: 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), ctx.gpr[16]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[16] = (aot_gpr_5 | 0u); if (branch_taken) { goto L_089D2838; } goto L_089D2804; } L_089D2804: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-26756)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x089D2818u); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0165. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 435u, 0x089D2818u, 0x08A9B6A8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); #else recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2818u) goto L_089D2818; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2818: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089D2824u); aot_gpr_5 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0034. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 436u, 0x089D2824u, 0x0888E5E4u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 411u, aot_mem); #else recomp_unit_0034_entry(rt, ctx, 411u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 411u, 0x0888E5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2824u) goto L_089D2824; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2824: aot_gpr_4 = (ctx.gpr[16] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D2838; } goto L_089D2830; } L_089D2830: aot_gpr_31 = (0x089D2838u); 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, aot_gpr_7, ctx.gpr[8], ctx.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 == 0x089D2838u) goto L_089D2838; AOT_REGCACHE_SYNC_OUT(); return; L_089D2838: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); ctx.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_089D284C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); // 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_089D2854: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_gpr_4 = (0u | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); aot_gpr_4 = (2237u << 16u); aot_gpr_5 = (0u | 352u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[16]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089D2878u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0174. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 441u, 0x089D2878u, 0x08ABE57Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); #else recomp_unit_0174_entry(rt, ctx, 501u, 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, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2878u) goto L_089D2878; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2878: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (branch_taken) { goto L_089D2890; } goto L_089D2884; } L_089D2884: aot_gpr_31 = (0x089D288Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); goto L_089D202C; L_089D288C: ctx.gpr[2] = (ctx.gpr[16] | 0u); goto L_089D2890; L_089D2890: ctx.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_089D28A0: 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_5 == 0u; aot_gpr_4 = (aot_gpr_5 | 0u); if (branch_taken) { goto L_089D28CC; } goto L_089D28B0; } L_089D28B0: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_5 = (0u | 3u); aot_gpr_6 = (aot_gpr_6 + static_cast(8)); aot_gpr_7 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(0)))))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(4))); jump_target = aot_gpr_6; aot_gpr_31 = (0x089D28CCu); aot_gpr_4 = (aot_gpr_4 + aot_gpr_7); 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 == 0x089D28CCu) goto L_089D28CC; AOT_REGCACHE_SYNC_OUT(); return; L_089D28CC: 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_089D28D8: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_5); aot_gpr_4 = (0u | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); aot_gpr_4 = (2237u << 16u); aot_gpr_5 = (0u | 352u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[16]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089D2900u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0174. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 449u, 0x089D2900u, 0x08ABE57Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); #else recomp_unit_0174_entry(rt, ctx, 501u, 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, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2900u) goto L_089D2900; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2900: ctx.gpr[16] = (ctx.gpr[2] | 0u); ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = ctx.gpr[16] == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); if (branch_taken) { goto L_089D2920; } goto L_089D2910; } L_089D2910: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089D291Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); goto L_089D253C; L_089D291C: ctx.gpr[2] = (ctx.gpr[16] | 0u); goto L_089D2920; L_089D2920: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); 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_089D2930: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_gpr_4 = (aot_gpr_5 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089D2944u); aot_gpr_5 = (aot_gpr_6 | 0u); goto L_089D23E0; L_089D2944: 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_089D2950: aot_gpr_29 = (aot_gpr_29 + static_cast(-64)); { const std::uint32_t aot_run_words[6]{ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(28), aot_run_words); } aot_gpr_31 = (0x089D2974u); ctx.gpr[16] = (aot_gpr_4 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0034. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 456u, 0x089D2974u, 0x0888E5A0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 409u, aot_mem); #else recomp_unit_0034_entry(rt, ctx, 409u, 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, 409u, 0x0888E5A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2974u) goto L_089D2974; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2974: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(25592)); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(108), aot_gpr_4); aot_mem.aot_direct_store16(ctx.gpr[16] + static_cast(124), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(218), static_cast(0u)); aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(219), static_cast(0u)); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(220), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(224), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-11672))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); ctx.gpr[17] = (0u | 0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-11672), aot_gpr_4); aot_gpr_31 = (0x089D29B0u); aot_gpr_4 = (0u | 448u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0174. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 457u, 0x089D29B0u, 0x08ABE278u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); #else recomp_unit_0174_entry(rt, ctx, 466u, 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, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D29B0u) goto L_089D29B0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D29B0: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; aot_gpr_4 = (17036u << 16u); if (branch_taken) { goto L_089D29D0; } goto L_089D29BC; } L_089D29BC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089D29C8u); aot_gpr_5 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0116. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 459u, 0x089D29C8u, 0x089D4258u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0116_entry(rt, ctx, 41u, aot_mem); #else recomp_unit_0116_entry(rt, ctx, 41u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0116_entry, 116u, 41u, 0x089D4258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D29C8u) goto L_089D29C8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D29C8: ctx.gpr[17] = (ctx.gpr[18] | 0u); aot_gpr_4 = (17036u << 16u); goto L_089D29D0; L_089D29D0: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(112), ctx.gpr[17]); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (17096u << 16u); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(208), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_5 = (16076u << 16u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(112))); aot_gpr_5 = (aot_gpr_5 | 52429u); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(212), std::bit_cast(aot_fpr_12)); aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(112))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(208))); aot_fpr_12 = aot_fpr_13 / aot_fpr_12; ctx.gpr[17] = (ctx.gpr[16] | 0u); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(220), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9628))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9632))); { const bool branch_taken = aot_gpr_4 == aot_gpr_5; aot_gpr_5 = (aot_gpr_4 | 0u); if (branch_taken) { goto L_089D2A38; } goto L_089D2A1C; } L_089D2A1C: { const bool branch_taken = aot_gpr_5 == 0u; aot_gpr_4 = (aot_gpr_4 + static_cast(4)); if (branch_taken) { goto L_089D2A30; } goto L_089D2A24; } L_089D2A24: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[17]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9628))); aot_gpr_4 = (aot_gpr_4 + static_cast(4)); goto L_089D2A30; L_089D2A30: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9628), aot_gpr_4); if (branch_taken) { goto L_089D2B44; } goto L_089D2A38; } L_089D2A38: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9624))); aot_gpr_6 = (0u | 1u); aot_gpr_5 = (aot_gpr_4 - aot_gpr_5); aot_gpr_7 = (static_cast(static_cast(aot_gpr_5) >> 2u)); aot_gpr_7 = (aot_gpr_7 >> 30u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(4), static_cast(0u)); aot_gpr_5 = (aot_gpr_5 + aot_gpr_7); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_6); 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(12), aot_gpr_5); if (branch_taken) { goto L_089D2A78; } goto L_089D2A68; } L_089D2A68: aot_gpr_6 = (aot_gpr_29 + static_cast(8)); ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(0))); { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (aot_gpr_5 + ctx.gpr[18]); if (branch_taken) { goto L_089D2A84; } goto L_089D2A78; } L_089D2A78: aot_gpr_6 = (aot_gpr_29 + static_cast(12)); ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(0))); ctx.gpr[18] = (aot_gpr_5 + ctx.gpr[18]); goto L_089D2A84; L_089D2A84: { const bool branch_taken = ctx.gpr[18] == 0u; aot_gpr_5 = (0u | 0u); if (branch_taken) { goto L_089D2AC4; } goto L_089D2A8C; } L_089D2A8C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_4 = (ctx.gpr[18] << 2u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_5); aot_gpr_31 = (0x089D2AA0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0174. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 469u, 0x089D2AA0u, 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 == 0x089D2AA0u) goto L_089D2AA0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2AA0: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); 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(24))); if (branch_taken) { goto L_089D2AC4; } goto L_089D2AB0; } L_089D2AB0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_4); aot_gpr_31 = (0x089D2ABCu); 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 == 0x089D2ABCu) goto L_089D2ABC; AOT_REGCACHE_SYNC_OUT(); return; L_089D2ABC: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); goto L_089D2AC4; L_089D2AC4: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9624))); { const bool branch_taken = aot_gpr_4 != aot_gpr_6; ctx.gpr[19] = (aot_gpr_5 | 0u); if (branch_taken) { goto L_089D2AD8; } goto L_089D2AD0; } L_089D2AD0: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); if (branch_taken) { goto L_089D2AF4; } goto L_089D2AD8; } L_089D2AD8: aot_gpr_5 = (aot_gpr_6 | 0u); ctx.gpr[20] = (aot_gpr_4 - aot_gpr_6); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089D2AECu); aot_gpr_6 = (ctx.gpr[20] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0188. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 475u, 0x089D2AECu, 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 == 0x089D2AECu) goto L_089D2AEC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2AEC: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[20]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); goto L_089D2AF4; L_089D2AF4: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_5 = (aot_gpr_6 | 0u); if (aot_gpr_5 == 0u) { ctx.gpr[17] = (aot_gpr_4 | 0u); goto L_089D2B1C; } goto L_089D2B08; L_089D2B08: 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_089D2B08; } goto L_089D2B18; } L_089D2B18: ctx.gpr[17] = (aot_gpr_4 | 0u); goto L_089D2B1C; L_089D2B1C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9624))); { const bool branch_taken = aot_gpr_4 == 0u; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(16), static_cast(0u)); if (branch_taken) { goto L_089D2B30; } goto L_089D2B28; } L_089D2B28: aot_gpr_31 = (0x089D2B30u); 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, aot_gpr_7, ctx.gpr[8], ctx.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 == 0x089D2B30u) goto L_089D2B30; AOT_REGCACHE_SYNC_OUT(); return; L_089D2B30: aot_gpr_4 = (ctx.gpr[18] << 2u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9624), ctx.gpr[19]); aot_gpr_4 = (ctx.gpr[19] + aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9628), ctx.gpr[17]); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9632), aot_gpr_4); goto L_089D2B44; L_089D2B44: ctx.gpr[2] = (ctx.gpr[16] | 0u); { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(28), aot_run_words); ctx.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(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_089D2B68: aot_gpr_29 = (aot_gpr_29 + static_cast(-48)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), ctx.gpr[17]); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), ctx.gpr[16]); { const std::uint32_t aot_run_words[3]{ctx.gpr[18], ctx.gpr[19], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x089D2B8Cu); ctx.gpr[16] = (aot_gpr_5 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0034. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 484u, 0x089D2B8Cu, 0x0888E5A0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 409u, aot_mem); #else recomp_unit_0034_entry(rt, ctx, 409u, 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, 409u, 0x0888E5A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2B8Cu) goto L_089D2B8C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2B8C: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(25592)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(124), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(218), static_cast(0u)); aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(219), static_cast(0u)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(220), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(224), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-11672))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-11672), aot_gpr_4); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_4 = (2237u << 16u); aot_gpr_6 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089D2BD0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0182. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 485u, 0x089D2BD0u, 0x08ADEF00u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); #else recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2BD0u) goto L_089D2BD0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2BD0: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(104), ctx.gpr[16]); ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089D2BE0u); aot_gpr_4 = (0u | 448u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0174. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 486u, 0x089D2BE0u, 0x08ABE278u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); #else recomp_unit_0174_entry(rt, ctx, 466u, 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, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2BE0u) goto L_089D2BE0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2BE0: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; aot_gpr_4 = (17036u << 16u); if (branch_taken) { goto L_089D2C00; } goto L_089D2BEC; } L_089D2BEC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089D2BF8u); aot_gpr_5 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0116. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 488u, 0x089D2BF8u, 0x089D4258u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0116_entry(rt, ctx, 41u, aot_mem); #else recomp_unit_0116_entry(rt, ctx, 41u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0116_entry, 116u, 41u, 0x089D4258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2BF8u) goto L_089D2BF8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2BF8: ctx.gpr[18] = (ctx.gpr[19] | 0u); aot_gpr_4 = (17036u << 16u); goto L_089D2C00; L_089D2C00: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(112), ctx.gpr[18]); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (17096u << 16u); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(208), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_5 = (16076u << 16u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(112))); aot_gpr_5 = (aot_gpr_5 | 52429u); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(212), std::bit_cast(aot_fpr_12)); aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(112))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(208))); aot_fpr_12 = aot_fpr_13 / aot_fpr_12; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(220), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(112))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(86)))))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(92))); aot_gpr_6 = (aot_gpr_6 + static_cast(48)); aot_gpr_7 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(0)))))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(4))); jump_target = aot_gpr_6; aot_gpr_31 = (0x089D2C58u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_7); 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 == 0x089D2C58u) goto L_089D2C58; AOT_REGCACHE_SYNC_OUT(); return; L_089D2C58: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(108))); aot_gpr_4 = (aot_gpr_4 + static_cast(152)); 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 = (0x089D2C70u); aot_gpr_4 = (ctx.gpr[17] + 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 == 0x089D2C70u) goto L_089D2C70; AOT_REGCACHE_SYNC_OUT(); return; L_089D2C70: aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(1916))); aot_gpr_31 = (0x089D2C7Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); goto L_089D3450; L_089D2C7C: aot_gpr_4 = (0u | 0u); ctx.gpr[19] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(10)))))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); aot_gpr_4 = (2237u << 16u); aot_gpr_5 = (0u | 352u); aot_gpr_31 = (0x089D2C98u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0174. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 493u, 0x089D2C98u, 0x08ABE57Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); #else recomp_unit_0174_entry(rt, ctx, 501u, 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, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2C98u) goto L_089D2C98; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2C98: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); if (branch_taken) { goto L_089D2CB4; } goto L_089D2CA4; } L_089D2CA4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089D2CB0u); aot_gpr_5 = (ctx.gpr[16] | 0u); goto L_089D20A0; L_089D2CB0: aot_gpr_4 = (ctx.gpr[18] | 0u); goto L_089D2CB4; L_089D2CB4: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089D2CC4u); aot_gpr_5 = (ctx.gpr[19] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0165. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 497u, 0x089D2CC4u, 0x08A9B9F4u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); #else recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2CC4u) goto L_089D2CC4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2CC4: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(24), aot_run_words); ctx.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(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_089D2CE4: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[16]); ctx.gpr[16] = (aot_gpr_4 | 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(12), aot_run_words); } { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[17] = (aot_gpr_5 | 0u); if (branch_taken) { goto L_089D2F60; } goto L_089D2D04; } L_089D2D04: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(25592)); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(108), aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-11672))); aot_gpr_5 = (2237u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1)); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-11672), aot_gpr_4); aot_gpr_4 = (aot_gpr_5 + static_cast(-28736)); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(3)))))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(100))); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(52))); aot_gpr_4 = (aot_gpr_5 ^ aot_gpr_4); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089D2DE8; } goto L_089D2D44; } L_089D2D44: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9628))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9624))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[16]); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089D2D5Cu); aot_gpr_6 = (aot_gpr_29 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0218. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 501u, 0x089D2D5Cu, 0x08B6D560u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 256u, aot_mem); #else recomp_unit_0218_entry(rt, ctx, 256u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 256u, 0x08B6D560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2D5Cu) goto L_089D2D5C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2D5C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != ctx.gpr[18]; if (branch_taken) { goto L_089D2D70; } goto L_089D2D68; } L_089D2D68: { const bool branch_taken = 0u == 0u; aot_gpr_5 = (aot_gpr_4 | 0u); if (branch_taken) { goto L_089D2DA8; } goto L_089D2D70; } L_089D2D70: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_4 = (aot_gpr_5 + static_cast(4)); { const bool branch_taken = aot_gpr_4 == ctx.gpr[18]; if (branch_taken) { goto L_089D2DA8; } goto L_089D2D80; } L_089D2D80: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); goto L_089D2D84; L_089D2D84: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_6 == aot_gpr_7) { aot_gpr_4 = (aot_gpr_4 + static_cast(4)); goto L_089D2DA0; } goto L_089D2D90; L_089D2D90: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_6); aot_gpr_5 = (aot_gpr_5 + static_cast(4)); aot_gpr_4 = (aot_gpr_4 + static_cast(4)); goto L_089D2DA0; L_089D2DA0: if (aot_gpr_4 != ctx.gpr[18]) { aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); goto L_089D2D84; } goto L_089D2DA8; L_089D2DA8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9628))); aot_gpr_6 = (aot_gpr_5 + static_cast(4)); { const bool branch_taken = aot_gpr_6 == aot_gpr_4; if (branch_taken) { goto L_089D2DDC; } goto L_089D2DB8; } L_089D2DB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9628))); aot_gpr_6 = (aot_gpr_5 + static_cast(4)); { const bool branch_taken = aot_gpr_4 == aot_gpr_6; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(4), static_cast(0u)); if (branch_taken) { goto L_089D2DDC; } goto L_089D2DC8; } L_089D2DC8: aot_gpr_7 = (aot_gpr_5 + static_cast(4)); aot_gpr_6 = (aot_gpr_4 - aot_gpr_7); aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x089D2DDCu); aot_gpr_5 = (aot_gpr_7 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0188. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 511u, 0x089D2DDCu, 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 == 0x089D2DDCu) goto L_089D2DDC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2DDC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9628))); aot_gpr_4 = (aot_gpr_4 + static_cast(-4)); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9628), aot_gpr_4); goto L_089D2DE8; L_089D2DE8: aot_gpr_31 = (0x089D2DF0u); ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(112))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0132. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 513u, 0x089D2DF0u, 0x08A17AF8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 623u, aot_mem); #else recomp_unit_0132_entry(rt, ctx, 623u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 623u, 0x08A17AF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2DF0u) goto L_089D2DF0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2DF0: { const bool branch_taken = ctx.gpr[18] != ctx.gpr[2]; if (branch_taken) { goto L_089D2E00; } goto L_089D2DF8; } L_089D2DF8: aot_gpr_31 = (0x089D2E00u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0132. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 515u, 0x089D2E00u, 0x08A17A04u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 606u, aot_mem); #else recomp_unit_0132_entry(rt, ctx, 606u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 606u, 0x08A17A04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2E00u) goto L_089D2E00; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2E00: aot_gpr_31 = (0x089D2E08u); aot_gpr_4 = (ctx.gpr[18] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0031. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 516u, 0x089D2E08u, 0x0888089Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 79u, aot_mem); #else recomp_unit_0031_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_0031_entry, 31u, 79u, 0x0888089Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2E08u) goto L_089D2E08; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2E08: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_4 = (0u | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_gpr_5 = (static_cast(aot_gpr_4) < static_cast(aot_gpr_5) ? 1u : 0u); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_089D2F24; } goto L_089D2E20; } L_089D2E20: { const bool branch_taken = static_cast(aot_gpr_4) < 0; if (branch_taken) { goto L_089D2E38; } goto L_089D2E28; } L_089D2E28: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_gpr_5 = (static_cast(aot_gpr_4) < static_cast(aot_gpr_5) ? 1u : 0u); if (aot_gpr_5 != 0u) { aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); goto L_089D2E40; } goto L_089D2E38; L_089D2E38: { const bool branch_taken = 0u == 0u; aot_gpr_5 = (0u | 0u); if (branch_taken) { goto L_089D2E6C; } goto L_089D2E40; } L_089D2E40: aot_gpr_5 = (aot_gpr_5 + aot_gpr_4); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(0))); aot_gpr_5 = (aot_gpr_5 & 128u); { const bool branch_taken = aot_gpr_5 == 0u; aot_gpr_5 = (0u + static_cast(3344)); if (branch_taken) { goto L_089D2E5C; } goto L_089D2E54; } L_089D2E54: { const bool branch_taken = 0u == 0u; aot_gpr_5 = (0u | 0u); if (branch_taken) { goto L_089D2E6C; } goto L_089D2E5C; } L_089D2E5C: { const std::int64_t product = static_cast(static_cast(aot_gpr_4)) * static_cast(static_cast(aot_gpr_5)); ctx.lo = static_cast(product); ctx.hi = static_cast(static_cast(product) >> 32u); } aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_6 = (ctx.lo); aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); goto L_089D2E6C; L_089D2E6C: { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_089D2F10; } goto L_089D2E74; } L_089D2E74: aot_gpr_7 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(1912))); aot_gpr_6 = (0u | 0u); aot_gpr_7 = (static_cast(aot_gpr_6) < static_cast(aot_gpr_7) ? 1u : 0u); { const bool branch_taken = aot_gpr_7 == 0u; if (branch_taken) { goto L_089D2F10; } goto L_089D2E88; } L_089D2E88: aot_gpr_7 = (aot_gpr_6 << 2u); aot_gpr_7 = (aot_gpr_5 + aot_gpr_7); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(1824))); { const bool branch_taken = aot_gpr_7 != ctx.gpr[16]; if (branch_taken) { goto L_089D2EFC; } goto L_089D2E9C; } L_089D2E9C: ctx.gpr[8] = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(1912))); aot_gpr_7 = (aot_gpr_6 | 0u); ctx.gpr[8] = (ctx.gpr[8] + static_cast(-1)); ctx.gpr[8] = (static_cast(aot_gpr_7) < static_cast(ctx.gpr[8]) ? 1u : 0u); if (ctx.gpr[8] == 0u) { aot_gpr_7 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(1912))); goto L_089D2EE0; } goto L_089D2EB4; L_089D2EB4: ctx.gpr[8] = (aot_gpr_7 << 2u); goto L_089D2EB8; L_089D2EB8: ctx.gpr[8] = (aot_gpr_5 + ctx.gpr[8]); ctx.gpr[9] = (aot_mem.aot_direct_load32(ctx.gpr[8] + static_cast(1828))); aot_gpr_7 = (aot_gpr_7 + static_cast(1)); aot_mem.aot_direct_store32(ctx.gpr[8] + static_cast(1824), ctx.gpr[9]); ctx.gpr[8] = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(1912))); ctx.gpr[8] = (ctx.gpr[8] + static_cast(-1)); ctx.gpr[8] = (static_cast(aot_gpr_7) < static_cast(ctx.gpr[8]) ? 1u : 0u); { const bool branch_taken = ctx.gpr[8] != 0u; ctx.gpr[8] = (aot_gpr_7 << 2u); if (branch_taken) { goto L_089D2EB8; } goto L_089D2EDC; } L_089D2EDC: aot_gpr_7 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(1912))); goto L_089D2EE0; L_089D2EE0: aot_gpr_6 = (aot_gpr_6 + static_cast(-1)); aot_gpr_7 = (aot_gpr_7 + static_cast(-1)); aot_mem.aot_direct_store16(aot_gpr_5 + static_cast(1912), static_cast(aot_gpr_7)); aot_gpr_7 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(1912))); aot_gpr_7 = (aot_gpr_7 << 2u); aot_gpr_7 = (aot_gpr_5 + aot_gpr_7); aot_mem.aot_direct_store32(aot_gpr_7 + static_cast(1824), 0u); goto L_089D2EFC; L_089D2EFC: aot_gpr_7 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(1912))); aot_gpr_6 = (aot_gpr_6 + static_cast(1)); aot_gpr_7 = (static_cast(aot_gpr_6) < static_cast(aot_gpr_7) ? 1u : 0u); { const bool branch_taken = aot_gpr_7 != 0u; if (branch_taken) { goto L_089D2E88; } goto L_089D2F10; } L_089D2F10: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); aot_gpr_5 = (static_cast(aot_gpr_4) < static_cast(aot_gpr_5) ? 1u : 0u); { const bool branch_taken = aot_gpr_5 != 0u; if (branch_taken) { goto L_089D2E20; } goto L_089D2F24; } L_089D2F24: { const bool branch_taken = ctx.gpr[16] == 0u; aot_gpr_4 = (ctx.gpr[17] & 1u); if (branch_taken) { goto L_089D2F50; } goto L_089D2F2C; } L_089D2F2C: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-26756)); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x089D2F40u); aot_gpr_4 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0165. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 535u, 0x089D2F40u, 0x08A9B6A8u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); #else recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2F40u) goto L_089D2F40; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2F40: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089D2F4Cu); aot_gpr_5 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0034. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 536u, 0x089D2F4Cu, 0x0888E5E4u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 411u, aot_mem); #else recomp_unit_0034_entry(rt, ctx, 411u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 411u, 0x0888E5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2F4Cu) goto L_089D2F4C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2F4C: aot_gpr_4 = (ctx.gpr[17] & 1u); goto L_089D2F50; L_089D2F50: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D2F60; } goto L_089D2F58; } L_089D2F58: aot_gpr_31 = (0x089D2F60u); aot_gpr_4 = (ctx.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, aot_gpr_7, ctx.gpr[8], ctx.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 == 0x089D2F60u) goto L_089D2F60; AOT_REGCACHE_SYNC_OUT(); return; L_089D2F60: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(8), aot_run_words); ctx.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(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_089D2F78: aot_gpr_29 = (aot_gpr_29 + static_cast(-48)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[16]); ctx.gpr[16] = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_5); { 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(24), aot_run_words); } aot_gpr_31 = (0x089D2F9Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(104))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0179. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 541u, 0x089D2F9Cu, 0x08AD06ACu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); #else recomp_unit_0179_entry(rt, ctx, 73u, 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, 73u, 0x08AD06ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2F9Cu) goto L_089D2F9C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2F9C: aot_gpr_4 = (0u | 0u); ctx.gpr[18] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(48)))))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_4); aot_gpr_4 = (2237u << 16u); aot_gpr_5 = (0u | 352u); aot_gpr_31 = (0x089D2FB8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0174. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 542u, 0x089D2FB8u, 0x08ABE57Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); #else recomp_unit_0174_entry(rt, ctx, 501u, 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, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2FB8u) goto L_089D2FB8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2FB8: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (branch_taken) { goto L_089D2FD4; } goto L_089D2FC4; } L_089D2FC4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(104))); aot_gpr_31 = (0x089D2FD0u); aot_gpr_4 = (ctx.gpr[17] | 0u); goto L_089D20A0; L_089D2FD0: aot_gpr_4 = (ctx.gpr[17] | 0u); goto L_089D2FD4; L_089D2FD4: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089D2FE4u); aot_gpr_5 = (ctx.gpr[18] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0165. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 546u, 0x089D2FE4u, 0x08A9B9F4u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); #else recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2FE4u) goto L_089D2FE4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D2FE4: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); ctx.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(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_089D2FFC: aot_gpr_29 = (aot_gpr_29 + static_cast(-64)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), aot_gpr_6); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(68), aot_gpr_7); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_gpr_7 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(68)))))); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(0)))))); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(30), static_cast(aot_gpr_6)); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(30)))))); aot_gpr_6 = (aot_gpr_7 - aot_gpr_6); aot_gpr_6 = (aot_gpr_6 << 16u); aot_gpr_6 = (static_cast(static_cast(aot_gpr_6) >> 16u)); aot_gpr_6 = (static_cast(aot_gpr_6) < 0 ? 1u : 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), ctx.gpr[17]); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_gpr_6 = (aot_gpr_6 & 255u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), ctx.gpr[16]); { const std::uint32_t aot_run_words[3]{ctx.gpr[18], ctx.gpr[19], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(52), aot_run_words); } { const bool branch_taken = aot_gpr_6 == 0u; ctx.gpr[16] = (aot_gpr_5 | 0u); if (branch_taken) { goto L_089D3098; } goto L_089D3050; } L_089D3050: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(64)))))); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(32), static_cast(aot_gpr_5)); aot_gpr_31 = (0x089D3064u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0165. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 549u, 0x089D3064u, 0x08A9B864u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); #else recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 440u, 0x08A9B864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3064u) goto L_089D3064; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D3064: ctx.gpr[18] = (aot_gpr_29 + static_cast(16)); ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (0u + static_cast(-1)); aot_gpr_31 = (0x089D307Cu); aot_gpr_6 = (0u | 12u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B5814C, 213u, 28u, 0x08B5814Cu>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], ctx.gpr[9], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0213_entry, 213u, 28u, 0x08B5814Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D307Cu) goto L_089D307C; AOT_REGCACHE_SYNC_OUT(); return; L_089D307C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089D3090u); aot_gpr_7 = (ctx.gpr[18] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0116. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 551u, 0x089D3090u, 0x089D58F0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0116_entry(rt, ctx, 363u, aot_mem); #else recomp_unit_0116_entry(rt, ctx, 363u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0116_entry, 116u, 363u, 0x089D58F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3090u) goto L_089D3090; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D3090: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { goto L_089D30FC; } goto L_089D3098; } L_089D3098: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(64)))))); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(34), static_cast(aot_gpr_5)); aot_gpr_31 = (0x089D30ACu); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(34)))))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0165. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 553u, 0x089D30ACu, 0x08A9B864u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); #else recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 440u, 0x08A9B864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D30ACu) goto L_089D30AC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D30AC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(68)))))); ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(36), static_cast(aot_gpr_4)); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(36)))))); aot_gpr_31 = (0x089D30C4u); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0165. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 554u, 0x089D30C4u, 0x08A9B864u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); #else recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 440u, 0x08A9B864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D30C4u) goto L_089D30C4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D30C4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(64)))))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(68)))))); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(38), static_cast(aot_gpr_4)); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(40), static_cast(aot_gpr_5)); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(38)))))); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(40)))))); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_5 - aot_gpr_6); ctx.gpr[8] = (aot_gpr_5 << 16u); ctx.gpr[8] = (static_cast(static_cast(ctx.gpr[8]) >> 16u)); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089D30FCu); aot_gpr_7 = (ctx.gpr[2] | 0u); goto L_089D3460; L_089D30FC: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(44), aot_run_words); ctx.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(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_089D3118: 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_089D3120: 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_5 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[16]); aot_gpr_5 = (aot_gpr_4 | 0u); ctx.gpr[16] = (aot_gpr_6 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089D314Cu); aot_gpr_6 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0034. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 558u, 0x089D314Cu, 0x0888E688u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 421u, aot_mem); #else recomp_unit_0034_entry(rt, ctx, 421u, 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, 421u, 0x0888E688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D314Cu) goto L_089D314C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D314C: ctx.gpr[8] = (ctx.gpr[17] | 0u); ctx.gpr[17] = (aot_mem.aot_direct_load8(ctx.gpr[8] + static_cast(214))); aot_gpr_4 = (0u | 0u); aot_gpr_6 = (aot_gpr_4 < ctx.gpr[17] ? 1u : 0u); { const bool branch_taken = aot_gpr_6 == 0u; aot_gpr_5 = (0u | 0u); if (branch_taken) { goto L_089D31E8; } goto L_089D3164; } L_089D3164: aot_gpr_7 = (ctx.gpr[16] + static_cast(216)); aot_gpr_6 = (aot_gpr_7 | 0u); goto L_089D316C; L_089D316C: ctx.gpr[9] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[8] + static_cast(232)))))); ctx.gpr[11] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(16)))))); { const bool branch_taken = ctx.gpr[9] != ctx.gpr[11]; ctx.gpr[10] = (aot_gpr_5 + static_cast(1)); if (branch_taken) { goto L_089D318C; } goto L_089D317C; } L_089D317C: ctx.gpr[11] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[8] + static_cast(234)))))); ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(18)))))); { const bool branch_taken = ctx.gpr[11] == ctx.gpr[2]; if (branch_taken) { goto L_089D31D0; } goto L_089D318C; } L_089D318C: ctx.gpr[11] = (ctx.gpr[10] << 3u); ctx.gpr[2] = (ctx.gpr[9] | 0u); ctx.gpr[9] = (ctx.gpr[11] + ctx.gpr[11]); ctx.gpr[9] = (ctx.gpr[11] + ctx.gpr[9]); ctx.gpr[9] = (aot_gpr_7 + ctx.gpr[9]); ctx.gpr[11] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[9] + static_cast(16)))))); { const bool branch_taken = ctx.gpr[2] != ctx.gpr[11]; if (branch_taken) { goto L_089D31C8; } goto L_089D31AC; } L_089D31AC: ctx.gpr[11] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[8] + static_cast(234)))))); ctx.gpr[9] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[9] + static_cast(18)))))); { const bool branch_taken = ctx.gpr[11] != ctx.gpr[9]; if (branch_taken) { goto L_089D31C8; } goto L_089D31BC; } L_089D31BC: aot_gpr_6 = (aot_gpr_6 + static_cast(24)); { const bool branch_taken = 0u == 0u; ctx.gpr[10] = (ctx.gpr[10] + static_cast(1)); if (branch_taken) { goto L_089D31D0; } goto L_089D31C8; } L_089D31C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089D31D8; } goto L_089D31D0; } L_089D31D0: aot_gpr_5 = (ctx.gpr[10] | 0u); aot_gpr_6 = (aot_gpr_6 + static_cast(24)); goto L_089D31D8; L_089D31D8: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); ctx.gpr[9] = (aot_gpr_4 < ctx.gpr[17] ? 1u : 0u); { const bool branch_taken = ctx.gpr[9] != 0u; ctx.gpr[8] = (ctx.gpr[8] + static_cast(24)); if (branch_taken) { goto L_089D316C; } goto L_089D31E8; } L_089D31E8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); ctx.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_089D31FC: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[16]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[17]); ctx.gpr[17] = (aot_gpr_5 | 0u); ctx.gpr[16] = (aot_gpr_6 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089D3220u); aot_gpr_6 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0165. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 570u, 0x089D3220u, 0x08A9AE40u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 355u, aot_mem); #else recomp_unit_0165_entry(rt, ctx, 355u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 355u, 0x08A9AE40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3220u) goto L_089D3220; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D3220: aot_fpr_12 = std::bit_cast(ctx.gpr[16]); aot_gpr_4 = (15496u << 16u); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_4 = (aot_gpr_4 | 34953u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(214))); aot_gpr_4 = (0u | 0u); aot_gpr_5 = (aot_gpr_4 < aot_gpr_5 ? 1u : 0u); { const bool branch_taken = aot_gpr_5 == 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_089D3284; } goto L_089D3248; } L_089D3248: aot_gpr_5 = (ctx.gpr[17] | 0u); goto L_089D324C; L_089D324C: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(236))); aot_gpr_6 = (aot_gpr_6 & 1u); { const bool branch_taken = aot_gpr_6 == 0u; if (branch_taken) { goto L_089D3270; } goto L_089D325C; } L_089D325C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(228))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(224))); { const float fs = aot_fpr_13; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } aot_fpr_13 = aot_fpr_14 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(224), std::bit_cast(aot_fpr_13)); goto L_089D3270; L_089D3270: aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(214))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); aot_gpr_6 = (aot_gpr_4 < aot_gpr_6 ? 1u : 0u); { const bool branch_taken = aot_gpr_6 != 0u; aot_gpr_5 = (aot_gpr_5 + static_cast(24)); if (branch_taken) { goto L_089D324C; } goto L_089D3284; } L_089D3284: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); ctx.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_089D3298: aot_gpr_29 = (aot_gpr_29 + static_cast(-64)); aot_fpr_13 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), std::bit_cast(aot_fpr_13)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), std::bit_cast(aot_fpr_13)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), ctx.gpr[16]); ctx.gpr[16] = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), std::bit_cast(aot_fpr_13)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), std::bit_cast(aot_fpr_20)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), ctx.gpr[17]); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(112))); ctx.gpr[17] = (aot_gpr_29 + static_cast(16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), std::bit_cast(ctx.fpr[22])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(52), ctx.gpr[18]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), aot_gpr_31); aot_gpr_31 = (0x089D32DCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0038. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 577u, 0x089D32DCu, 0x0889EB08u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); #else recomp_unit_0038_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_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D32DCu) goto L_089D32DC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D32DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(148))); ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); aot_gpr_31 = (0x089D32F0u); 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_08969194, 89u, 251u, 0x08969194u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0089_entry, 89u, 251u, 0x08969194u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D32F0u) goto L_089D32F0; AOT_REGCACHE_SYNC_OUT(); return; L_089D32F0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089D32FCu); ctx.gpr[18] = (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_0896918C, 89u, 250u, 0x0896918Cu>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0089_entry, 89u, 250u, 0x0896918Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D32FCu) goto L_089D32FC; AOT_REGCACHE_SYNC_OUT(); return; L_089D32FC: aot_gpr_7 = (ctx.gpr[18] << 6u); aot_gpr_7 = (ctx.gpr[2] + aot_gpr_7); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089D3314u); aot_gpr_6 = (0u | 1u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0023. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 580u, 0x089D3314u, 0x088619ACu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); #else recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3314u) goto L_089D3314; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D3314: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(96))); { const bool branch_taken = aot_gpr_4 != 0u; ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); if (branch_taken) { goto L_089D333C; } goto L_089D3320; } L_089D3320: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(10)))))); aot_gpr_6 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x089D3330u); aot_gpr_4 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 582u, 0x089D3330u, 0x08A9C6FCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); #else recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3330u) goto L_089D3330; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D3330: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(32))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(4), static_cast(aot_gpr_4)); goto L_089D333C; L_089D333C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(96))); aot_gpr_4 = (aot_gpr_4 + static_cast(64)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_fpr_12 = aot_fpr_12 + aot_fpr_20; ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] <= aot_fpr_12)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_089D3364; } goto L_089D335C; } L_089D335C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { goto L_089D3368; } goto L_089D3364; } L_089D3364: ctx.gpr[2] = (0u | 0u); goto L_089D3368; L_089D3368: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(36), aot_run_words); aot_fpr_20 = std::bit_cast(aot_run_words[0]); ctx.fpr[22] = std::bit_cast(aot_run_words[1]); ctx.gpr[16] = aot_run_words[2]; ctx.gpr[17] = aot_run_words[3]; ctx.gpr[18] = aot_run_words[4]; aot_gpr_31 = aot_run_words[5]; } 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_089D3388: aot_gpr_29 = (aot_gpr_29 + static_cast(-48)); aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[17]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), ctx.gpr[18]); ctx.gpr[18] = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_12)); ctx.gpr[17] = (aot_gpr_5 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), ctx.gpr[16]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), ctx.gpr[19]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); { const bool branch_taken = static_cast(aot_gpr_6) <= 0; ctx.gpr[16] = (aot_gpr_6 | 0u); if (branch_taken) { goto L_089D33CC; } goto L_089D33C0; } L_089D33C0: aot_gpr_4 = (static_cast(ctx.gpr[16]) < 18 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089D33DC; } goto L_089D33CC; } L_089D33CC: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_089D3434; } goto L_089D33DC; } L_089D33DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(112))); aot_gpr_31 = (0x089D33E8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0038. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 591u, 0x089D33E8u, 0x0889EB08u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); #else recomp_unit_0038_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_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D33E8u) goto L_089D33E8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D33E8: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[16] << 2u); aot_gpr_4 = (ctx.gpr[18] + aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(140))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); aot_gpr_31 = (0x089D3404u); aot_gpr_4 = (ctx.gpr[19] | 0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08969194, 89u, 251u, 0x08969194u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0089_entry, 89u, 251u, 0x08969194u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3404u) goto L_089D3404; AOT_REGCACHE_SYNC_OUT(); return; L_089D3404: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089D3410u); ctx.gpr[16] = (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_0896918C, 89u, 250u, 0x0896918Cu>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0089_entry, 89u, 250u, 0x0896918Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3410u) goto L_089D3410; AOT_REGCACHE_SYNC_OUT(); return; L_089D3410: aot_gpr_7 = (ctx.gpr[16] << 6u); aot_gpr_7 = (ctx.gpr[2] + aot_gpr_7); aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089D3428u); aot_gpr_6 = (0u | 1u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0023. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 594u, 0x089D3428u, 0x088619ACu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); #else recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3428u) goto L_089D3428; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D3428: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } ctx.gpr[2] = (0u | 1u); goto L_089D3434; L_089D3434: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); ctx.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(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_089D3450: jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(216), static_cast(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_089D3458: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(216))); // 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_089D3460: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[18]); ctx.gpr[18] = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[16]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), ctx.gpr[17]); ctx.gpr[17] = (aot_gpr_5 | 0u); ctx.gpr[16] = (aot_gpr_6 | 0u); aot_gpr_4 = (aot_gpr_29 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x089D348Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0116. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 599u, 0x089D348Cu, 0x089D5288u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0116_entry(rt, ctx, 264u, aot_mem); #else recomp_unit_0116_entry(rt, ctx, 264u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0116_entry, 116u, 264u, 0x089D5288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D348Cu) goto L_089D348C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D348C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D34B4; } goto L_089D3498; } L_089D3498: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_6 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089D34ACu); aot_gpr_7 = (aot_gpr_29 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0116. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 601u, 0x089D34ACu, 0x089D58F0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0116_entry(rt, ctx, 363u, aot_mem); #else recomp_unit_0116_entry(rt, ctx, 363u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0116_entry, 116u, 363u, 0x089D58F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D34ACu) goto L_089D34AC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D34AC: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { goto L_089D34B8; } goto L_089D34B4; } L_089D34B4: ctx.gpr[2] = (0u | 0u); goto L_089D34B8; L_089D34B8: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(12), aot_run_words); ctx.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(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_089D34D0: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(0))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); aot_gpr_4 = (46470u << 16u); aot_fpr_14 = aot_fpr_13 - aot_fpr_14; aot_gpr_4 = (aot_gpr_4 | 14269u); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.gpr[2] = (0u | 0u); ctx.gpr[9] = (0u | 0u); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(20))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_14 <= aot_fpr_12)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); aot_gpr_4 = (65535u << 16u); if (branch_taken) { goto L_089D3524; } goto L_089D3504; } L_089D3504: ctx.gpr[10] = (13702u << 16u); ctx.gpr[10] = (ctx.gpr[10] | 14269u); ctx.fpr[15] = std::bit_cast(ctx.gpr[10]); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_14 <= ctx.fpr[15])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); ctx.gpr[9] = (ctx.gpr[9] & 255u); if (branch_taken) { goto L_089D3528; } goto L_089D3520; } L_089D3520: ctx.gpr[9] = (0u | 1u); goto L_089D3524; L_089D3524: ctx.gpr[9] = (ctx.gpr[9] & 255u); goto L_089D3528; L_089D3528: { const bool branch_taken = ctx.gpr[9] != 0u; if (branch_taken) { goto L_089D353C; } goto L_089D3530; } L_089D3530: ctx.gpr[2] = (0u | 1u); { const bool branch_taken = 0u == 0u; aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(4))); if (branch_taken) { goto L_089D3544; } goto L_089D353C; } L_089D353C: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), std::bit_cast(aot_fpr_13)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(4))); goto L_089D3544; L_089D3544: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); aot_fpr_14 = aot_fpr_13 - aot_fpr_14; ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_14 <= aot_fpr_12)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); ctx.gpr[9] = (0u | 0u); if (branch_taken) { goto L_089D357C; } goto L_089D355C; } L_089D355C: ctx.gpr[10] = (13702u << 16u); ctx.gpr[10] = (ctx.gpr[10] | 14269u); ctx.fpr[15] = std::bit_cast(ctx.gpr[10]); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_14 <= ctx.fpr[15])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); ctx.gpr[9] = (ctx.gpr[9] & 255u); if (branch_taken) { goto L_089D3580; } goto L_089D3578; } L_089D3578: ctx.gpr[9] = (0u | 1u); goto L_089D357C; L_089D357C: ctx.gpr[9] = (ctx.gpr[9] & 255u); goto L_089D3580; L_089D3580: { const bool branch_taken = ctx.gpr[9] != 0u; if (branch_taken) { goto L_089D359C; } goto L_089D3588; } L_089D3588: ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(20))); ctx.gpr[2] = (ctx.gpr[2] | 2u); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(8))); { const bool branch_taken = 0u == 0u; ctx.gpr[9] = (ctx.gpr[9] & 1u); if (branch_taken) { goto L_089D35AC; } goto L_089D359C; } L_089D359C: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(4), std::bit_cast(aot_fpr_13)); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(20))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(8))); ctx.gpr[9] = (ctx.gpr[9] & 1u); goto L_089D35AC; L_089D35AC: { const bool branch_taken = ctx.gpr[9] == 0u; aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); if (branch_taken) { goto L_089D35D8; } goto L_089D35B4; } L_089D35B4: aot_fpr_13 = std::bit_cast(aot_gpr_7); ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(12))); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_7 = (15496u << 16u); aot_gpr_7 = (aot_gpr_7 | 34953u); ctx.fpr[15] = std::bit_cast(aot_gpr_7); { const float fs = aot_fpr_13; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } { const float fs = aot_fpr_13; const float ft = ctx.fpr[16]; 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_13 = aot_fpr_14 + aot_fpr_13; goto L_089D35D8; L_089D35D8: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); aot_gpr_7 = (48163u << 16u); aot_fpr_14 = aot_fpr_13 - aot_fpr_14; ctx.gpr[9] = (aot_gpr_7 | 55050u); ctx.fpr[15] = std::bit_cast(ctx.gpr[9]); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_14 <= ctx.fpr[15])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); aot_gpr_7 = (0u | 0u); if (branch_taken) { goto L_089D361C; } goto L_089D35FC; } L_089D35FC: ctx.gpr[9] = (15395u << 16u); ctx.gpr[9] = (ctx.gpr[9] | 55050u); ctx.fpr[15] = std::bit_cast(ctx.gpr[9]); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_14 <= ctx.fpr[15])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); aot_gpr_7 = (aot_gpr_7 & 255u); if (branch_taken) { goto L_089D3620; } goto L_089D3618; } L_089D3618: aot_gpr_7 = (0u | 1u); goto L_089D361C; L_089D361C: aot_gpr_7 = (aot_gpr_7 & 255u); goto L_089D3620; L_089D3620: { const bool branch_taken = aot_gpr_7 != 0u; if (branch_taken) { goto L_089D3634; } goto L_089D3628; } L_089D3628: ctx.gpr[2] = (ctx.gpr[2] | 4u); { const bool branch_taken = 0u == 0u; aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(12))); if (branch_taken) { goto L_089D363C; } goto L_089D3634; } L_089D3634: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(8), std::bit_cast(aot_fpr_13)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(12))); goto L_089D363C; L_089D363C: 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_5 + static_cast(12))); aot_fpr_12 = aot_fpr_13 - aot_fpr_12; ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_14)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); aot_gpr_7 = (0u | 0u); if (branch_taken) { goto L_089D3678; } goto L_089D3658; } L_089D3658: ctx.gpr[9] = (13702u << 16u); ctx.gpr[9] = (ctx.gpr[9] | 14269u); aot_fpr_14 = std::bit_cast(ctx.gpr[9]); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_14)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); aot_gpr_7 = (aot_gpr_7 & 255u); if (branch_taken) { goto L_089D367C; } goto L_089D3674; } L_089D3674: aot_gpr_7 = (0u | 1u); goto L_089D3678; L_089D3678: aot_gpr_7 = (aot_gpr_7 & 255u); goto L_089D367C; L_089D367C: { const bool branch_taken = aot_gpr_7 != 0u; if (branch_taken) { goto L_089D36A0; } goto L_089D3684; } L_089D3684: ctx.gpr[11] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(20))); ctx.gpr[10] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(16)))))); ctx.gpr[9] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(18)))))); ctx.gpr[2] = (ctx.gpr[2] | 8u); aot_gpr_7 = (ctx.gpr[11] & 65535u); { const bool branch_taken = 0u == 0u; aot_gpr_6 = (ctx.gpr[11] & aot_gpr_4); if (branch_taken) { goto L_089D36B8; } goto L_089D36A0; } L_089D36A0: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(12), std::bit_cast(aot_fpr_13)); ctx.gpr[11] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(20))); ctx.gpr[10] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(16)))))); ctx.gpr[9] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(18)))))); aot_gpr_7 = (ctx.gpr[11] & 65535u); aot_gpr_6 = (ctx.gpr[11] & aot_gpr_4); goto L_089D36B8; L_089D36B8: ctx.gpr[11] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(16)))))); { const bool branch_taken = ctx.gpr[10] == ctx.gpr[11]; if (branch_taken) { goto L_089D36CC; } goto L_089D36C4; } L_089D36C4: ctx.gpr[2] = (ctx.gpr[2] | 16u); ctx.gpr[2] = (ctx.gpr[2] | 32u); goto L_089D36CC; L_089D36CC: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(18)))))); { const bool branch_taken = ctx.gpr[9] == aot_gpr_5; if (branch_taken) { goto L_089D36E0; } goto L_089D36D8; } L_089D36D8: ctx.gpr[2] = (ctx.gpr[2] | 32u); ctx.gpr[2] = (ctx.gpr[2] | 16u); goto L_089D36E0; L_089D36E0: aot_gpr_5 = (ctx.gpr[8] & 65535u); { const bool branch_taken = aot_gpr_7 == aot_gpr_5; if (branch_taken) { goto L_089D36F0; } goto L_089D36EC; } L_089D36EC: ctx.gpr[2] = (ctx.gpr[2] | 64u); goto L_089D36F0; L_089D36F0: aot_gpr_4 = (ctx.gpr[8] & aot_gpr_4); { const bool branch_taken = aot_gpr_6 == aot_gpr_4; if (branch_taken) { goto L_089D3700; } goto L_089D36FC; } L_089D36FC: ctx.gpr[2] = (ctx.gpr[2] | 128u); goto L_089D3700; L_089D3700: 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_089D3708: aot_gpr_4 = (aot_gpr_7 & 255u); ctx.gpr[8] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[8])); ctx.gpr[8] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[8])); ctx.gpr[8] = (ctx.gpr[8] & 65535u); ctx.gpr[9] = (aot_gpr_5 + ctx.gpr[8]); ctx.gpr[8] = (ctx.gpr[8] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[8])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[8]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[9] + static_cast(0), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_gpr_7 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D37FC; } goto L_089D373C; } L_089D373C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(0))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); ctx.gpr[8] = (aot_gpr_4 & 65535u); ctx.gpr[8] = (ctx.gpr[8] & 65535u); ctx.gpr[9] = (ctx.gpr[8] & 255u); ctx.gpr[10] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[10])); ctx.gpr[10] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[10])); ctx.gpr[10] = (ctx.gpr[10] & 65535u); ctx.gpr[11] = (aot_gpr_5 + ctx.gpr[10]); ctx.gpr[10] = (ctx.gpr[10] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[10])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[10]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[11] + static_cast(0), static_cast(ctx.gpr[9])); ctx.gpr[8] = (static_cast(static_cast(ctx.gpr[8]) >> 8u)); ctx.gpr[8] = (ctx.gpr[8] & 255u); ctx.gpr[9] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[9])); ctx.gpr[9] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[9])); ctx.gpr[9] = (ctx.gpr[9] & 65535u); ctx.gpr[10] = (aot_gpr_5 + ctx.gpr[9]); ctx.gpr[9] = (ctx.gpr[9] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[9])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[9]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[10] + static_cast(0), static_cast(ctx.gpr[8])); aot_gpr_4 = (aot_gpr_4 >> 16u); aot_gpr_4 = (aot_gpr_4 & 65535u); ctx.gpr[8] = (aot_gpr_4 & 255u); ctx.gpr[9] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[9])); ctx.gpr[9] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[9])); ctx.gpr[9] = (ctx.gpr[9] & 65535u); ctx.gpr[10] = (aot_gpr_5 + ctx.gpr[9]); ctx.gpr[9] = (ctx.gpr[9] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[9])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[9]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[10] + static_cast(0), static_cast(ctx.gpr[8])); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 8u)); aot_gpr_4 = (aot_gpr_4 & 255u); ctx.gpr[8] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[8])); ctx.gpr[8] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[8])); ctx.gpr[8] = (ctx.gpr[8] & 65535u); ctx.gpr[9] = (aot_gpr_5 + ctx.gpr[8]); ctx.gpr[8] = (ctx.gpr[8] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[8])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[8]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[9] + static_cast(0), static_cast(aot_gpr_4)); goto L_089D37FC; L_089D37FC: aot_gpr_4 = (aot_gpr_7 & 2u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D38C8; } goto L_089D3808; } L_089D3808: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(4))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); ctx.gpr[8] = (aot_gpr_4 & 65535u); ctx.gpr[8] = (ctx.gpr[8] & 65535u); ctx.gpr[9] = (ctx.gpr[8] & 255u); ctx.gpr[10] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[10])); ctx.gpr[10] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[10])); ctx.gpr[10] = (ctx.gpr[10] & 65535u); ctx.gpr[11] = (aot_gpr_5 + ctx.gpr[10]); ctx.gpr[10] = (ctx.gpr[10] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[10])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[10]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[11] + static_cast(0), static_cast(ctx.gpr[9])); ctx.gpr[8] = (static_cast(static_cast(ctx.gpr[8]) >> 8u)); ctx.gpr[8] = (ctx.gpr[8] & 255u); ctx.gpr[9] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[9])); ctx.gpr[9] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[9])); ctx.gpr[9] = (ctx.gpr[9] & 65535u); ctx.gpr[10] = (aot_gpr_5 + ctx.gpr[9]); ctx.gpr[9] = (ctx.gpr[9] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[9])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[9]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[10] + static_cast(0), static_cast(ctx.gpr[8])); aot_gpr_4 = (aot_gpr_4 >> 16u); aot_gpr_4 = (aot_gpr_4 & 65535u); ctx.gpr[8] = (aot_gpr_4 & 255u); ctx.gpr[9] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[9])); ctx.gpr[9] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[9])); ctx.gpr[9] = (ctx.gpr[9] & 65535u); ctx.gpr[10] = (aot_gpr_5 + ctx.gpr[9]); ctx.gpr[9] = (ctx.gpr[9] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[9])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[9]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[10] + static_cast(0), static_cast(ctx.gpr[8])); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 8u)); aot_gpr_4 = (aot_gpr_4 & 255u); ctx.gpr[8] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[8])); ctx.gpr[8] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[8])); ctx.gpr[8] = (ctx.gpr[8] & 65535u); ctx.gpr[9] = (aot_gpr_5 + ctx.gpr[8]); ctx.gpr[8] = (ctx.gpr[8] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[8])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[8]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[9] + static_cast(0), static_cast(aot_gpr_4)); goto L_089D38C8; L_089D38C8: aot_gpr_4 = (aot_gpr_7 & 4u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D3994; } goto L_089D38D4; } L_089D38D4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(8))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); ctx.gpr[8] = (aot_gpr_4 & 65535u); ctx.gpr[8] = (ctx.gpr[8] & 65535u); ctx.gpr[9] = (ctx.gpr[8] & 255u); ctx.gpr[10] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[10])); ctx.gpr[10] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[10])); ctx.gpr[10] = (ctx.gpr[10] & 65535u); ctx.gpr[11] = (aot_gpr_5 + ctx.gpr[10]); ctx.gpr[10] = (ctx.gpr[10] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[10])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[10]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[11] + static_cast(0), static_cast(ctx.gpr[9])); ctx.gpr[8] = (static_cast(static_cast(ctx.gpr[8]) >> 8u)); ctx.gpr[8] = (ctx.gpr[8] & 255u); ctx.gpr[9] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[9])); ctx.gpr[9] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[9])); ctx.gpr[9] = (ctx.gpr[9] & 65535u); ctx.gpr[10] = (aot_gpr_5 + ctx.gpr[9]); ctx.gpr[9] = (ctx.gpr[9] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[9])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[9]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[10] + static_cast(0), static_cast(ctx.gpr[8])); aot_gpr_4 = (aot_gpr_4 >> 16u); aot_gpr_4 = (aot_gpr_4 & 65535u); ctx.gpr[8] = (aot_gpr_4 & 255u); ctx.gpr[9] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[9])); ctx.gpr[9] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[9])); ctx.gpr[9] = (ctx.gpr[9] & 65535u); ctx.gpr[10] = (aot_gpr_5 + ctx.gpr[9]); ctx.gpr[9] = (ctx.gpr[9] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[9])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[9]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[10] + static_cast(0), static_cast(ctx.gpr[8])); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 8u)); aot_gpr_4 = (aot_gpr_4 & 255u); ctx.gpr[8] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[8])); ctx.gpr[8] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[8])); ctx.gpr[8] = (ctx.gpr[8] & 65535u); ctx.gpr[9] = (aot_gpr_5 + ctx.gpr[8]); ctx.gpr[8] = (ctx.gpr[8] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[8])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[8]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[9] + static_cast(0), static_cast(aot_gpr_4)); goto L_089D3994; L_089D3994: aot_gpr_4 = (aot_gpr_7 & 8u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D3A60; } goto L_089D39A0; } L_089D39A0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(12))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); ctx.gpr[8] = (aot_gpr_4 & 65535u); ctx.gpr[8] = (ctx.gpr[8] & 65535u); ctx.gpr[9] = (ctx.gpr[8] & 255u); ctx.gpr[10] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[10])); ctx.gpr[10] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[10])); ctx.gpr[10] = (ctx.gpr[10] & 65535u); ctx.gpr[11] = (aot_gpr_5 + ctx.gpr[10]); ctx.gpr[10] = (ctx.gpr[10] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[10])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[10]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[11] + static_cast(0), static_cast(ctx.gpr[9])); ctx.gpr[8] = (static_cast(static_cast(ctx.gpr[8]) >> 8u)); ctx.gpr[8] = (ctx.gpr[8] & 255u); ctx.gpr[9] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[9])); ctx.gpr[9] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[9])); ctx.gpr[9] = (ctx.gpr[9] & 65535u); ctx.gpr[10] = (aot_gpr_5 + ctx.gpr[9]); ctx.gpr[9] = (ctx.gpr[9] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[9])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[9]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[10] + static_cast(0), static_cast(ctx.gpr[8])); aot_gpr_4 = (aot_gpr_4 >> 16u); aot_gpr_4 = (aot_gpr_4 & 65535u); ctx.gpr[8] = (aot_gpr_4 & 255u); ctx.gpr[9] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[9])); ctx.gpr[9] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[9])); ctx.gpr[9] = (ctx.gpr[9] & 65535u); ctx.gpr[10] = (aot_gpr_5 + ctx.gpr[9]); ctx.gpr[9] = (ctx.gpr[9] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[9])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[9]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[10] + static_cast(0), static_cast(ctx.gpr[8])); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 8u)); aot_gpr_4 = (aot_gpr_4 & 255u); ctx.gpr[8] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[8])); ctx.gpr[8] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[8])); ctx.gpr[8] = (ctx.gpr[8] & 65535u); ctx.gpr[9] = (aot_gpr_5 + ctx.gpr[8]); ctx.gpr[8] = (ctx.gpr[8] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[8])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[8]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[9] + static_cast(0), static_cast(aot_gpr_4)); goto L_089D3A60; L_089D3A60: aot_gpr_4 = (aot_gpr_7 & 16u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D3AD4; } goto L_089D3A6C; } L_089D3A6C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(16)))))); aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); aot_gpr_4 = (aot_gpr_4 & 65535u); aot_gpr_4 = (aot_gpr_4 & 65535u); ctx.gpr[8] = (aot_gpr_4 & 255u); ctx.gpr[9] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[9])); ctx.gpr[9] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[9])); ctx.gpr[9] = (ctx.gpr[9] & 65535u); ctx.gpr[10] = (aot_gpr_5 + ctx.gpr[9]); ctx.gpr[9] = (ctx.gpr[9] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[9])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[9]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[10] + static_cast(0), static_cast(ctx.gpr[8])); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 8u)); aot_gpr_4 = (aot_gpr_4 & 255u); ctx.gpr[8] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[8])); ctx.gpr[8] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[8])); ctx.gpr[8] = (ctx.gpr[8] & 65535u); ctx.gpr[9] = (aot_gpr_5 + ctx.gpr[8]); ctx.gpr[8] = (ctx.gpr[8] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[8])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[8]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[9] + static_cast(0), static_cast(aot_gpr_4)); goto L_089D3AD4; L_089D3AD4: aot_gpr_4 = (aot_gpr_7 & 32u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D3B48; } goto L_089D3AE0; } L_089D3AE0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(18)))))); aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); aot_gpr_4 = (aot_gpr_4 & 65535u); aot_gpr_4 = (aot_gpr_4 & 65535u); ctx.gpr[8] = (aot_gpr_4 & 255u); ctx.gpr[9] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[9])); ctx.gpr[9] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[9])); ctx.gpr[9] = (ctx.gpr[9] & 65535u); ctx.gpr[10] = (aot_gpr_5 + ctx.gpr[9]); ctx.gpr[9] = (ctx.gpr[9] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[9])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[9]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[10] + static_cast(0), static_cast(ctx.gpr[8])); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 8u)); aot_gpr_4 = (aot_gpr_4 & 255u); ctx.gpr[8] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[8])); ctx.gpr[8] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[8])); ctx.gpr[8] = (ctx.gpr[8] & 65535u); ctx.gpr[9] = (aot_gpr_5 + ctx.gpr[8]); ctx.gpr[8] = (ctx.gpr[8] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[8])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[8]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[9] + static_cast(0), static_cast(aot_gpr_4)); goto L_089D3B48; L_089D3B48: aot_gpr_4 = (aot_gpr_7 & 64u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D3BB4; } goto L_089D3B54; } L_089D3B54: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(20))); aot_gpr_4 = (aot_gpr_4 & 65535u); aot_gpr_4 = (aot_gpr_4 & 65535u); ctx.gpr[8] = (aot_gpr_4 & 255u); ctx.gpr[9] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[9])); ctx.gpr[9] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[9])); ctx.gpr[9] = (ctx.gpr[9] & 65535u); ctx.gpr[10] = (aot_gpr_5 + ctx.gpr[9]); ctx.gpr[9] = (ctx.gpr[9] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[9])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[9]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[10] + static_cast(0), static_cast(ctx.gpr[8])); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 8u)); aot_gpr_4 = (aot_gpr_4 & 255u); ctx.gpr[8] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[8])); ctx.gpr[8] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[8])); ctx.gpr[8] = (ctx.gpr[8] & 65535u); ctx.gpr[9] = (aot_gpr_5 + ctx.gpr[8]); ctx.gpr[8] = (ctx.gpr[8] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[8])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[8]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[9] + static_cast(0), static_cast(aot_gpr_4)); goto L_089D3BB4; L_089D3BB4: aot_gpr_4 = (aot_gpr_7 & 128u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D3C20; } goto L_089D3BC0; } L_089D3BC0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(20))); aot_gpr_4 = (aot_gpr_4 >> 16u); aot_gpr_4 = (aot_gpr_4 & 65535u); aot_gpr_6 = (aot_gpr_4 & 255u); aot_gpr_7 = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), aot_gpr_7)); aot_gpr_7 = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), aot_gpr_7)); aot_gpr_7 = (aot_gpr_7 & 65535u); ctx.gpr[8] = (aot_gpr_5 + aot_gpr_7); aot_gpr_7 = (aot_gpr_7 + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(aot_gpr_7)); ctx.gpr[1] = (static_cast(static_cast(aot_gpr_7) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[8] + static_cast(0), static_cast(aot_gpr_6)); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 8u)); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_6 = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), aot_gpr_6)); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), aot_gpr_6)); aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_7 = (aot_gpr_5 + aot_gpr_6); aot_gpr_6 = (aot_gpr_6 + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(aot_gpr_6)); ctx.gpr[1] = (static_cast(static_cast(aot_gpr_6) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(aot_gpr_7 + static_cast(0), static_cast(aot_gpr_4)); goto L_089D3C20; L_089D3C20: 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_089D3C28: aot_gpr_5 = (aot_gpr_5 + static_cast(4)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); aot_gpr_7 = (aot_gpr_4 + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_7); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0))); aot_gpr_7 = (aot_gpr_4 & 1u); { const bool branch_taken = aot_gpr_7 == 0u; if (branch_taken) { goto L_089D3CB0; } goto L_089D3C48; } L_089D3C48: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[8] = (aot_gpr_7 + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[8]); aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_7 + static_cast(0))); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[9] = (ctx.gpr[8] + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[9]); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[8] + static_cast(0))); ctx.gpr[8] = (ctx.gpr[8] << 8u); aot_gpr_7 = (aot_gpr_7 | ctx.gpr[8]); aot_gpr_7 = (aot_gpr_7 & 65535u); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[9] = (ctx.gpr[8] + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[9]); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[8] + static_cast(0))); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[10] = (ctx.gpr[9] + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[10]); ctx.gpr[9] = (aot_mem.aot_direct_load8(ctx.gpr[9] + static_cast(0))); ctx.gpr[9] = (ctx.gpr[9] << 8u); ctx.gpr[8] = (ctx.gpr[8] | ctx.gpr[9]); ctx.gpr[8] = (ctx.gpr[8] & 65535u); ctx.gpr[8] = (ctx.gpr[8] << 16u); aot_gpr_7 = (aot_gpr_7 | ctx.gpr[8]); aot_fpr_12 = std::bit_cast(aot_gpr_7); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(0), std::bit_cast(aot_fpr_12)); goto L_089D3CB0; L_089D3CB0: aot_gpr_7 = (aot_gpr_4 & 2u); { const bool branch_taken = aot_gpr_7 == 0u; if (branch_taken) { goto L_089D3D24; } goto L_089D3CBC; } L_089D3CBC: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[8] = (aot_gpr_7 + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[8]); aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_7 + static_cast(0))); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[9] = (ctx.gpr[8] + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[9]); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[8] + static_cast(0))); ctx.gpr[8] = (ctx.gpr[8] << 8u); aot_gpr_7 = (aot_gpr_7 | ctx.gpr[8]); aot_gpr_7 = (aot_gpr_7 & 65535u); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[9] = (ctx.gpr[8] + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[9]); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[8] + static_cast(0))); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[10] = (ctx.gpr[9] + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[10]); ctx.gpr[9] = (aot_mem.aot_direct_load8(ctx.gpr[9] + static_cast(0))); ctx.gpr[9] = (ctx.gpr[9] << 8u); ctx.gpr[8] = (ctx.gpr[8] | ctx.gpr[9]); ctx.gpr[8] = (ctx.gpr[8] & 65535u); ctx.gpr[8] = (ctx.gpr[8] << 16u); aot_gpr_7 = (aot_gpr_7 | ctx.gpr[8]); aot_fpr_12 = std::bit_cast(aot_gpr_7); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(4), std::bit_cast(aot_fpr_12)); goto L_089D3D24; L_089D3D24: aot_gpr_7 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_7 == 0u; if (branch_taken) { goto L_089D3D98; } goto L_089D3D30; } L_089D3D30: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[8] = (aot_gpr_7 + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[8]); aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_7 + static_cast(0))); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[9] = (ctx.gpr[8] + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[9]); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[8] + static_cast(0))); ctx.gpr[8] = (ctx.gpr[8] << 8u); aot_gpr_7 = (aot_gpr_7 | ctx.gpr[8]); aot_gpr_7 = (aot_gpr_7 & 65535u); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[9] = (ctx.gpr[8] + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[9]); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[8] + static_cast(0))); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[10] = (ctx.gpr[9] + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[10]); ctx.gpr[9] = (aot_mem.aot_direct_load8(ctx.gpr[9] + static_cast(0))); ctx.gpr[9] = (ctx.gpr[9] << 8u); ctx.gpr[8] = (ctx.gpr[8] | ctx.gpr[9]); ctx.gpr[8] = (ctx.gpr[8] & 65535u); ctx.gpr[8] = (ctx.gpr[8] << 16u); aot_gpr_7 = (aot_gpr_7 | ctx.gpr[8]); aot_fpr_12 = std::bit_cast(aot_gpr_7); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(8), std::bit_cast(aot_fpr_12)); goto L_089D3D98; L_089D3D98: aot_gpr_7 = (aot_gpr_4 & 8u); { const bool branch_taken = aot_gpr_7 == 0u; if (branch_taken) { goto L_089D3E0C; } goto L_089D3DA4; } L_089D3DA4: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[8] = (aot_gpr_7 + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[8]); aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_7 + static_cast(0))); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[9] = (ctx.gpr[8] + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[9]); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[8] + static_cast(0))); ctx.gpr[8] = (ctx.gpr[8] << 8u); aot_gpr_7 = (aot_gpr_7 | ctx.gpr[8]); aot_gpr_7 = (aot_gpr_7 & 65535u); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[9] = (ctx.gpr[8] + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[9]); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[8] + static_cast(0))); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[10] = (ctx.gpr[9] + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[10]); ctx.gpr[9] = (aot_mem.aot_direct_load8(ctx.gpr[9] + static_cast(0))); ctx.gpr[9] = (ctx.gpr[9] << 8u); ctx.gpr[8] = (ctx.gpr[8] | ctx.gpr[9]); ctx.gpr[8] = (ctx.gpr[8] & 65535u); ctx.gpr[8] = (ctx.gpr[8] << 16u); aot_gpr_7 = (aot_gpr_7 | ctx.gpr[8]); aot_fpr_12 = std::bit_cast(aot_gpr_7); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(12), std::bit_cast(aot_fpr_12)); goto L_089D3E0C; L_089D3E0C: aot_gpr_7 = (aot_gpr_4 & 16u); { const bool branch_taken = aot_gpr_7 == 0u; if (branch_taken) { goto L_089D3E44; } goto L_089D3E18; } L_089D3E18: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[8] = (aot_gpr_7 + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[8]); aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_7 + static_cast(0))); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[9] = (ctx.gpr[8] + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[9]); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[8] + static_cast(0))); ctx.gpr[8] = (ctx.gpr[8] << 8u); aot_gpr_7 = (aot_gpr_7 | ctx.gpr[8]); aot_mem.aot_direct_store16(aot_gpr_6 + static_cast(16), static_cast(aot_gpr_7)); goto L_089D3E44; L_089D3E44: aot_gpr_7 = (aot_gpr_4 & 32u); { const bool branch_taken = aot_gpr_7 == 0u; if (branch_taken) { goto L_089D3E7C; } goto L_089D3E50; } L_089D3E50: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[8] = (aot_gpr_7 + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[8]); aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_7 + static_cast(0))); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[9] = (ctx.gpr[8] + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[9]); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[8] + static_cast(0))); ctx.gpr[8] = (ctx.gpr[8] << 8u); aot_gpr_7 = (aot_gpr_7 | ctx.gpr[8]); aot_mem.aot_direct_store16(aot_gpr_6 + static_cast(18), static_cast(aot_gpr_7)); goto L_089D3E7C; L_089D3E7C: aot_gpr_7 = (aot_gpr_4 & 64u); { const bool branch_taken = aot_gpr_7 == 0u; if (branch_taken) { goto L_089D3EC8; } goto L_089D3E88; } L_089D3E88: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(20))); ctx.gpr[8] = (65535u << 16u); aot_gpr_7 = (aot_gpr_7 & ctx.gpr[8]); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[9] = (ctx.gpr[8] + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[9]); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[8] + static_cast(0))); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[10] = (ctx.gpr[9] + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[10]); ctx.gpr[9] = (aot_mem.aot_direct_load8(ctx.gpr[9] + static_cast(0))); ctx.gpr[9] = (ctx.gpr[9] << 8u); ctx.gpr[8] = (ctx.gpr[8] | ctx.gpr[9]); ctx.gpr[8] = (ctx.gpr[8] & 65535u); aot_gpr_7 = (aot_gpr_7 | ctx.gpr[8]); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(20), aot_gpr_7); goto L_089D3EC8; L_089D3EC8: aot_gpr_4 = (aot_gpr_4 & 128u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089D3F14; } goto L_089D3ED4; } L_089D3ED4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(20))); aot_gpr_4 = (aot_gpr_4 & 65535u); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[8] = (aot_gpr_7 + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[8]); aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_7 + static_cast(0))); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[9] = (ctx.gpr[8] + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[9]); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[8] + static_cast(0))); aot_gpr_5 = (aot_gpr_5 << 8u); aot_gpr_5 = (aot_gpr_7 | aot_gpr_5); aot_gpr_5 = (aot_gpr_5 & 65535u); aot_gpr_5 = (aot_gpr_5 << 16u); aot_gpr_4 = (aot_gpr_4 | aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(20), aot_gpr_4); goto L_089D3F14; L_089D3F14: 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_089D3F1C: aot_gpr_29 = (aot_gpr_29 + static_cast(-48)); { const std::uint32_t aot_run_words[4]{ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } ctx.gpr[17] = (0u | 0u); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(8))); aot_gpr_5 = (static_cast(aot_gpr_5) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_5 != 0u; ctx.gpr[16] = (aot_gpr_4 | 0u); if (branch_taken) { (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0116_entry, 116u, 5u, 0x089D4024u>(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_089D3F44; } L_089D3F44: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(96))); { const bool branch_taken = aot_gpr_4 != 0u; ctx.gpr[18] = (0u | 65535u); if (branch_taken) { goto L_089D3F70; } goto L_089D3F50; } L_089D3F50: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(10)))))); aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089D3F60u); aot_gpr_4 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 680u, 0x089D3F60u, 0x08A9C6FCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); #else recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3F60u) goto L_089D3F60; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D3F60: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(4), static_cast(aot_gpr_4)); aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_089D3F70; L_089D3F70: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(176))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[18]; aot_gpr_6 = (aot_gpr_4 | 0u); if (branch_taken) { goto L_089D3F84; } goto L_089D3F7C; } L_089D3F7C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (0u | 0u); if (branch_taken) { goto L_089D3F98; } goto L_089D3F84; } L_089D3F84: aot_gpr_4 = (2237u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x089D3F94u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(3)))))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0182. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 684u, 0x089D3F94u, 0x08ADCA6Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); #else recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3F94u) goto L_089D3F94; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D3F94: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_089D3F98; L_089D3F98: if (aot_gpr_4 == 0u) { ctx.gpr[17] = (0u | 1u); (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0116_entry, 116u, 5u, 0x089D4024u>(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_089D3FA0; L_089D3FA0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(96))); if (aot_gpr_4 != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(176))); goto L_089D3FD0; } goto L_089D3FAC; L_089D3FAC: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(10)))))); aot_gpr_6 = (aot_gpr_29 + static_cast(17)); aot_gpr_31 = (0x089D3FBCu); aot_gpr_4 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 688u, 0x089D3FBCu, 0x08A9C6FCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); #else recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3FBCu) goto L_089D3FBC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D3FBC: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(17))); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(4), static_cast(aot_gpr_4)); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(176))); goto L_089D3FD0; L_089D3FD0: { const bool branch_taken = aot_gpr_4 != ctx.gpr[18]; aot_gpr_6 = (aot_gpr_4 | 0u); if (branch_taken) { goto L_089D3FE8; } goto L_089D3FD8; } L_089D3FD8: aot_gpr_4 = (0u | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(108))); { const bool branch_taken = 0u == 0u; ctx.gpr[16] = (ctx.gpr[16] + static_cast(136)); if (branch_taken) { (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0116_entry, 116u, 2u, 0x089D4004u>(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_089D3FE8; } L_089D3FE8: aot_gpr_4 = (2237u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x089D3FF8u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(3)))))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0182. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 692u, 0x089D3FF8u, 0x08ADCA6Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); #else recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3FF8u) goto L_089D3FF8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089D3FF8: aot_gpr_4 = (ctx.gpr[2] | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(108))); ctx.pc = 0x089D4000u; AOT_REGCACHE_SYNC_OUT(); return; } #undef AOT_REGCACHE_SYNC_IN #undef AOT_REGCACHE_SYNC_OUT void recomp_unit_0115(Runtime &rt, AllegrexContext &ctx) { auto aot_mem = rt.memory().aot_fast_view(); recomp_unit_0115_entry(rt, ctx, 0u, aot_mem); } void register_generated_unit_115(Runtime &runtime) { runtime.register_generated_unit(115u, 0x089D0000u, 16384u, &recomp_unit_0115, &recomp_unit_0115_entry); // PSPRECOMP_V812_COMPACT_REGISTRATION: same entry set, looped once in Runtime instead of source-expanded calls. runtime.register_generated_entry_mask(0x089D0000u, &recomp_unit_0115, "recomp_unit_0115", kEntryMasks_recomp_unit_0115, 64u); } } // namespace psprecomp