#include "psprecomp/runtime.hpp" #include "generated_units.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_0225[64] = { 0x0000000010529245ull, 0x0001000000000000ull, 0x0000028984100000ull, 0x8504000201000000ull, 0x440000008A589441ull, 0x0008040040024401ull, 0x0000000000000000ull, 0x0008019011010A45ull, 0x2949210200200401ull, 0x4254924921448208ull, 0x0008423010102020ull, 0x4948000000000000ull, 0x0000051801644482ull, 0x0000010000000000ull, 0x0000000000000000ull, 0x0440900240040000ull, 0x120824210994A409ull, 0x2088222084042222ull, 0x2120210452102112ull, 0x0101004012110888ull, 0x0040820422040100ull, 0x0020104201040404ull, 0x0000000000880000ull, 0x0000200000000000ull, 0x0000004284400001ull, 0x0000000000000000ull, 0x010A100000000000ull, 0x0000000000000000ull, 0x000840040C000000ull, 0x2041008080004002ull, 0x0040010400000800ull, 0x000E410000000000ull, 0x0000000000000009ull, 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 0x0040000400010000ull, 0x0000000001400000ull, 0x000040100007C040ull, 0x0000104002801000ull, 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000810204080ull, 0x0000000000000000ull, 0x0000000000000120ull, 0x0000080000000000ull, 0x8102040000000000ull, 0x0000000000000040ull, 0x0000000000000000ull, 0x0000000000000000ull, 0x0000022400000000ull, 0x0400420448502004ull, 0x0040040040040040ull, 0x0404400400414004ull, 0x0002000080000000ull, 0x4885020002008010ull, 0x0010001200101030ull, 0x4240C12418022090ull, 0xE061484240C06048ull, 0x081210C130084A40ull, 0x0080A10A06088020ull, 0x22090308C0311802ull, }; static constexpr std::uint16_t kEntryBases_recomp_unit_0225[64] = { 1u, 11u, 12u, 19u, 25u, 38u, 45u, 45u, 57u, 69u, 87u, 96u, 101u, 113u, 114u, 114u, 121u, 138u, 151u, 165u, 175u, 183u, 191u, 193u, 194u, 200u, 200u, 204u, 204u, 209u, 216u, 220u, 225u, 227u, 227u, 227u, 227u, 227u, 230u, 232u, 240u, 245u, 245u, 245u, 245u, 250u, 250u, 252u, 253u, 257u, 258u, 258u, 258u, 261u, 271u, 276u, 284u, 286u, 295u, 302u, 316u, 333u, 347u, 358u, }; void recomp_unit_0225_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=12,25,3,19,5,18 fprs= gpr_occ=154 fpr_occ=0 gpr_total=249 fpr_total=0 std::uint32_t aot_gpr_12 = ctx.gpr[12]; std::uint32_t aot_gpr_25 = ctx.gpr[25]; std::uint32_t aot_gpr_3 = ctx.gpr[3]; std::uint32_t aot_gpr_19 = ctx.gpr[19]; std::uint32_t aot_gpr_5 = ctx.gpr[5]; std::uint32_t aot_gpr_18 = ctx.gpr[18]; bool aot_regcache_valid = true; #define AOT_REGCACHE_SYNC_OUT() do { if (aot_regcache_valid) { ctx.gpr[12] = aot_gpr_12; ctx.gpr[25] = aot_gpr_25; ctx.gpr[3] = aot_gpr_3; ctx.gpr[19] = aot_gpr_19; ctx.gpr[5] = aot_gpr_5; ctx.gpr[18] = aot_gpr_18; } } while (false) #define AOT_REGCACHE_SYNC_IN() do { if (aot_regcache_valid) { aot_gpr_12 = ctx.gpr[12]; aot_gpr_25 = ctx.gpr[25]; aot_gpr_3 = ctx.gpr[3]; aot_gpr_19 = ctx.gpr[19]; aot_gpr_5 = ctx.gpr[5]; aot_gpr_18 = ctx.gpr[18]; } } 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 - 0x08B88000u; entry_id = 0u; if (entry_delta < 16376u && (entry_delta & 3u) == 0u) { const std::uint32_t entry_slot = entry_delta >> 2u; const std::uint32_t entry_group = entry_slot >> 6u; const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0225[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_0225[entry_group] + std::popcount(entry_mask & (entry_bit - 1ull))); } } } switch (entry_id) { case 1u: goto L_08B88000; case 2u: goto L_08B88008; case 3u: goto L_08B88018; case 4u: goto L_08B88024; case 5u: goto L_08B88030; case 6u: goto L_08B8803C; case 7u: goto L_08B88044; case 8u: goto L_08B88050; case 9u: goto L_08B88058; case 10u: goto L_08B88070; case 11u: goto L_08B881C0; case 12u: goto L_08B88250; case 13u: goto L_08B88268; case 14u: goto L_08B8827C; case 15u: goto L_08B88280; case 16u: goto L_08B8828C; case 17u: goto L_08B8829C; case 18u: goto L_08B882A4; case 19u: goto L_08B88360; case 20u: goto L_08B88384; case 21u: goto L_08B883C8; case 22u: goto L_08B883E0; case 23u: goto L_08B883E8; case 24u: goto L_08B883FC; case 25u: goto L_08B88400; case 26u: goto L_08B88418; case 27u: goto L_08B88428; case 28u: goto L_08B88430; case 29u: goto L_08B8843C; case 30u: goto L_08B8844C; case 31u: goto L_08B88450; case 32u: goto L_08B88458; case 33u: goto L_08B88464; case 34u: goto L_08B8846C; case 35u: goto L_08B8847C; case 36u: goto L_08B884E8; case 37u: goto L_08B884F8; case 38u: goto L_08B88500; case 39u: goto L_08B88528; case 40u: goto L_08B88538; case 41u: goto L_08B88544; case 42u: goto L_08B88578; case 43u: goto L_08B885A8; case 44u: goto L_08B885CC; case 45u: goto L_08B88700; case 46u: goto L_08B88708; case 47u: goto L_08B88718; case 48u: goto L_08B88724; case 49u: goto L_08B8872C; case 50u: goto L_08B88740; case 51u: goto L_08B88760; case 52u: goto L_08B88770; case 53u: goto L_08B88790; case 54u: goto L_08B8879C; case 55u: goto L_08B887A0; case 56u: goto L_08B887CC; case 57u: goto L_08B88800; case 58u: goto L_08B88828; case 59u: goto L_08B88854; case 60u: goto L_08B88884; case 61u: goto L_08B888A0; case 62u: goto L_08B888B4; case 63u: goto L_08B888C0; case 64u: goto L_08B888CC; case 65u: goto L_08B888D8; case 66u: goto L_08B888E0; case 67u: goto L_08B888EC; case 68u: goto L_08B888F4; case 69u: goto L_08B8890C; case 70u: goto L_08B88924; case 71u: goto L_08B8893C; case 72u: goto L_08B88948; case 73u: goto L_08B88958; case 74u: goto L_08B88960; case 75u: goto L_08B88974; case 76u: goto L_08B88980; case 77u: goto L_08B8898C; case 78u: goto L_08B88998; case 79u: goto L_08B889A4; case 80u: goto L_08B889B0; case 81u: goto L_08B889BC; case 82u: goto L_08B889C8; case 83u: goto L_08B889D0; case 84u: goto L_08B889D8; case 85u: goto L_08B889E4; case 86u: goto L_08B889F8; case 87u: goto L_08B88A14; case 88u: goto L_08B88A34; case 89u: goto L_08B88A50; case 90u: goto L_08B88A70; case 91u: goto L_08B88A90; case 92u: goto L_08B88A94; case 93u: goto L_08B88AA4; case 94u: goto L_08B88AB8; case 95u: goto L_08B88ACC; case 96u: goto L_08B88BCC; case 97u: goto L_08B88BD8; case 98u: goto L_08B88BE0; case 99u: goto L_08B88BEC; case 100u: goto L_08B88BF8; case 101u: goto L_08B88C04; case 102u: goto L_08B88C1C; case 103u: goto L_08B88C28; case 104u: goto L_08B88C38; case 105u: goto L_08B88C48; case 106u: goto L_08B88C54; case 107u: goto L_08B88C58; case 108u: goto L_08B88C60; case 109u: goto L_08B88C8C; case 110u: goto L_08B88C90; case 111u: goto L_08B88CA0; case 112u: goto L_08B88CA8; case 113u: goto L_08B88DA0; case 114u: goto L_08B88F48; case 115u: goto L_08B88F78; case 116u: goto L_08B88F84; case 117u: goto L_08B88FB0; case 118u: goto L_08B88FBC; case 119u: goto L_08B88FD8; case 120u: goto L_08B88FE8; case 121u: goto L_08B89000; case 122u: goto L_08B8900C; case 123u: goto L_08B89028; case 124u: goto L_08B89034; case 125u: goto L_08B8903C; case 126u: goto L_08B89048; case 127u: goto L_08B89050; case 128u: goto L_08B8905C; case 129u: goto L_08B89060; case 130u: goto L_08B8906C; case 131u: goto L_08B89080; case 132u: goto L_08B89094; case 133u: goto L_08B890A8; case 134u: goto L_08B890B4; case 135u: goto L_08B890CC; case 136u: goto L_08B890E4; case 137u: goto L_08B890F0; case 138u: goto L_08B89104; case 139u: goto L_08B89114; case 140u: goto L_08B89124; case 141u: goto L_08B89134; case 142u: goto L_08B89148; case 143u: goto L_08B89168; case 144u: goto L_08B8917C; case 145u: goto L_08B89194; case 146u: goto L_08B891A4; case 147u: goto L_08B891B4; case 148u: goto L_08B891CC; case 149u: goto L_08B891DC; case 150u: goto L_08B891F4; case 151u: goto L_08B89204; case 152u: goto L_08B89210; case 153u: goto L_08B89220; case 154u: goto L_08B89234; case 155u: goto L_08B89250; case 156u: goto L_08B89264; case 157u: goto L_08B89270; case 158u: goto L_08B89278; case 159u: goto L_08B89288; case 160u: goto L_08B892A0; case 161u: goto L_08B892B4; case 162u: goto L_08B892D4; case 163u: goto L_08B892E0; case 164u: goto L_08B892F4; case 165u: goto L_08B8930C; case 166u: goto L_08B8931C; case 167u: goto L_08B8932C; case 168u: goto L_08B89340; case 169u: goto L_08B89350; case 170u: goto L_08B89364; case 171u: goto L_08B89370; case 172u: goto L_08B89398; case 173u: goto L_08B893C0; case 174u: goto L_08B893E0; case 175u: goto L_08B89420; case 176u: goto L_08B89448; case 177u: goto L_08B89464; case 178u: goto L_08B89474; case 179u: goto L_08B89488; case 180u: goto L_08B894A4; case 181u: goto L_08B894BC; case 182u: goto L_08B894D8; case 183u: goto L_08B89508; case 184u: goto L_08B89528; case 185u: goto L_08B89548; case 186u: goto L_08B89560; case 187u: goto L_08B89584; case 188u: goto L_08B89598; case 189u: goto L_08B895B0; case 190u: goto L_08B895D4; case 191u: goto L_08B8964C; case 192u: goto L_08B8965C; case 193u: goto L_08B897B4; case 194u: goto L_08B89800; case 195u: goto L_08B89858; case 196u: goto L_08B89868; case 197u: goto L_08B8987C; case 198u: goto L_08B89884; case 199u: goto L_08B89898; case 200u: goto L_08B89AB0; case 201u: goto L_08B89AC4; case 202u: goto L_08B89ACC; case 203u: goto L_08B89AE0; case 204u: goto L_08B89C68; case 205u: goto L_08B89C6C; case 206u: goto L_08B89C88; case 207u: goto L_08B89CB8; case 208u: goto L_08B89CCC; case 209u: goto L_08B89D04; case 210u: goto L_08B89D38; case 211u: goto L_08B89D7C; case 212u: goto L_08B89D9C; case 213u: goto L_08B89DC0; case 214u: goto L_08B89DD8; case 215u: goto L_08B89DF4; case 216u: goto L_08B89E2C; case 217u: goto L_08B89E88; case 218u: goto L_08B89EA0; case 219u: goto L_08B89ED8; case 220u: goto L_08B89FA0; case 221u: goto L_08B89FB8; case 222u: goto L_08B89FC4; case 223u: goto L_08B89FC8; case 224u: goto L_08B89FCC; case 225u: goto L_08B8A000; case 226u: goto L_08B8A00C; case 227u: goto L_08B8A540; case 228u: goto L_08B8A588; case 229u: goto L_08B8A5D8; case 230u: goto L_08B8A658; case 231u: goto L_08B8A660; case 232u: goto L_08B8A718; case 233u: goto L_08B8A738; case 234u: goto L_08B8A73C; case 235u: goto L_08B8A740; case 236u: goto L_08B8A744; case 237u: goto L_08B8A748; case 238u: goto L_08B8A790; case 239u: goto L_08B8A7B8; case 240u: goto L_08B8A830; case 241u: goto L_08B8A85C; case 242u: goto L_08B8A864; case 243u: goto L_08B8A898; case 244u: goto L_08B8A8B0; case 245u: goto L_08B8AC1C; case 246u: goto L_08B8AC38; case 247u: goto L_08B8AC54; case 248u: goto L_08B8AC70; case 249u: goto L_08B8AC8C; case 250u: goto L_08B8AE14; case 251u: goto L_08B8AE20; case 252u: goto L_08B8AFAC; case 253u: goto L_08B8B0A8; case 254u: goto L_08B8B0C4; case 255u: goto L_08B8B0E0; case 256u: goto L_08B8B0FC; case 257u: goto L_08B8B118; case 258u: goto L_08B8B488; case 259u: goto L_08B8B494; case 260u: goto L_08B8B4A4; case 261u: goto L_08B8B508; case 262u: goto L_08B8B534; case 263u: goto L_08B8B550; case 264u: goto L_08B8B558; case 265u: goto L_08B8B56C; case 266u: goto L_08B8B578; case 267u: goto L_08B8B588; case 268u: goto L_08B8B5A4; case 269u: goto L_08B8B5B8; case 270u: goto L_08B8B5E8; case 271u: goto L_08B8B618; case 272u: goto L_08B8B648; case 273u: goto L_08B8B678; case 274u: goto L_08B8B6A8; case 275u: goto L_08B8B6D8; case 276u: goto L_08B8B708; case 277u: goto L_08B8B738; case 278u: goto L_08B8B740; case 279u: goto L_08B8B758; case 280u: goto L_08B8B788; case 281u: goto L_08B8B7B8; case 282u: goto L_08B8B7C8; case 283u: goto L_08B8B7E8; case 284u: goto L_08B8B87C; case 285u: goto L_08B8B8C4; case 286u: goto L_08B8B910; case 287u: goto L_08B8B93C; case 288u: goto L_08B8B964; case 289u: goto L_08B8B9A4; case 290u: goto L_08B8B9C0; case 291u: goto L_08B8B9C8; case 292u: goto L_08B8B9DC; case 293u: goto L_08B8B9EC; case 294u: goto L_08B8B9F8; case 295u: goto L_08B8BA10; case 296u: goto L_08B8BA14; case 297u: goto L_08B8BA30; case 298u: goto L_08B8BA50; case 299u: goto L_08B8BA84; case 300u: goto L_08B8BA90; case 301u: goto L_08B8BAD0; case 302u: goto L_08B8BB10; case 303u: goto L_08B8BB1C; case 304u: goto L_08B8BB34; case 305u: goto L_08B8BB44; case 306u: goto L_08B8BB6C; case 307u: goto L_08B8BB70; case 308u: goto L_08B8BB88; case 309u: goto L_08B8BB94; case 310u: goto L_08B8BBA0; case 311u: goto L_08B8BBB8; case 312u: goto L_08B8BBBC; case 313u: goto L_08B8BBD8; case 314u: goto L_08B8BBE4; case 315u: goto L_08B8BBF8; case 316u: goto L_08B8BC0C; case 317u: goto L_08B8BC18; case 318u: goto L_08B8BC34; case 319u: goto L_08B8BC38; case 320u: goto L_08B8BC58; case 321u: goto L_08B8BC5C; case 322u: goto L_08B8BC78; case 323u: goto L_08B8BC84; case 324u: goto L_08B8BC98; case 325u: goto L_08B8BCAC; case 326u: goto L_08B8BCB8; case 327u: goto L_08B8BCC0; case 328u: goto L_08B8BCD4; case 329u: goto L_08B8BCD8; case 330u: goto L_08B8BCF4; case 331u: goto L_08B8BCF8; case 332u: goto L_08B8BCFC; case 333u: goto L_08B8BD18; case 334u: goto L_08B8BD24; case 335u: goto L_08B8BD2C; case 336u: goto L_08B8BD38; case 337u: goto L_08B8BD4C; case 338u: goto L_08B8BD70; case 339u: goto L_08B8BD74; case 340u: goto L_08B8BD80; case 341u: goto L_08B8BD98; case 342u: goto L_08B8BD9C; case 343u: goto L_08B8BDB0; case 344u: goto L_08B8BDC4; case 345u: goto L_08B8BDD0; case 346u: goto L_08B8BDEC; case 347u: goto L_08B8BE14; case 348u: goto L_08B8BE3C; case 349u: goto L_08B8BE4C; case 350u: goto L_08B8BE64; case 351u: goto L_08B8BE68; case 352u: goto L_08B8BE84; case 353u: goto L_08B8BE8C; case 354u: goto L_08B8BEA0; case 355u: goto L_08B8BEB4; case 356u: goto L_08B8BEBC; case 357u: goto L_08B8BEDC; case 358u: goto L_08B8BF04; case 359u: goto L_08B8BF2C; case 360u: goto L_08B8BF30; case 361u: goto L_08B8BF40; case 362u: goto L_08B8BF50; case 363u: goto L_08B8BF54; case 364u: goto L_08B8BF78; case 365u: goto L_08B8BF7C; case 366u: goto L_08B8BF8C; case 367u: goto L_08B8BFA0; case 368u: goto L_08B8BFA4; case 369u: goto L_08B8BFC0; case 370u: goto L_08B8BFCC; case 371u: goto L_08B8BFE4; case 372u: goto L_08B8BFF4; 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 - 0x08B88000u; if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { ctx.pc = jump_target; AOT_REGCACHE_SYNC_OUT(); // PSPRECOMP_V814_CONTINUATION_RETURN Runtime::AotTailContinuation aot_cont_v814{}; if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { #if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) [[clang::musttail]] return aot_cont_v814.function( rt, ctx, aot_cont_v814.entry_id, aot_mem); #else aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; #endif } return; } } local_pc = jump_target; entry_id = 0u; goto LOCAL_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; AOT_REGCACHE_SYNC_OUT(); if (local_redispatch_rounds < 7u && rt.continue_generated_local_dispatch(ctx)) { ++local_redispatch_rounds; AOT_REGCACHE_SYNC_IN(); local_transfers = 0u; local_pc = ctx.pc; entry_id = 0u; goto LOCAL_DISPATCH; } return; L_08B88000: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88000u, 0x73726579u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88008: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88008u, 0x67676F54u, "vfpu1 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88018: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88018u, 0x6E6F4372u, "vfpu3 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88024: ctx.execute_vfpu_compare3_ct<73u, 115u, 76u, 1u, 6u>(); if (aot_gpr_3 == aot_gpr_12) { ctx.execute_vfpu_vscl_ct<108u, 97u, 121u, 1u>(); (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0231_entry, 231u, 11u, 0x08BA05B8u>(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_08B88030; L_08B88030: ctx.execute_vfpu_compare3_ct<114u, 68u, 114u, 1u, 6u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88034u, 0x6E696E77u, "vfpu3 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8803C: if (aot_gpr_3 == ctx.gpr[16]) { ctx.execute_vfpu_vscl_ct<108u, 97u, 121u, 1u>(); (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0231_entry, 231u, 9u, 0x08BA0574u>(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_08B88044; L_08B88044: ctx.execute_vfpu_vcmp_ct<67u, 111u, 1u, 2u>(); if (aot_gpr_3 != aot_gpr_18) { AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8804Cu, 0x7261436Fu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0232_entry, 232u, 186u, 0x08BA5608u>(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_08B88050; L_08B88050: ctx.execute_vfpu_compare3_ct<67u, 111u, 108u, 1u, 6u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88054u, 0x00007275u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88058: ctx.execute_vfpu_vcmp_ct<115u, 80u, 1u, 9u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8805Cu, 0x72657961u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88070: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88074u, 0x08B166C8u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B881C0: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B881C4u, 0x08B186E0u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88250: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88250u, 0x2061754Cu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88268: ctx.gpr[4] = (ctx.gpr[26] < static_cast(20301) ? 1u : 0u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8826Cu, 0x4142494Cu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8827C: { const std::int64_t product = static_cast(static_cast(0u)) * static_cast(static_cast(0u)); ctx.lo = static_cast(product); ctx.hi = static_cast(static_cast(product) >> 32u); } goto L_08B88280; L_08B88280: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88280u, 0x43534944u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8828C: aot_gpr_5 = (ctx.gpr[26] < static_cast(19777) ? 1u : 0u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88290u, 0x44525355u, "unsupported CFC1 control register"); AOT_REGCACHE_SYNC_OUT(); return; if (ctx.gpr[17] == ctx.gpr[15]) { AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88298u, 0x41444E55u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0230_entry, 230u, 11u, 0x08B9CBBCu>(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_08B8829C; L_08B8829C: if (ctx.gpr[1] == ctx.gpr[15]) { AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B882A0u, 0x4D2F5053u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0229_entry, 229u, 21u, 0x08B987F0u>(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_08B882A4; L_08B882A4: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B882A4u, 0x4C55444Fu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88360: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88364u, 0x08BB2C0Cu, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88384: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88388u, 0x08BB2C54u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B883C8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B883CCu, 0x08B2542Cu, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B883E0: if (ctx.gpr[27] == ctx.gpr[4]) { AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B883E4u, 0x74697270u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0231_entry, 231u, 43u, 0x08BA14E8u>(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_08B883E8; L_08B883E8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B883E8u, 0x696C4265u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B883FC: goto L_08B88400; L_08B88400: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88400u, 0x4C646441u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88418: ctx.execute_vfpu_compare3_ct<82u, 101u, 109u, 1u, 6u>(); ctx.execute_vfpu_compare3_ct<118u, 101u, 76u, 1u, 6u>(); if (aot_gpr_19 == aot_gpr_12) { AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88424u, 0x72616461u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0231_entry, 231u, 17u, 0x08BA09B0u>(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_08B88428; L_08B88428: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88428u, 0x70696C42u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88430: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88430u, 0x42746553u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8843C: ctx.execute_vfpu_compare3_ct<108u, 101u, 70u, 1u, 6u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88440u, 0x616C5072u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8844C: goto L_08B88450; L_08B88450: if (aot_gpr_19 == ctx.gpr[20]) { AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88454u, 0x72616461u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0231_entry, 231u, 53u, 0x08BA19A0u>(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_08B88458; L_08B88458: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88458u, 0x70696C42u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88464: if (aot_gpr_19 == ctx.gpr[20]) { AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88468u, 0x72616461u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0231_entry, 231u, 54u, 0x08BA19B4u>(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_08B8846C; L_08B8846C: ctx.execute_vfpu_vscl_ct<84u, 111u, 84u, 1u>(); ctx.execute_vfpu_compare3_ct<97u, 109u, 67u, 1u, 6u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88474u, 0x72756F6Cu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8847C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88480u, 0x08B24924u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B884E8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B884E8u, 0x4E414843u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B884F8: if (ctx.gpr[26] == ctx.gpr[31]) { (void)(ctx.gpr[9] < static_cast(21573) ? 1u : 0u); (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0230_entry, 230u, 15u, 0x08B9CE50u>(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_08B88500; L_08B88500: ctx.execute_vfpu_vscl_ct<32u, 84u, 104u, 1u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88504u, 0x61206572u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88528: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88528u, 0x4E414843u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88538: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88538u, 0x435F5450u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88544: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88544u, 0x202D2054u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88578: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8857Cu, 0x08B26D18u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B885A8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B885ACu, 0x08B36A88u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B885CC: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B885D0u, 0x08B36AF8u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88700: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88704u, 0x504D4153u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88708: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88708u, 0x495F454Cu, "cop2/vfpu not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88718: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88718u, 0x444E5552u, "unsupported CFC1 control register"); AOT_REGCACHE_SYNC_OUT(); return; if (static_cast(ctx.gpr[2]) > 0) { AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88720u, 0x4D5C7325u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0230_entry, 230u, 18u, 0x08B9D824u>(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_08B88724; L_08B88724: if (ctx.gpr[2] == ctx.gpr[1]) { AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88728u, 0x492E7325u, "cop2/vfpu not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0229_entry, 229u, 41u, 0x08B99464u>(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_08B8872C; L_08B8872C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8872Cu, 0x0000474Du, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88740: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88744u, 0x08B3CEBCu, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88760: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88768u, 0x00002928u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88770: ctx.execute_vfpu_vscl_ct<71u, 101u, 110u, 1u>(); ctx.execute_vfpu_vscl_ct<114u, 97u, 116u, 1u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88778u, 0x72656D45u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88790: ctx.execute_vfpu_vscl_ct<71u, 101u, 110u, 1u>(); ctx.execute_vfpu_vscl_ct<114u, 97u, 116u, 1u>(); if (aot_gpr_19 == aot_gpr_5) { ctx.execute_vfpu_compare3_ct<97u, 110u, 100u, 1u, 6u>(); (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0232_entry, 232u, 4u, 0x08BA40D8u>(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_08B887A0; L_08B8879C: ctx.execute_vfpu_compare3_ct<97u, 110u, 100u, 1u, 6u>(); goto L_08B887A0; L_08B887A0: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B887A0u, 0x7261436Du, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B887CC: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B887D0u, 0x08B468F8u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88800: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88804u, 0x08B4692Cu, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88828: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8882Cu, 0x08B4D4E4u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88854: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88858u, 0x08B4D18Cu, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88884: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88888u, 0x08B4D4CCu, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B888A0: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B888A0u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B888B4: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B888B4u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B888C0: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B888C0u, 0x4D643365u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B888CC: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B888CCu, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B888D8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B888D8u, 0x68746C61u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B888E0: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B888E0u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B888EC: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B888ECu, 0x69746973u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B888F4: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B888F4u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8890C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8890Cu, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88924: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88924u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8893C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8893Cu, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88948: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88948u, 0x746E6563u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88958: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88958u, 0x72657961u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88960: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88960u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88974: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88974u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88980: ctx.execute_vfpu_vscl_ct<101u, 114u, 103u, 1u>(); if (ctx.gpr[27] == aot_gpr_25) { AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88988u, 0x00706F74u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0231_entry, 231u, 45u, 0x08BA1740u>(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_08B8898C; L_08B8898C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8898Cu, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88998: ctx.execute_vfpu_compare3_ct<114u, 68u, 111u, 1u, 6u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8899Cu, 0x636F4C72u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B889A4: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B889A4u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B889B0: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B889B0u, 0x4E736572u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B889BC: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B889BCu, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B889C8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B889C8u, 0x72756F6Cu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B889D0: if (aot_gpr_19 != ctx.gpr[20]) { AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B889D4u, 0x63696865u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0231_entry, 231u, 86u, 0x08BA1EF0u>(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_08B889D8; L_08B889D8: ctx.execute_vfpu_compare3_ct<108u, 101u, 67u, 1u, 6u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B889DCu, 0x72756F6Cu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B889E4: ctx.execute_vfpu_vscl_ct<73u, 115u, 86u, 1u>(); ctx.execute_vfpu_vcmp_ct<105u, 99u, 1u, 8u>(); ctx.execute_vfpu_vscl_ct<101u, 87u, 114u, 1u>(); ctx.execute_vfpu_vec3_ct<99u, 107u, 101u, 1u, 2u>(); goto L_08B889F8; L_08B889F8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B889F8u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88A14: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88A14u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88A34: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88A34u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88A50: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88A50u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88A70: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88A70u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88A90: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88A90u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88A94: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88A94u, 0x41656C63u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88AA4: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88AA4u, 0x696D694Cu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88AB8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88AB8u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88ACC: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88AD0u, 0x08B52A68u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88BCC: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88BCCu, 0x4C524143u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88BD8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88BD8u, 0x44454B43u, "unsupported CFC1 control register"); AOT_REGCACHE_SYNC_OUT(); return; goto L_08B88BE0; L_08B88BE0: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88BE0u, 0x4C524143u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88BEC: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88BECu, 0x4F4C5F31u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88BF8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88BF8u, 0x4C524143u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88C04: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88C04u, 0x4F4C5F32u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88C1C: ctx.gpr[4] = (aot_mem.aot_direct_load_word_left(ctx.gpr[20] + static_cast(-32143), ctx.gpr[4])); aot_gpr_18 = (ctx.gpr[17] & 12850u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88C24u, 0x44454B46u, "unsupported CFC1 control register"); AOT_REGCACHE_SYNC_OUT(); return; goto L_08B88C28; L_08B88C28: (void)(static_cast(static_cast(0u) >> 0u)); if (!([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_ok_ = ctx.execute_signed_add(0u, 0u, 0u); AOT_REGCACHE_SYNC_IN(); return aot_regcache_ok_; }())) { rt.arithmetic_overflow(0x08B88C2Cu, 0x00000020u); AOT_REGCACHE_SYNC_OUT(); return; } (void)(0u << 16u); (void)(static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(0u + static_cast(0)))))); goto L_08B88C38; L_08B88C38: (void)(static_cast(static_cast(0u) >> 0u)); if (!([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_ok_ = ctx.execute_signed_add(0u, 0u, 0u); AOT_REGCACHE_SYNC_IN(); return aot_regcache_ok_; }())) { rt.arithmetic_overflow(0x08B88C3Cu, 0x00000020u); AOT_REGCACHE_SYNC_OUT(); return; } (void)(0u << 16u); (void)(static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(0u + static_cast(0)))))); goto L_08B88C48; L_08B88C48: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88C48u, 0x72657375u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88C54: (void)(static_cast(static_cast(0u) >> 1u)); goto L_08B88C58; L_08B88C58: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88C58u, 0x6978655Fu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88C60: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88C60u, 0x6362696Cu, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88C8C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88C90u, 0x72657355u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; ctx.pc = 0x02D54A70u; (void)([&]() { 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_; }()); AOT_REGCACHE_SYNC_OUT(); return; L_08B88C90: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88C90u, 0x72657355u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88CA0: (void)(static_cast(static_cast(0u) >> 1u)); goto L_08B88CA8; L_08B88CA8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88CA8u, 0x676E750Au, "vfpu1 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88DA0: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88DA4u, 0x08B56BE8u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88F48: ctx.execute_vfpu_vscl_ct<97u, 115u, 115u, 1u>(); ctx.execute_vfpu_compare3_ct<114u, 116u, 105u, 1u, 6u>(); ctx.gpr[2] = (ctx.gpr[9] + static_cast(8302)); ctx.execute_vfpu_vhdp_ct<115u, 34u, 32u, 1u>(); ctx.execute_vfpu_vscl_ct<97u, 105u, 108u, 1u>(); ctx.execute_vfpu_vhdp_ct<100u, 58u, 32u, 1u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88F60u, 0x20656C69u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88F78: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88F78u, 0x4A532D43u, "cop2/vfpu not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88F84: ctx.gpr[9] = (static_cast(static_cast(ctx.gpr[16]) >> 9u)); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88F88u, 0x494A2D43u, "cop2/vfpu not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88FB0: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88FB0u, 0x20746F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88FBC: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88FBCu, 0x73206F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88FD8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88FD8u, 0x73206F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B88FE8: ctx.execute_vfpu_vscl_ct<73u, 110u, 116u, 1u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B88FECu, 0x70757272u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89000: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89000u, 0x204F2F49u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8900C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8900Cu, 0x73206F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89028: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89028u, 0x20677241u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89034: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89034u, 0x6E6F6C20u, "vfpu3 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8903C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8903Cu, 0x63657845u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89048: ctx.execute_vfpu_compare3_ct<101u, 114u, 114u, 1u, 6u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8904Cu, 0x00000072u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89050: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89050u, 0x20646142u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8905C: if (!([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_ok_ = ctx.execute_signed_sub(12u, 3u, 18u); AOT_REGCACHE_SYNC_IN(); return aot_regcache_ok_; }())) { rt.arithmetic_overflow(0x08B8905Cu, 0x00726562u); AOT_REGCACHE_SYNC_OUT(); return; } goto L_08B89060; L_08B89060: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89060u, 0x63206F4Eu, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8906C: ctx.execute_vfpu_vminmax_ct<78u, 111u, 32u, 1u, false>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89070u, 0x2065726Fu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89080: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89080u, 0x20746F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89094: ctx.execute_vfpu_vminmax_ct<80u, 101u, 114u, 1u, false>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89098u, 0x69737369u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B890A8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B890A8u, 0x20646142u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B890B4: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B890B4u, 0x636F6C42u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B890CC: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B890CCu, 0x69766544u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B890E4: ctx.execute_vfpu_vscl_ct<70u, 105u, 108u, 1u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B890E8u, 0x69786520u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B890F0: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B890F0u, 0x736F7243u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89104: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89104u, 0x73206F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89114: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89114u, 0x20746F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89124: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89124u, 0x61207349u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89134: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89134u, 0x61766E49u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89148: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89148u, 0x206F6F54u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89168: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89168u, 0x206F6F54u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8917C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8917Cu, 0x20746F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89194: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89194u, 0x74786554u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B891A4: ctx.execute_vfpu_vscl_ct<70u, 105u, 108u, 1u>(); ctx.execute_vfpu_compare3_ct<32u, 116u, 111u, 1u, 6u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B891ACu, 0x72616C20u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B891B4: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B891B4u, 0x73206F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B891CC: ctx.execute_vfpu_vscl_ct<73u, 108u, 108u, 1u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B891D0u, 0x206C6167u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B891DC: ctx.execute_vfpu_vec3_ct<82u, 101u, 97u, 1u, 2u>(); ctx.execute_vfpu_vcmp_ct<111u, 110u, 1u, 13u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B891E4u, 0x69662079u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B891F4: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B891F4u, 0x206F6F54u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89204: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89204u, 0x6B6F7242u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89210: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89210u, 0x6874614Du, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89220: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89220u, 0x75736552u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89234: ctx.execute_vfpu_vminmax_ct<78u, 111u, 32u, 1u, false>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89238u, 0x61737365u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89250: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89250u, 0x6E656449u, "vfpu3 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89264: ctx.execute_vfpu_vec3_ct<68u, 101u, 97u, 1u, 2u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89268u, 0x6B636F6Cu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89270: ctx.execute_vfpu_vcmp_ct<111u, 32u, 1u, 14u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89274u, 0x006B636Fu, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89278: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89278u, 0x20746F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89288: ctx.execute_vfpu_vscl_ct<83u, 116u, 114u, 1u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8928Cu, 0x69206D61u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B892A0: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B892A0u, 0x73206F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B892B4: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B892B4u, 0x6863614Du, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B892D4: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B892D4u, 0x70206F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B892E0: ctx.execute_vfpu_compare3_ct<82u, 101u, 115u, 1u, 6u>(); ctx.execute_vfpu_vscl_ct<117u, 114u, 99u, 1u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B892E8u, 0x20736920u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B892F4: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B892F4u, 0x74726956u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8930C: ctx.execute_vfpu_vscl_ct<65u, 100u, 118u, 1u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89310u, 0x73697472u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8931C: ctx.execute_vfpu_compare3_ct<83u, 114u, 109u, 1u, 6u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89320u, 0x20746E75u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8932C: ctx.execute_vfpu_vminmax_ct<67u, 111u, 109u, 1u, false>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89330u, 0x63696E75u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89340: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89340u, 0x746F7250u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89350: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89350u, 0x746C754Du, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89364: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89364u, 0x20646142u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89370: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89370u, 0x6E6E6143u, "vfpu3 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89398: ctx.execute_vfpu_vscl_ct<65u, 99u, 99u, 1u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8939Cu, 0x6E697373u, "vfpu3 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B893C0: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B893C0u, 0x62696C2Eu, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B893E0: ctx.execute_vfpu_vscl_ct<65u, 116u, 116u, 1u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B893E4u, 0x6974706Du, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89420: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89420u, 0x6E6E6143u, "vfpu3 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89448: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89448u, 0x636E7546u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89464: ctx.execute_vfpu_vminmax_ct<78u, 111u, 32u, 1u, false>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89468u, 0x2065726Fu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89474: ctx.execute_vfpu_vscl_ct<68u, 105u, 114u, 1u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89478u, 0x726F7463u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89488: ctx.execute_vfpu_vscl_ct<70u, 105u, 108u, 1u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8948Cu, 0x20726F20u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B894A4: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B894A4u, 0x206F6F54u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B894BC: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B894BCu, 0x62206F4Eu, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B894D8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B894D8u, 0x72646441u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89508: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89508u, 0x746F7250u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89528: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89528u, 0x6B636F53u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89548: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89548u, 0x746F7250u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89560: ctx.gpr[14] = (ctx.gpr[27] + static_cast(24899)); ctx.execute_vfpu_vscl_ct<116u, 32u, 115u, 1u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89568u, 0x6120646Eu, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89584: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89584u, 0x6E6E6F43u, "vfpu3 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89598: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89598u, 0x72646441u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B895B0: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B895B0u, 0x74666F53u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B895D4: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B895DCu, 0x08B583ECu, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8964C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89650u, 0x08B58630u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8965C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89660u, 0x08B58680u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B897B4: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B897B8u, 0x08B58D9Cu, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89800: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89804u, 0x08B58D9Cu, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89858: ctx.execute_vfpu_vhdp_ct<45u, 73u, 110u, 1u>(); jump_target = aot_gpr_3; ctx.gpr[13] = (0x08B89868u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89864u, 0x004E614Eu, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; 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 == 0x08B89868u) goto L_08B89868; AOT_REGCACHE_SYNC_OUT(); return; L_08B89868: aot_gpr_18 = (aot_gpr_25 & 12592u); ctx.gpr[22] = (aot_gpr_25 | 13620u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89870u, 0x62613938u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8987C: ctx.execute_vfpu_vcmp_ct<110u, 117u, 1u, 8u>(); aot_gpr_5 = (static_cast(0u) > static_cast(0u) ? 0u : 0u); goto L_08B89884; L_08B89884: aot_gpr_18 = (aot_gpr_25 & 12592u); ctx.gpr[22] = (aot_gpr_25 | 13620u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8988Cu, 0x42413938u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89898: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89898u, 0x20677562u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89AB0: aot_gpr_18 = (aot_gpr_25 & 12592u); ctx.gpr[22] = (aot_gpr_25 | 13620u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89AB8u, 0x62613938u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89AC4: ctx.execute_vfpu_vcmp_ct<110u, 117u, 1u, 8u>(); aot_gpr_5 = (static_cast(0u) > static_cast(0u) ? 0u : 0u); goto L_08B89ACC; L_08B89ACC: aot_gpr_18 = (aot_gpr_25 & 12592u); ctx.gpr[22] = (aot_gpr_25 | 13620u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89AD4u, 0x42413938u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89AE0: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89AE0u, 0x20677562u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89C68: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89C68u, 0x0000002Eu, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89C6C: (void)(static_cast(static_cast(0u) >> 1u)); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89C74u, 0x494A2D43u, "cop2/vfpu not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89C88: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89C88u, 0x40C90FDBu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89CB8: ctx.gpr[11] = (static_cast(aot_gpr_25) < 17162 ? 1u : 0u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89CBCu, 0x6E757220u, "vfpu3 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89CCC: ctx.execute_vfpu_vminmax_ct<116u, 101u, 114u, 1u, false>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89CD0u, 0x74616E69u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89D04: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89D04u, 0x75746572u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89D38: ctx.execute_vfpu_vscl_ct<105u, 110u, 116u, 1u>(); ctx.execute_vfpu_vcmp_ct<110u, 97u, 1u, 2u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89D40u, 0x72726520u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89D7C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89D7Cu, 0x6E69616Du, "vfpu3 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89D9C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89D9Cu, 0x75702061u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89DC0: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89DC0u, 0x61766E69u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89DD8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89DD8u, 0x61766E69u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89DF4: ctx.execute_vfpu_vscl_ct<102u, 114u, 101u, 1u>(); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89DF8u, 0x20676E69u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89E2C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89E2Cu, 0x203A7325u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89E88: goto L_08B89EA0; L_08B89EA0: (void)(ctx.gpr[2] << 4u); (void)(static_cast(static_cast(aot_gpr_3) >> 12u)); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89EA8u, 0x04040404u, "regimm? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89ED8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89ED8u, 0x06060606u, "regimm? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89FA0: aot_gpr_18 = (31068u << 16u); (void)(aot_gpr_3 & 25440u); ctx.gpr[20] = (aot_mem.aot_direct_load_word_left(ctx.gpr[11] + static_cast(31614), ctx.gpr[20])); ctx.gpr[23] = (aot_gpr_19 & 34931u); aot_gpr_18 = (ctx.gpr[17] & 12850u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89FB4u, 0x44454B46u, "unsupported CFC1 control register"); AOT_REGCACHE_SYNC_OUT(); return; goto L_08B89FB8; L_08B89FB8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89FB8u, 0x62733C00u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89FC4: if (ctx.gpr[27] != aot_gpr_5) { AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89FC8u, 0x4D657661u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0231_entry, 231u, 107u, 0x08BA2D14u>(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_08B89FCC; L_08B89FC8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89FC8u, 0x4D657661u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B89FCC: ctx.gpr[13] = (aot_gpr_3 + ctx.gpr[14]); aot_gpr_18 = (31068u << 16u); (void)(aot_gpr_3 & 25440u); ctx.gpr[20] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[11] + static_cast(31614)))))); aot_gpr_18 = (ctx.gpr[17] & 34163u); aot_gpr_18 = (ctx.gpr[17] & 12850u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B89FE4u, 0x44454B46u, "unsupported CFC1 control register"); AOT_REGCACHE_SYNC_OUT(); return; goto L_08B8A000; L_08B8A000: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8A000u, 0x0032FFF9u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8A00C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8A00Cu, 0x050A0609u, "regimm? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8A540: ctx.gpr[4] = (static_cast(ctx.gpr[4]) > static_cast(0u) ? ctx.gpr[4] : 0u); { const std::int32_t dividend = static_cast(ctx.gpr[4]); const std::int32_t divisor = static_cast(ctx.gpr[2]); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast(dividend); } else if (dividend == static_cast(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast(dividend / divisor); ctx.hi = static_cast(dividend % divisor); } } (void)(ctx.lo); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8A54Cu, 0x0084201Eu, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8A588: ctx.lo = ctx.gpr[4]; AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8A58Cu, 0x00972014u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8A5D8: goto L_08B8A658; L_08B8A658: goto L_08B8A660; L_08B8A660: goto L_08B8A718; L_08B8A718: goto L_08B8A738; L_08B8A738: goto L_08B8A73C; L_08B8A73C: goto L_08B8A740; L_08B8A740: goto L_08B8A744; L_08B8A744: goto L_08B8A748; L_08B8A748: goto L_08B8A790; L_08B8A790: goto L_08B8A7B8; L_08B8A7B8: (void)(0u << 16u); aot_gpr_12 = (52429u << 16u); (void)(0u << 16u); (void)(0u << 16u); (void)(0u << 16u); (void)(0u << 16u); aot_gpr_12 = (52429u << 16u); (void)(0u << 16u); aot_gpr_12 = (52429u << 16u); (void)(0u << 16u); aot_gpr_19 = (13107u << 16u); aot_gpr_19 = (13107u << 16u); aot_gpr_12 = (52429u << 16u); (void)(0u << 16u); (void)(0u << 16u); (void)(0u << 16u); aot_gpr_19 = (13107u << 16u); (void)(0u << 16u); (void)(0u << 16u); (void)(0u << 16u); goto L_08B8A830; L_08B8A830: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8A834u, 0x08BAA6E0u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8A85C: if (ctx.gpr[26] == aot_gpr_5) { aot_gpr_19 = (ctx.gpr[10] < static_cast(17740) ? 1u : 0u); (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0229_entry, 229u, 72u, 0x08B9B11Cu>(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_08B8A864; L_08B8A864: ctx.gpr[16] = (ctx.gpr[17] | 12597u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8A868u, 0x41544731u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8A898: aot_gpr_12 = (52429u << 16u); (void)(0u << 16u); aot_gpr_25 = (39322u << 16u); ctx.gpr[6] = (26214u << 16u); aot_gpr_25 = (39322u << 16u); aot_gpr_25 = (39322u << 16u); goto L_08B8A8B0; L_08B8A8B0: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8A8B0u, 0x000001F4u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8AC1C: jump_target = 0u; AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8AC20u, 0x000003E8u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; // 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_08B8AC38: ctx.gpr[1] = (0u << 18u); (void)(ctx.hi); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8AC44u, 0x000003E8u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8AC54: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8AC58u, 0x000003E8u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8AC70: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8AC70u, 0x000003E8u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8AC8C: (void)(ctx.hi); jump_target = 0u; AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8AC94u, 0x000003E8u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; // 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_08B8AE14: jump_target = 0u; AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8AE18u, 0x000003E8u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; // 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_08B8AE20: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8AE24u, 0x08BAACD4u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8AFAC: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8AFB4u, 0x08BAAE10u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B0A8: (void)(static_cast(static_cast(0u) >> 0u)); if (0u != 0u) (void)(0u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8B0B8u, 0x08BAAEE0u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B0C4: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8B0CCu, 0x08BAAEF0u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B0E0: ctx.pc = 0x02EABC00u; (void)([&]() { 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_; }()); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B0FC: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8B0FCu, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B118: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8B11Cu, 0x08BAAF30u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B488: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8B488u, 0x43534944u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B494: aot_gpr_5 = (ctx.gpr[26] < static_cast(19777) ? 1u : 0u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8B498u, 0x44525355u, "unsupported CFC1 control register"); AOT_REGCACHE_SYNC_OUT(); return; jump_target = ctx.gpr[1]; ctx.gpr[10] = (0x08B8B4A4u); 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 == 0x08B8B4A4u) goto L_08B8B4A4; AOT_REGCACHE_SYNC_OUT(); return; L_08B8B4A4: goto L_08B8B508; L_08B8B508: ctx.pc = 0x02EACB70u; (void)([&]() { 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_; }()); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B534: ctx.pc = 0x02EACC30u; (void)([&]() { 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_; }()); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B550: ctx.pc = 0x02EACC90u; (void)([&]() { 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_; }()); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B558: jump_target = 0u; (void)(static_cast(static_cast(0u) >> 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_08B8B56C: (void)(0u >> 0u); jump_target = 0u; ctx.gpr[31] = (0x08B8B578u); (void)(0u >> (0u & 31u)); 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 == 0x08B8B578u) goto L_08B8B578; AOT_REGCACHE_SYNC_OUT(); return; L_08B8B578: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8B578u, 0x00000005u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B588: (void)(0u >> 0u); (void)(0u >> 0u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8B590u, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B5A4: (void)(0u >> 0u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8B5A8u, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B5B8: (void)(0u << (0u & 31u)); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8B5CCu, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B5E8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8B5ECu, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B618: (void)(static_cast(static_cast(0u) >> 0u)); (void)(0u >> 0u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8B630u, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B648: (void)(0u >> 0u); (void)(0u >> 0u); goto L_08B8B678; L_08B8B678: (void)(0u >> 0u); goto L_08B8B6A8; L_08B8B6A8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8B6A8u, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B6D8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8B6D8u, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B708: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8B708u, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B738: goto L_08B8B740; L_08B8B740: (void)(static_cast(std::countl_zero(0u))); goto L_08B8B758; L_08B8B758: (void)(0u << 16u); aot_gpr_19 = (13107u << 16u); // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. aot_gpr_19 = (13107u << 16u); aot_gpr_12 = (52429u << 16u); // PSP CACHE is a no-op in coherent host memory. aot_gpr_12 = (52429u << 16u); // PSP CACHE is a no-op in coherent host memory. goto L_08B8B788; L_08B8B788: // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. aot_gpr_19 = (13107u << 16u); (void)(0u << 16u); aot_gpr_19 = (13107u << 16u); aot_gpr_12 = (52429u << 16u); aot_gpr_12 = (52429u << 16u); // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. goto L_08B8B7B8; L_08B8B7B8: (void)(0u << 16u); (void)(0u << 16u); goto L_08B8B7C8; L_08B8B7C8: (void)(0u << 16u); aot_gpr_25 = (39322u << 16u); ctx.gpr[6] = (26214u << 16u); aot_gpr_12 = (52429u << 16u); ctx.gpr[6] = (26214u << 16u); aot_gpr_19 = (13107u << 16u); aot_gpr_25 = (39322u << 16u); aot_gpr_25 = (39322u << 16u); goto L_08B8B7E8; L_08B8B7E8: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8B7ECu, 0x42700000u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B87C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8B87Cu, 0x42C80000u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B8C4: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8B8C4u, 0xC1C80000u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B910: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8B910u, 0x40000000u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B93C: (void)(0u << 16u); aot_gpr_25 = (39322u << 16u); aot_gpr_25 = (39322u << 16u); aot_gpr_19 = (13107u << 16u); aot_gpr_19 = (13107u << 16u); aot_gpr_12 = (52429u << 16u); (void)(0u << 16u); aot_gpr_12 = (52429u << 16u); aot_gpr_12 = (52429u << 16u); goto L_08B8B964; L_08B8B964: (void)(0u << 16u); (void)(0u << 16u); aot_gpr_19 = (13107u << 16u); aot_gpr_25 = (39322u << 16u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8B974u, 0x40000000u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8B9A4: aot_gpr_12 = (52429u << 16u); aot_gpr_5 = (7864u << 16u); aot_gpr_12 = (52429u << 16u); aot_gpr_19 = (13107u << 16u); aot_gpr_25 = (39322u << 16u); ctx.gpr[10] = (15729u << 16u); goto L_08B8B9C0; L_08B8B9C0: aot_gpr_12 = (52429u << 16u); (void)(0u << 16u); goto L_08B8B9C8; L_08B8B9C8: ctx.gpr[6] = (26214u << 16u); ctx.gpr[6] = (26214u << 16u); (void)(0u << 16u); aot_gpr_25 = (39322u << 16u); goto L_08B8B9DC; L_08B8B9DC: aot_gpr_5 = (7864u << 16u); ctx.gpr[21] = (49807u << 16u); aot_gpr_19 = (13107u << 16u); aot_gpr_12 = (52429u << 16u); goto L_08B8B9EC; L_08B8B9EC: (void)(0u << 16u); aot_gpr_19 = (13107u << 16u); ctx.gpr[6] = (26214u << 16u); goto L_08B8B9F8; L_08B8B9F8: (void)(0u << 16u); aot_gpr_25 = (39322u << 16u); (void)(0u << 16u); ctx.gpr[6] = (26214u << 16u); (void)(0u << 16u); aot_gpr_12 = (52429u << 16u); goto L_08B8BA10; L_08B8BA10: goto L_08B8BA14; L_08B8BA14: goto L_08B8BA30; L_08B8BA30: // PSP CACHE is a no-op in coherent host memory. goto L_08B8BA50; L_08B8BA50: goto L_08B8BA84; L_08B8BA84: goto L_08B8BA90; L_08B8BA90: goto L_08B8BAD0; L_08B8BAD0: goto L_08B8BB10; L_08B8BB10: (void)(aot_gpr_5 << 0u); (void)(static_cast(static_cast(0u) >> (0u & 31u))); (void)(static_cast(static_cast(ctx.gpr[2]) >> (0u & 31u))); goto L_08B8BB1C; L_08B8BB1C: (void)(ctx.gpr[7] << 0u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BB20u, 0x00000005u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BB34: (void)(ctx.gpr[9] << 0u); (void)(0u << (0u & 31u)); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BB3Cu, 0x00090005u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BB44: (void)(0u >> (0u & 31u)); (void)(aot_gpr_5 >> (0u & 31u)); (void)(ctx.gpr[6] << 0u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BB50u, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BB6C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BB6Cu, 0x00080005u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BB70: // PSP CACHE is a no-op in coherent host memory. ctx.gpr[24] = (20972u << 16u); aot_gpr_5 = (58196u << 16u); ctx.gpr[24] = (20972u << 16u); // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. goto L_08B8BB88; L_08B8BB88: aot_gpr_5 = (58196u << 16u); aot_gpr_5 = (58196u << 16u); goto L_08B8BB94; L_08B8BB94: // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. goto L_08B8BBA0; L_08B8BBA0: (void)(ctx.gpr[1] << 0u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BBA4u, 0x00010005u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BBB8: // PSP CACHE is a no-op in coherent host memory. goto L_08B8BBBC; L_08B8BBBC: aot_gpr_12 = (52429u << 16u); // PSP CACHE is a no-op in coherent host memory. aot_gpr_12 = (52429u << 16u); // PSP CACHE is a no-op in coherent host memory. aot_gpr_12 = (52429u << 16u); // PSP CACHE is a no-op in coherent host memory. aot_gpr_12 = (52429u << 16u); goto L_08B8BBD8; L_08B8BBD8: aot_gpr_12 = (52429u << 16u); aot_gpr_12 = (52429u << 16u); // PSP CACHE is a no-op in coherent host memory. goto L_08B8BBE4; L_08B8BBE4: // PSP CACHE is a no-op in coherent host memory. aot_gpr_12 = (52429u << 16u); aot_gpr_12 = (52429u << 16u); // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. goto L_08B8BBF8; L_08B8BBF8: aot_gpr_12 = (52429u << 16u); aot_gpr_12 = (52429u << 16u); aot_gpr_12 = (52429u << 16u); aot_gpr_12 = (52429u << 16u); // PSP CACHE is a no-op in coherent host memory. goto L_08B8BC0C; L_08B8BC0C: // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. goto L_08B8BC18; L_08B8BC18: // PSP CACHE is a no-op in coherent host memory. aot_gpr_3 = (55050u << 16u); // PSP CACHE is a no-op in coherent host memory. aot_gpr_3 = (55050u << 16u); // PSP CACHE is a no-op in coherent host memory. aot_gpr_3 = (55050u << 16u); // PSP CACHE is a no-op in coherent host memory. goto L_08B8BC34; L_08B8BC34: aot_gpr_3 = (55050u << 16u); goto L_08B8BC38; L_08B8BC38: aot_gpr_3 = (55050u << 16u); aot_gpr_3 = (55050u << 16u); // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. aot_gpr_3 = (55050u << 16u); aot_gpr_3 = (55050u << 16u); // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. goto L_08B8BC58; L_08B8BC58: aot_gpr_3 = (55050u << 16u); goto L_08B8BC5C; L_08B8BC5C: aot_gpr_3 = (55050u << 16u); aot_gpr_3 = (55050u << 16u); aot_gpr_3 = (55050u << 16u); // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. goto L_08B8BC78; L_08B8BC78: // PSP CACHE is a no-op in coherent host memory. aot_gpr_25 = (39322u << 16u); // PSP CACHE is a no-op in coherent host memory. goto L_08B8BC84; L_08B8BC84: aot_gpr_25 = (39322u << 16u); // PSP CACHE is a no-op in coherent host memory. aot_gpr_25 = (39322u << 16u); // PSP CACHE is a no-op in coherent host memory. aot_gpr_25 = (39322u << 16u); goto L_08B8BC98; L_08B8BC98: aot_gpr_25 = (39322u << 16u); aot_gpr_25 = (39322u << 16u); // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. aot_gpr_25 = (39322u << 16u); goto L_08B8BCAC; L_08B8BCAC: aot_gpr_25 = (39322u << 16u); // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. goto L_08B8BCB8; L_08B8BCB8: aot_gpr_25 = (39322u << 16u); aot_gpr_25 = (39322u << 16u); goto L_08B8BCC0; L_08B8BCC0: aot_gpr_25 = (39322u << 16u); aot_gpr_25 = (39322u << 16u); // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. goto L_08B8BCD4; L_08B8BCD4: // PSP CACHE is a no-op in coherent host memory. goto L_08B8BCD8; L_08B8BCD8: // PSP CACHE is a no-op in coherent host memory. aot_gpr_3 = (55050u << 16u); // PSP CACHE is a no-op in coherent host memory. aot_gpr_3 = (55050u << 16u); // PSP CACHE is a no-op in coherent host memory. aot_gpr_3 = (55050u << 16u); // PSP CACHE is a no-op in coherent host memory. goto L_08B8BCF4; L_08B8BCF4: aot_gpr_3 = (55050u << 16u); goto L_08B8BCF8; L_08B8BCF8: aot_gpr_3 = (55050u << 16u); goto L_08B8BCFC; L_08B8BCFC: aot_gpr_3 = (55050u << 16u); // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. aot_gpr_3 = (55050u << 16u); aot_gpr_3 = (55050u << 16u); // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. goto L_08B8BD18; L_08B8BD18: aot_gpr_12 = (52429u << 16u); aot_gpr_12 = (52429u << 16u); aot_gpr_12 = (52429u << 16u); goto L_08B8BD24; L_08B8BD24: aot_gpr_12 = (52429u << 16u); // PSP CACHE is a no-op in coherent host memory. goto L_08B8BD2C; L_08B8BD2C: // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. goto L_08B8BD38; L_08B8BD38: (void)(ctx.gpr[2] << 0u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BD3Cu, 0x00010001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BD4C: (void)(static_cast(static_cast(aot_gpr_5) >> (0u & 31u))); (void)(ctx.gpr[7] >> 0u); (void)(static_cast(static_cast(ctx.gpr[2]) >> 0u)); (void)(ctx.gpr[7] >> (0u & 31u)); (void)(0u << (0u & 31u)); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BD60u, 0x00040001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BD70: (void)(0u >> 0u); goto L_08B8BD74; L_08B8BD74: (void)(aot_gpr_5 >> (0u & 31u)); (void)(static_cast(static_cast(ctx.gpr[6]) >> (0u & 31u))); (void)(aot_gpr_5 << (0u & 31u)); goto L_08B8BD80; L_08B8BD80: // PSP CACHE is a no-op in coherent host memory. aot_gpr_3 = (55050u << 16u); ctx.gpr[21] = (49807u << 16u); aot_gpr_3 = (55050u << 16u); // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. goto L_08B8BD98; L_08B8BD98: ctx.gpr[21] = (49807u << 16u); goto L_08B8BD9C; L_08B8BD9C: ctx.gpr[21] = (49807u << 16u); // PSP CACHE is a no-op in coherent host memory. // PSP CACHE is a no-op in coherent host memory. goto L_08B8BDB0; L_08B8BDB0: (void)(ctx.gpr[1] << 0u); (void)(static_cast(static_cast(0u) >> 0u)); (void)(static_cast(static_cast(ctx.gpr[2]) >> 0u)); (void)(aot_gpr_5 << (0u & 31u)); (void)(static_cast(static_cast(ctx.gpr[4]) >> (0u & 31u))); goto L_08B8BDC4; L_08B8BDC4: (void)(static_cast(static_cast(ctx.gpr[6]) >> (0u & 31u))); goto L_08B8BDD0; L_08B8BDD0: (void)(0u << 0u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BDE8u, 0x01010101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BDEC: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BDECu, 0x01010101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BE14: (void)(0u << 0u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BE1Cu, 0x01010101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BE3C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BE3Cu, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BE4C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BE4Cu, 0x01010101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BE64: (void)(0u << 0u); goto L_08B8BE68; L_08B8BE68: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BE68u, 0x01010101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BE84: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BE84u, 0x00000101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BE8C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BE8Cu, 0x00010101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BEA0: goto L_08B8BEB4; L_08B8BEB4: (void)(ctx.gpr[1] << 0u); goto L_08B8BEBC; L_08B8BEBC: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BEBCu, 0x00000101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BEDC: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BEDCu, 0x00000101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BF04: (void)(ctx.gpr[1] << 0u); AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BF08u, 0x00000101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BF2C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BF2Cu, 0x00000101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BF30: goto L_08B8BF40; L_08B8BF40: goto L_08B8BF50; L_08B8BF50: goto L_08B8BF54; L_08B8BF54: aot_gpr_12 = (52429u << 16u); aot_gpr_25 = (39322u << 16u); aot_gpr_12 = (52429u << 16u); ctx.gpr[6] = (26214u << 16u); (void)(0u << 16u); aot_gpr_25 = (39322u << 16u); (void)(839u << 16u); (void)(0u << 16u); goto L_08B8BF78; L_08B8BF78: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BF78u, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BF7C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BF7Cu, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BF8C: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BF8Cu, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BFA0: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BFA0u, 0x00001770u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BFA4: AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8BFA4u, 0x00001770u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; L_08B8BFC0: goto L_08B8BFCC; L_08B8BFCC: goto L_08B8BFE4; L_08B8BFE4: goto L_08B8BFF4; L_08B8BFF4: ctx.pc = 0x08B8C000u; AOT_REGCACHE_SYNC_OUT(); return; } #undef AOT_REGCACHE_SYNC_IN #undef AOT_REGCACHE_SYNC_OUT void recomp_unit_0225(Runtime &rt, AllegrexContext &ctx) { auto aot_mem = rt.memory().aot_fast_view(); recomp_unit_0225_entry(rt, ctx, 0u, aot_mem); } void register_generated_unit_225(Runtime &runtime) { runtime.register_generated_unit(225u, 0x08B88000u, 16384u, &recomp_unit_0225, &recomp_unit_0225_entry); // PSPRECOMP_V812_COMPACT_REGISTRATION: same entry set, looped once in Runtime instead of source-expanded calls. runtime.register_generated_entry_mask(0x08B88000u, &recomp_unit_0225, "recomp_unit_0225", kEntryMasks_recomp_unit_0225, 64u); } } // namespace psprecomp