mirror of
https://github.com/jessicanataliagta/PSPRecomp
synced 2026-09-26 16:49:34 -04:00
430e45bdb0
more updates
8329 lines
428 KiB
C++
8329 lines
428 KiB
C++
#include "psprecomp/runtime.hpp"
|
|
#include "generated_units.hpp"
|
|
#include "vcs_resident_regions.hpp"
|
|
#include <bit>
|
|
#include <cmath>
|
|
#include <cstdint>
|
|
#include <limits>
|
|
|
|
namespace psprecomp {
|
|
// PSPRECOMP_V811_COMPACT_DISPATCH: 64-slot occupancy masks + per-group base id.
|
|
static constexpr std::uint64_t kEntryMasks_recomp_unit_0202[64] = {
|
|
0x12028629090010A1ull, 0x900404010900040Cull, 0x12000830480A0188ull, 0x0400004800202100ull,
|
|
0x0901402102401010ull, 0x0041002822240106ull, 0x2008101200208889ull, 0x224010A404112811ull,
|
|
0x044044A401040000ull, 0x00418240500C2401ull, 0x20B0210280680048ull, 0x5A44480041240480ull,
|
|
0x2240040609014031ull, 0x11200818240500D2ull, 0x888900418240500Cull, 0x8288900415448020ull,
|
|
0x62514A2240021480ull, 0x0120000101824050ull, 0x0368122D0A152000ull, 0x124480200030480Aull,
|
|
0x0022448000432404ull, 0x4248290122482100ull, 0x0092240004008282ull, 0x2425124852208400ull,
|
|
0x9004124480200828ull, 0x4480104912008248ull, 0x48020609014030A9ull, 0x01848020C1202806ull,
|
|
0x028041200830480Aull, 0xA0124AA294490104ull, 0x04214480842290A0ull, 0x20020C1202806090ull,
|
|
0x90040AA204142411ull, 0x0000010609014030ull, 0x5125A14292000402ull, 0x0848828245048911ull,
|
|
0x0082080200004342ull, 0xA01A920041010212ull, 0x02000090042C0840ull, 0x0804000001000048ull,
|
|
0x05048A8B42852400ull, 0x9004000086841091ull, 0x6090140309004000ull, 0x5509000820224010ull,
|
|
0x1200801200808CA0ull, 0x2020004802024010ull, 0x2401042848480201ull, 0x0008040000010610ull,
|
|
0x1050548A8B428524ull, 0x0900400008684109ull, 0x8401200081048008ull, 0x8000200000100814ull,
|
|
0x11404888A8B42854ull, 0x2400400008A4AC24ull, 0x0415292008119024ull, 0x1824050340480082ull,
|
|
0x0818240503448008ull, 0x1000480081000480ull, 0x40D4480208092008ull, 0x1010024001060901ull,
|
|
0x0910480204110900ull, 0x3545444C22009002ull, 0x1120200858108140ull, 0x0020010000004000ull,
|
|
};
|
|
static constexpr std::uint16_t kEntryBases_recomp_unit_0202[64] = {
|
|
1u, 16u, 26u, 38u, 44u, 54u, 65u, 76u, 90u, 99u, 111u, 124u, 138u, 151u, 165u, 179u,
|
|
193u, 209u, 218u, 235u, 247u, 258u, 272u, 282u, 297u, 309u, 322u, 337u, 350u, 362u, 380u, 394u,
|
|
406u, 421u, 430u, 446u, 462u, 471u, 485u, 494u, 499u, 516u, 528u, 539u, 551u, 562u, 570u, 582u,
|
|
588u, 608u, 619u, 628u, 634u, 653u, 666u, 681u, 694u, 707u, 714u, 727u, 737u, 748u, 765u, 777u,
|
|
};
|
|
void recomp_unit_0202_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) {
|
|
// PSPRECOMP_AOT_REGCACHE_BEGIN
|
|
// PSPRECOMP_AOT_REGCACHE_META gprs=4,5,16,31,29,17 fprs=12,13,14,30 gpr_occ=4751 fpr_occ=205 gpr_total=6319 fpr_total=353
|
|
std::uint32_t aot_gpr_4 = ctx.gpr[4];
|
|
std::uint32_t aot_gpr_5 = ctx.gpr[5];
|
|
std::uint32_t aot_gpr_16 = ctx.gpr[16];
|
|
std::uint32_t aot_gpr_31 = ctx.gpr[31];
|
|
std::uint32_t aot_gpr_29 = ctx.gpr[29];
|
|
std::uint32_t aot_gpr_17 = ctx.gpr[17];
|
|
float aot_fpr_12 = ctx.fpr[12];
|
|
float aot_fpr_13 = ctx.fpr[13];
|
|
float aot_fpr_14 = ctx.fpr[14];
|
|
float aot_fpr_30 = ctx.fpr[30];
|
|
bool aot_regcache_valid = true;
|
|
#define AOT_REGCACHE_SYNC_OUT() do { if (aot_regcache_valid) { ctx.gpr[4] = aot_gpr_4; ctx.gpr[5] = aot_gpr_5; ctx.gpr[16] = aot_gpr_16; ctx.gpr[31] = aot_gpr_31; ctx.gpr[29] = aot_gpr_29; ctx.gpr[17] = aot_gpr_17; ctx.fpr[12] = aot_fpr_12; ctx.fpr[13] = aot_fpr_13; ctx.fpr[14] = aot_fpr_14; ctx.fpr[30] = aot_fpr_30; } } while (false)
|
|
#define AOT_REGCACHE_SYNC_IN() do { if (aot_regcache_valid) { aot_gpr_4 = ctx.gpr[4]; aot_gpr_5 = ctx.gpr[5]; aot_gpr_16 = ctx.gpr[16]; aot_gpr_31 = ctx.gpr[31]; aot_gpr_29 = ctx.gpr[29]; aot_gpr_17 = ctx.gpr[17]; aot_fpr_12 = ctx.fpr[12]; aot_fpr_13 = ctx.fpr[13]; aot_fpr_14 = ctx.fpr[14]; aot_fpr_30 = ctx.fpr[30]; } } 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 - 0x08B2C000u;
|
|
entry_id = 0u;
|
|
if (entry_delta < 16344u && (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_0202[entry_group];
|
|
const std::uint64_t entry_bit = 1ull << (entry_slot & 63u);
|
|
if ((entry_mask & entry_bit) != 0u) {
|
|
entry_id = static_cast<std::uint16_t>(
|
|
kEntryBases_recomp_unit_0202[entry_group] +
|
|
std::popcount(entry_mask & (entry_bit - 1ull)));
|
|
}
|
|
}
|
|
}
|
|
switch (entry_id) {
|
|
case 1u: goto L_08B2C000;
|
|
case 2u: goto L_08B2C014;
|
|
case 3u: goto L_08B2C01C;
|
|
case 4u: goto L_08B2C030;
|
|
case 5u: goto L_08B2C060;
|
|
case 6u: goto L_08B2C06C;
|
|
case 7u: goto L_08B2C080;
|
|
case 8u: goto L_08B2C08C;
|
|
case 9u: goto L_08B2C094;
|
|
case 10u: goto L_08B2C0A4;
|
|
case 11u: goto L_08B2C0A8;
|
|
case 12u: goto L_08B2C0BC;
|
|
case 13u: goto L_08B2C0C4;
|
|
case 14u: goto L_08B2C0E4;
|
|
case 15u: goto L_08B2C0F0;
|
|
case 16u: goto L_08B2C108;
|
|
case 17u: goto L_08B2C10C;
|
|
case 18u: goto L_08B2C128;
|
|
case 19u: goto L_08B2C160;
|
|
case 20u: goto L_08B2C16C;
|
|
case 21u: goto L_08B2C180;
|
|
case 22u: goto L_08B2C1A8;
|
|
case 23u: goto L_08B2C1C8;
|
|
case 24u: goto L_08B2C1F0;
|
|
case 25u: goto L_08B2C1FC;
|
|
case 26u: goto L_08B2C20C;
|
|
case 27u: goto L_08B2C21C;
|
|
case 28u: goto L_08B2C220;
|
|
case 29u: goto L_08B2C244;
|
|
case 30u: goto L_08B2C24C;
|
|
case 31u: goto L_08B2C26C;
|
|
case 32u: goto L_08B2C278;
|
|
case 33u: goto L_08B2C290;
|
|
case 34u: goto L_08B2C294;
|
|
case 35u: goto L_08B2C2AC;
|
|
case 36u: goto L_08B2C2E4;
|
|
case 37u: goto L_08B2C2F0;
|
|
case 38u: goto L_08B2C320;
|
|
case 39u: goto L_08B2C334;
|
|
case 40u: goto L_08B2C354;
|
|
case 41u: goto L_08B2C38C;
|
|
case 42u: goto L_08B2C398;
|
|
case 43u: goto L_08B2C3E8;
|
|
case 44u: goto L_08B2C410;
|
|
case 45u: goto L_08B2C430;
|
|
case 46u: goto L_08B2C458;
|
|
case 47u: goto L_08B2C464;
|
|
case 48u: goto L_08B2C480;
|
|
case 49u: goto L_08B2C494;
|
|
case 50u: goto L_08B2C4B8;
|
|
case 51u: goto L_08B2C4C0;
|
|
case 52u: goto L_08B2C4E0;
|
|
case 53u: goto L_08B2C4EC;
|
|
case 54u: goto L_08B2C504;
|
|
case 55u: goto L_08B2C508;
|
|
case 56u: goto L_08B2C520;
|
|
case 57u: goto L_08B2C548;
|
|
case 58u: goto L_08B2C554;
|
|
case 59u: goto L_08B2C564;
|
|
case 60u: goto L_08B2C574;
|
|
case 61u: goto L_08B2C58C;
|
|
case 62u: goto L_08B2C594;
|
|
case 63u: goto L_08B2C5C0;
|
|
case 64u: goto L_08B2C5D8;
|
|
case 65u: goto L_08B2C600;
|
|
case 66u: goto L_08B2C60C;
|
|
case 67u: goto L_08B2C61C;
|
|
case 68u: goto L_08B2C62C;
|
|
case 69u: goto L_08B2C63C;
|
|
case 70u: goto L_08B2C654;
|
|
case 71u: goto L_08B2C684;
|
|
case 72u: goto L_08B2C690;
|
|
case 73u: goto L_08B2C6B0;
|
|
case 74u: goto L_08B2C6CC;
|
|
case 75u: goto L_08B2C6F4;
|
|
case 76u: goto L_08B2C700;
|
|
case 77u: goto L_08B2C710;
|
|
case 78u: goto L_08B2C72C;
|
|
case 79u: goto L_08B2C734;
|
|
case 80u: goto L_08B2C740;
|
|
case 81u: goto L_08B2C750;
|
|
case 82u: goto L_08B2C768;
|
|
case 83u: goto L_08B2C788;
|
|
case 84u: goto L_08B2C794;
|
|
case 85u: goto L_08B2C79C;
|
|
case 86u: goto L_08B2C7B0;
|
|
case 87u: goto L_08B2C7D8;
|
|
case 88u: goto L_08B2C7E4;
|
|
case 89u: goto L_08B2C7F4;
|
|
case 90u: goto L_08B2C848;
|
|
case 91u: goto L_08B2C860;
|
|
case 92u: goto L_08B2C888;
|
|
case 93u: goto L_08B2C894;
|
|
case 94u: goto L_08B2C89C;
|
|
case 95u: goto L_08B2C8A8;
|
|
case 96u: goto L_08B2C8B8;
|
|
case 97u: goto L_08B2C8D8;
|
|
case 98u: goto L_08B2C8E8;
|
|
case 99u: goto L_08B2C900;
|
|
case 100u: goto L_08B2C928;
|
|
case 101u: goto L_08B2C934;
|
|
case 102u: goto L_08B2C948;
|
|
case 103u: goto L_08B2C94C;
|
|
case 104u: goto L_08B2C970;
|
|
case 105u: goto L_08B2C978;
|
|
case 106u: goto L_08B2C998;
|
|
case 107u: goto L_08B2C9A4;
|
|
case 108u: goto L_08B2C9BC;
|
|
case 109u: goto L_08B2C9C0;
|
|
case 110u: goto L_08B2C9D8;
|
|
case 111u: goto L_08B2CA0C;
|
|
case 112u: goto L_08B2CA18;
|
|
case 113u: goto L_08B2CA4C;
|
|
case 114u: goto L_08B2CA54;
|
|
case 115u: goto L_08B2CA58;
|
|
case 116u: goto L_08B2CA7C;
|
|
case 117u: goto L_08B2CA84;
|
|
case 118u: goto L_08B2CAA0;
|
|
case 119u: goto L_08B2CAB4;
|
|
case 120u: goto L_08B2CAD0;
|
|
case 121u: goto L_08B2CAD4;
|
|
case 122u: goto L_08B2CADC;
|
|
case 123u: goto L_08B2CAF4;
|
|
case 124u: goto L_08B2CB1C;
|
|
case 125u: goto L_08B2CB28;
|
|
case 126u: goto L_08B2CB48;
|
|
case 127u: goto L_08B2CB54;
|
|
case 128u: goto L_08B2CB60;
|
|
case 129u: goto L_08B2CB78;
|
|
case 130u: goto L_08B2CBAC;
|
|
case 131u: goto L_08B2CBB8;
|
|
case 132u: goto L_08B2CBC8;
|
|
case 133u: goto L_08B2CBD8;
|
|
case 134u: goto L_08B2CBE4;
|
|
case 135u: goto L_08B2CBEC;
|
|
case 136u: goto L_08B2CBF0;
|
|
case 137u: goto L_08B2CBF8;
|
|
case 138u: goto L_08B2CC00;
|
|
case 139u: goto L_08B2CC10;
|
|
case 140u: goto L_08B2CC14;
|
|
case 141u: goto L_08B2CC38;
|
|
case 142u: goto L_08B2CC40;
|
|
case 143u: goto L_08B2CC60;
|
|
case 144u: goto L_08B2CC6C;
|
|
case 145u: goto L_08B2CC84;
|
|
case 146u: goto L_08B2CC88;
|
|
case 147u: goto L_08B2CCA8;
|
|
case 148u: goto L_08B2CCD8;
|
|
case 149u: goto L_08B2CCE4;
|
|
case 150u: goto L_08B2CCF4;
|
|
case 151u: goto L_08B2CD04;
|
|
case 152u: goto L_08B2CD10;
|
|
case 153u: goto L_08B2CD18;
|
|
case 154u: goto L_08B2CD1C;
|
|
case 155u: goto L_08B2CD40;
|
|
case 156u: goto L_08B2CD48;
|
|
case 157u: goto L_08B2CD68;
|
|
case 158u: goto L_08B2CD74;
|
|
case 159u: goto L_08B2CD8C;
|
|
case 160u: goto L_08B2CD90;
|
|
case 161u: goto L_08B2CDAC;
|
|
case 162u: goto L_08B2CDD4;
|
|
case 163u: goto L_08B2CDE0;
|
|
case 164u: goto L_08B2CDF0;
|
|
case 165u: goto L_08B2CE08;
|
|
case 166u: goto L_08B2CE0C;
|
|
case 167u: goto L_08B2CE30;
|
|
case 168u: goto L_08B2CE38;
|
|
case 169u: goto L_08B2CE58;
|
|
case 170u: goto L_08B2CE64;
|
|
case 171u: goto L_08B2CE7C;
|
|
case 172u: goto L_08B2CE80;
|
|
case 173u: goto L_08B2CE98;
|
|
case 174u: goto L_08B2CEC0;
|
|
case 175u: goto L_08B2CECC;
|
|
case 176u: goto L_08B2CEDC;
|
|
case 177u: goto L_08B2CEEC;
|
|
case 178u: goto L_08B2CEFC;
|
|
case 179u: goto L_08B2CF14;
|
|
case 180u: goto L_08B2CF3C;
|
|
case 181u: goto L_08B2CF48;
|
|
case 182u: goto L_08B2CF58;
|
|
case 183u: goto L_08B2CF60;
|
|
case 184u: goto L_08B2CF68;
|
|
case 185u: goto L_08B2CF70;
|
|
case 186u: goto L_08B2CF88;
|
|
case 187u: goto L_08B2CFB0;
|
|
case 188u: goto L_08B2CFBC;
|
|
case 189u: goto L_08B2CFCC;
|
|
case 190u: goto L_08B2CFDC;
|
|
case 191u: goto L_08B2CFE4;
|
|
case 192u: goto L_08B2CFFC;
|
|
case 193u: goto L_08B2D01C;
|
|
case 194u: goto L_08B2D028;
|
|
case 195u: goto L_08B2D030;
|
|
case 196u: goto L_08B2D044;
|
|
case 197u: goto L_08B2D078;
|
|
case 198u: goto L_08B2D084;
|
|
case 199u: goto L_08B2D094;
|
|
case 200u: goto L_08B2D0A4;
|
|
case 201u: goto L_08B2D0AC;
|
|
case 202u: goto L_08B2D0B8;
|
|
case 203u: goto L_08B2D0C0;
|
|
case 204u: goto L_08B2D0D0;
|
|
case 205u: goto L_08B2D0D8;
|
|
case 206u: goto L_08B2D0E4;
|
|
case 207u: goto L_08B2D0F4;
|
|
case 208u: goto L_08B2D0F8;
|
|
case 209u: goto L_08B2D110;
|
|
case 210u: goto L_08B2D118;
|
|
case 211u: goto L_08B2D138;
|
|
case 212u: goto L_08B2D144;
|
|
case 213u: goto L_08B2D15C;
|
|
case 214u: goto L_08B2D160;
|
|
case 215u: goto L_08B2D180;
|
|
case 216u: goto L_08B2D1D4;
|
|
case 217u: goto L_08B2D1E0;
|
|
case 218u: goto L_08B2D234;
|
|
case 219u: goto L_08B2D240;
|
|
case 220u: goto L_08B2D248;
|
|
case 221u: goto L_08B2D250;
|
|
case 222u: goto L_08B2D264;
|
|
case 223u: goto L_08B2D26C;
|
|
case 224u: goto L_08B2D280;
|
|
case 225u: goto L_08B2D288;
|
|
case 226u: goto L_08B2D28C;
|
|
case 227u: goto L_08B2D294;
|
|
case 228u: goto L_08B2D2A4;
|
|
case 229u: goto L_08B2D2B0;
|
|
case 230u: goto L_08B2D2CC;
|
|
case 231u: goto L_08B2D2D4;
|
|
case 232u: goto L_08B2D2D8;
|
|
case 233u: goto L_08B2D2E0;
|
|
case 234u: goto L_08B2D2E4;
|
|
case 235u: goto L_08B2D304;
|
|
case 236u: goto L_08B2D30C;
|
|
case 237u: goto L_08B2D32C;
|
|
case 238u: goto L_08B2D338;
|
|
case 239u: goto L_08B2D350;
|
|
case 240u: goto L_08B2D354;
|
|
case 241u: goto L_08B2D394;
|
|
case 242u: goto L_08B2D3BC;
|
|
case 243u: goto L_08B2D3C8;
|
|
case 244u: goto L_08B2D3D8;
|
|
case 245u: goto L_08B2D3E4;
|
|
case 246u: goto L_08B2D3F0;
|
|
case 247u: goto L_08B2D408;
|
|
case 248u: goto L_08B2D428;
|
|
case 249u: goto L_08B2D434;
|
|
case 250u: goto L_08B2D440;
|
|
case 251u: goto L_08B2D444;
|
|
case 252u: goto L_08B2D458;
|
|
case 253u: goto L_08B2D49C;
|
|
case 254u: goto L_08B2D4A8;
|
|
case 255u: goto L_08B2D4B8;
|
|
case 256u: goto L_08B2D4C4;
|
|
case 257u: goto L_08B2D4D4;
|
|
case 258u: goto L_08B2D520;
|
|
case 259u: goto L_08B2D534;
|
|
case 260u: goto L_08B2D54C;
|
|
case 261u: goto L_08B2D558;
|
|
case 262u: goto L_08B2D564;
|
|
case 263u: goto L_08B2D574;
|
|
case 264u: goto L_08B2D580;
|
|
case 265u: goto L_08B2D5A0;
|
|
case 266u: goto L_08B2D5AC;
|
|
case 267u: goto L_08B2D5B4;
|
|
case 268u: goto L_08B2D5CC;
|
|
case 269u: goto L_08B2D5D8;
|
|
case 270u: goto L_08B2D5E4;
|
|
case 271u: goto L_08B2D5F8;
|
|
case 272u: goto L_08B2D604;
|
|
case 273u: goto L_08B2D61C;
|
|
case 274u: goto L_08B2D624;
|
|
case 275u: goto L_08B2D63C;
|
|
case 276u: goto L_08B2D668;
|
|
case 277u: goto L_08B2D6A8;
|
|
case 278u: goto L_08B2D6B4;
|
|
case 279u: goto L_08B2D6C4;
|
|
case 280u: goto L_08B2D6D0;
|
|
case 281u: goto L_08B2D6DC;
|
|
case 282u: goto L_08B2D728;
|
|
case 283u: goto L_08B2D73C;
|
|
case 284u: goto L_08B2D754;
|
|
case 285u: goto L_08B2D764;
|
|
case 286u: goto L_08B2D770;
|
|
case 287u: goto L_08B2D778;
|
|
case 288u: goto L_08B2D78C;
|
|
case 289u: goto L_08B2D798;
|
|
case 290u: goto L_08B2D7A4;
|
|
case 291u: goto L_08B2D7B0;
|
|
case 292u: goto L_08B2D7C0;
|
|
case 293u: goto L_08B2D7C8;
|
|
case 294u: goto L_08B2D7D4;
|
|
case 295u: goto L_08B2D7E8;
|
|
case 296u: goto L_08B2D7F4;
|
|
case 297u: goto L_08B2D80C;
|
|
case 298u: goto L_08B2D814;
|
|
case 299u: goto L_08B2D82C;
|
|
case 300u: goto L_08B2D854;
|
|
case 301u: goto L_08B2D87C;
|
|
case 302u: goto L_08B2D888;
|
|
case 303u: goto L_08B2D898;
|
|
case 304u: goto L_08B2D8A4;
|
|
case 305u: goto L_08B2D8B0;
|
|
case 306u: goto L_08B2D8C8;
|
|
case 307u: goto L_08B2D8F0;
|
|
case 308u: goto L_08B2D8FC;
|
|
case 309u: goto L_08B2D90C;
|
|
case 310u: goto L_08B2D918;
|
|
case 311u: goto L_08B2D924;
|
|
case 312u: goto L_08B2D93C;
|
|
case 313u: goto L_08B2D964;
|
|
case 314u: goto L_08B2D970;
|
|
case 315u: goto L_08B2D980;
|
|
case 316u: goto L_08B2D98C;
|
|
case 317u: goto L_08B2D998;
|
|
case 318u: goto L_08B2D9B0;
|
|
case 319u: goto L_08B2D9DC;
|
|
case 320u: goto L_08B2D9E8;
|
|
case 321u: goto L_08B2D9F8;
|
|
case 322u: goto L_08B2DA00;
|
|
case 323u: goto L_08B2DA0C;
|
|
case 324u: goto L_08B2DA14;
|
|
case 325u: goto L_08B2DA1C;
|
|
case 326u: goto L_08B2DA30;
|
|
case 327u: goto L_08B2DA34;
|
|
case 328u: goto L_08B2DA58;
|
|
case 329u: goto L_08B2DA60;
|
|
case 330u: goto L_08B2DA80;
|
|
case 331u: goto L_08B2DA8C;
|
|
case 332u: goto L_08B2DAA4;
|
|
case 333u: goto L_08B2DAA8;
|
|
case 334u: goto L_08B2DAC4;
|
|
case 335u: goto L_08B2DAEC;
|
|
case 336u: goto L_08B2DAF8;
|
|
case 337u: goto L_08B2DB04;
|
|
case 338u: goto L_08B2DB08;
|
|
case 339u: goto L_08B2DB2C;
|
|
case 340u: goto L_08B2DB34;
|
|
case 341u: goto L_08B2DB54;
|
|
case 342u: goto L_08B2DB60;
|
|
case 343u: goto L_08B2DB78;
|
|
case 344u: goto L_08B2DB7C;
|
|
case 345u: goto L_08B2DB94;
|
|
case 346u: goto L_08B2DBBC;
|
|
case 347u: goto L_08B2DBC8;
|
|
case 348u: goto L_08B2DBDC;
|
|
case 349u: goto L_08B2DBE0;
|
|
case 350u: goto L_08B2DC04;
|
|
case 351u: goto L_08B2DC0C;
|
|
case 352u: goto L_08B2DC2C;
|
|
case 353u: goto L_08B2DC38;
|
|
case 354u: goto L_08B2DC50;
|
|
case 355u: goto L_08B2DC54;
|
|
case 356u: goto L_08B2DC6C;
|
|
case 357u: goto L_08B2DC94;
|
|
case 358u: goto L_08B2DCA0;
|
|
case 359u: goto L_08B2DCB8;
|
|
case 360u: goto L_08B2DCDC;
|
|
case 361u: goto L_08B2DCE4;
|
|
case 362u: goto L_08B2DD08;
|
|
case 363u: goto L_08B2DD20;
|
|
case 364u: goto L_08B2DD40;
|
|
case 365u: goto L_08B2DD4C;
|
|
case 366u: goto L_08B2DD58;
|
|
case 367u: goto L_08B2DD68;
|
|
case 368u: goto L_08B2DD70;
|
|
case 369u: goto L_08B2DD7C;
|
|
case 370u: goto L_08B2DD84;
|
|
case 371u: goto L_08B2DD94;
|
|
case 372u: goto L_08B2DD9C;
|
|
case 373u: goto L_08B2DDA4;
|
|
case 374u: goto L_08B2DDAC;
|
|
case 375u: goto L_08B2DDB8;
|
|
case 376u: goto L_08B2DDC4;
|
|
case 377u: goto L_08B2DDD0;
|
|
case 378u: goto L_08B2DDF4;
|
|
case 379u: goto L_08B2DDFC;
|
|
case 380u: goto L_08B2DE14;
|
|
case 381u: goto L_08B2DE1C;
|
|
case 382u: goto L_08B2DE30;
|
|
case 383u: goto L_08B2DE3C;
|
|
case 384u: goto L_08B2DE44;
|
|
case 385u: goto L_08B2DE54;
|
|
case 386u: goto L_08B2DE68;
|
|
case 387u: goto L_08B2DE7C;
|
|
case 388u: goto L_08B2DE9C;
|
|
case 389u: goto L_08B2DEA8;
|
|
case 390u: goto L_08B2DEB8;
|
|
case 391u: goto L_08B2DEC0;
|
|
case 392u: goto L_08B2DED4;
|
|
case 393u: goto L_08B2DEE8;
|
|
case 394u: goto L_08B2DF10;
|
|
case 395u: goto L_08B2DF1C;
|
|
case 396u: goto L_08B2DF34;
|
|
case 397u: goto L_08B2DF38;
|
|
case 398u: goto L_08B2DF5C;
|
|
case 399u: goto L_08B2DF64;
|
|
case 400u: goto L_08B2DF84;
|
|
case 401u: goto L_08B2DF90;
|
|
case 402u: goto L_08B2DFA8;
|
|
case 403u: goto L_08B2DFAC;
|
|
case 404u: goto L_08B2DFC4;
|
|
case 405u: goto L_08B2DFF4;
|
|
case 406u: goto L_08B2E000;
|
|
case 407u: goto L_08B2E010;
|
|
case 408u: goto L_08B2E028;
|
|
case 409u: goto L_08B2E034;
|
|
case 410u: goto L_08B2E048;
|
|
case 411u: goto L_08B2E050;
|
|
case 412u: goto L_08B2E068;
|
|
case 413u: goto L_08B2E084;
|
|
case 414u: goto L_08B2E094;
|
|
case 415u: goto L_08B2E09C;
|
|
case 416u: goto L_08B2E0A4;
|
|
case 417u: goto L_08B2E0AC;
|
|
case 418u: goto L_08B2E0C8;
|
|
case 419u: goto L_08B2E0F0;
|
|
case 420u: goto L_08B2E0FC;
|
|
case 421u: goto L_08B2E110;
|
|
case 422u: goto L_08B2E114;
|
|
case 423u: goto L_08B2E138;
|
|
case 424u: goto L_08B2E140;
|
|
case 425u: goto L_08B2E160;
|
|
case 426u: goto L_08B2E16C;
|
|
case 427u: goto L_08B2E184;
|
|
case 428u: goto L_08B2E188;
|
|
case 429u: goto L_08B2E1A0;
|
|
case 430u: goto L_08B2E204;
|
|
case 431u: goto L_08B2E228;
|
|
case 432u: goto L_08B2E264;
|
|
case 433u: goto L_08B2E270;
|
|
case 434u: goto L_08B2E27C;
|
|
case 435u: goto L_08B2E284;
|
|
case 436u: goto L_08B2E298;
|
|
case 437u: goto L_08B2E2A0;
|
|
case 438u: goto L_08B2E2B4;
|
|
case 439u: goto L_08B2E2BC;
|
|
case 440u: goto L_08B2E2C0;
|
|
case 441u: goto L_08B2E2C8;
|
|
case 442u: goto L_08B2E2D4;
|
|
case 443u: goto L_08B2E2E0;
|
|
case 444u: goto L_08B2E2F0;
|
|
case 445u: goto L_08B2E2F8;
|
|
case 446u: goto L_08B2E300;
|
|
case 447u: goto L_08B2E310;
|
|
case 448u: goto L_08B2E320;
|
|
case 449u: goto L_08B2E32C;
|
|
case 450u: goto L_08B2E33C;
|
|
case 451u: goto L_08B2E348;
|
|
case 452u: goto L_08B2E360;
|
|
case 453u: goto L_08B2E368;
|
|
case 454u: goto L_08B2E378;
|
|
case 455u: goto L_08B2E384;
|
|
case 456u: goto L_08B2E39C;
|
|
case 457u: goto L_08B2E3A4;
|
|
case 458u: goto L_08B2E3BC;
|
|
case 459u: goto L_08B2E3CC;
|
|
case 460u: goto L_08B2E3D8;
|
|
case 461u: goto L_08B2E3EC;
|
|
case 462u: goto L_08B2E404;
|
|
case 463u: goto L_08B2E418;
|
|
case 464u: goto L_08B2E420;
|
|
case 465u: goto L_08B2E424;
|
|
case 466u: goto L_08B2E438;
|
|
case 467u: goto L_08B2E484;
|
|
case 468u: goto L_08B2E4AC;
|
|
case 469u: goto L_08B2E4C4;
|
|
case 470u: goto L_08B2E4DC;
|
|
case 471u: goto L_08B2E504;
|
|
case 472u: goto L_08B2E510;
|
|
case 473u: goto L_08B2E524;
|
|
case 474u: goto L_08B2E540;
|
|
case 475u: goto L_08B2E560;
|
|
case 476u: goto L_08B2E578;
|
|
case 477u: goto L_08B2E5A4;
|
|
case 478u: goto L_08B2E5B0;
|
|
case 479u: goto L_08B2E5BC;
|
|
case 480u: goto L_08B2E5C4;
|
|
case 481u: goto L_08B2E5CC;
|
|
case 482u: goto L_08B2E5D0;
|
|
case 483u: goto L_08B2E5F4;
|
|
case 484u: goto L_08B2E5FC;
|
|
case 485u: goto L_08B2E618;
|
|
case 486u: goto L_08B2E62C;
|
|
case 487u: goto L_08B2E648;
|
|
case 488u: goto L_08B2E64C;
|
|
case 489u: goto L_08B2E654;
|
|
case 490u: goto L_08B2E668;
|
|
case 491u: goto L_08B2E690;
|
|
case 492u: goto L_08B2E69C;
|
|
case 493u: goto L_08B2E6E4;
|
|
case 494u: goto L_08B2E70C;
|
|
case 495u: goto L_08B2E718;
|
|
case 496u: goto L_08B2E760;
|
|
case 497u: goto L_08B2E7C8;
|
|
case 498u: goto L_08B2E7EC;
|
|
case 499u: goto L_08B2E828;
|
|
case 500u: goto L_08B2E834;
|
|
case 501u: goto L_08B2E840;
|
|
case 502u: goto L_08B2E848;
|
|
case 503u: goto L_08B2E85C;
|
|
case 504u: goto L_08B2E864;
|
|
case 505u: goto L_08B2E878;
|
|
case 506u: goto L_08B2E880;
|
|
case 507u: goto L_08B2E884;
|
|
case 508u: goto L_08B2E88C;
|
|
case 509u: goto L_08B2E89C;
|
|
case 510u: goto L_08B2E8A4;
|
|
case 511u: goto L_08B2E8AC;
|
|
case 512u: goto L_08B2E8BC;
|
|
case 513u: goto L_08B2E8C8;
|
|
case 514u: goto L_08B2E8E0;
|
|
case 515u: goto L_08B2E8E8;
|
|
case 516u: goto L_08B2E900;
|
|
case 517u: goto L_08B2E910;
|
|
case 518u: goto L_08B2E91C;
|
|
case 519u: goto L_08B2E930;
|
|
case 520u: goto L_08B2E948;
|
|
case 521u: goto L_08B2E95C;
|
|
case 522u: goto L_08B2E964;
|
|
case 523u: goto L_08B2E968;
|
|
case 524u: goto L_08B2E97C;
|
|
case 525u: goto L_08B2E9C8;
|
|
case 526u: goto L_08B2E9F0;
|
|
case 527u: goto L_08B2E9FC;
|
|
case 528u: goto L_08B2EA38;
|
|
case 529u: goto L_08B2EA60;
|
|
case 530u: goto L_08B2EA6C;
|
|
case 531u: goto L_08B2EA80;
|
|
case 532u: goto L_08B2EA84;
|
|
case 533u: goto L_08B2EAA8;
|
|
case 534u: goto L_08B2EAB0;
|
|
case 535u: goto L_08B2EAD0;
|
|
case 536u: goto L_08B2EADC;
|
|
case 537u: goto L_08B2EAF4;
|
|
case 538u: goto L_08B2EAF8;
|
|
case 539u: goto L_08B2EB10;
|
|
case 540u: goto L_08B2EB38;
|
|
case 541u: goto L_08B2EB44;
|
|
case 542u: goto L_08B2EB54;
|
|
case 543u: goto L_08B2EB74;
|
|
case 544u: goto L_08B2EB8C;
|
|
case 545u: goto L_08B2EBC0;
|
|
case 546u: goto L_08B2EBCC;
|
|
case 547u: goto L_08B2EBE0;
|
|
case 548u: goto L_08B2EBE8;
|
|
case 549u: goto L_08B2EBF0;
|
|
case 550u: goto L_08B2EBF8;
|
|
case 551u: goto L_08B2EC14;
|
|
case 552u: goto L_08B2EC1C;
|
|
case 553u: goto L_08B2EC28;
|
|
case 554u: goto L_08B2EC2C;
|
|
case 555u: goto L_08B2EC3C;
|
|
case 556u: goto L_08B2EC5C;
|
|
case 557u: goto L_08B2EC84;
|
|
case 558u: goto L_08B2EC90;
|
|
case 559u: goto L_08B2ECBC;
|
|
case 560u: goto L_08B2ECE4;
|
|
case 561u: goto L_08B2ECF0;
|
|
case 562u: goto L_08B2ED10;
|
|
case 563u: goto L_08B2ED38;
|
|
case 564u: goto L_08B2ED44;
|
|
case 565u: goto L_08B2ED64;
|
|
case 566u: goto L_08B2ED8C;
|
|
case 567u: goto L_08B2ED98;
|
|
case 568u: goto L_08B2EDD4;
|
|
case 569u: goto L_08B2EDF4;
|
|
case 570u: goto L_08B2EE00;
|
|
case 571u: goto L_08B2EE24;
|
|
case 572u: goto L_08B2EE4C;
|
|
case 573u: goto L_08B2EE58;
|
|
case 574u: goto L_08B2EE6C;
|
|
case 575u: goto L_08B2EE78;
|
|
case 576u: goto L_08B2EE8C;
|
|
case 577u: goto L_08B2EE94;
|
|
case 578u: goto L_08B2EEA8;
|
|
case 579u: goto L_08B2EEC0;
|
|
case 580u: goto L_08B2EEE8;
|
|
case 581u: goto L_08B2EEF4;
|
|
case 582u: goto L_08B2EF10;
|
|
case 583u: goto L_08B2EF24;
|
|
case 584u: goto L_08B2EF28;
|
|
case 585u: goto L_08B2EF40;
|
|
case 586u: goto L_08B2EFA8;
|
|
case 587u: goto L_08B2EFCC;
|
|
case 588u: goto L_08B2F008;
|
|
case 589u: goto L_08B2F014;
|
|
case 590u: goto L_08B2F020;
|
|
case 591u: goto L_08B2F028;
|
|
case 592u: goto L_08B2F03C;
|
|
case 593u: goto L_08B2F044;
|
|
case 594u: goto L_08B2F058;
|
|
case 595u: goto L_08B2F060;
|
|
case 596u: goto L_08B2F064;
|
|
case 597u: goto L_08B2F06C;
|
|
case 598u: goto L_08B2F07C;
|
|
case 599u: goto L_08B2F084;
|
|
case 600u: goto L_08B2F08C;
|
|
case 601u: goto L_08B2F09C;
|
|
case 602u: goto L_08B2F0A8;
|
|
case 603u: goto L_08B2F0B0;
|
|
case 604u: goto L_08B2F0B8;
|
|
case 605u: goto L_08B2F0D0;
|
|
case 606u: goto L_08B2F0D8;
|
|
case 607u: goto L_08B2F0F0;
|
|
case 608u: goto L_08B2F100;
|
|
case 609u: goto L_08B2F10C;
|
|
case 610u: goto L_08B2F120;
|
|
case 611u: goto L_08B2F138;
|
|
case 612u: goto L_08B2F14C;
|
|
case 613u: goto L_08B2F154;
|
|
case 614u: goto L_08B2F158;
|
|
case 615u: goto L_08B2F16C;
|
|
case 616u: goto L_08B2F1B8;
|
|
case 617u: goto L_08B2F1E0;
|
|
case 618u: goto L_08B2F1EC;
|
|
case 619u: goto L_08B2F20C;
|
|
case 620u: goto L_08B2F23C;
|
|
case 621u: goto L_08B2F248;
|
|
case 622u: goto L_08B2F260;
|
|
case 623u: goto L_08B2F27C;
|
|
case 624u: goto L_08B2F2B4;
|
|
case 625u: goto L_08B2F2C0;
|
|
case 626u: goto L_08B2F2E8;
|
|
case 627u: goto L_08B2F2FC;
|
|
case 628u: goto L_08B2F308;
|
|
case 629u: goto L_08B2F310;
|
|
case 630u: goto L_08B2F32C;
|
|
case 631u: goto L_08B2F350;
|
|
case 632u: goto L_08B2F3B4;
|
|
case 633u: goto L_08B2F3FC;
|
|
case 634u: goto L_08B2F408;
|
|
case 635u: goto L_08B2F410;
|
|
case 636u: goto L_08B2F418;
|
|
case 637u: goto L_08B2F42C;
|
|
case 638u: goto L_08B2F434;
|
|
case 639u: goto L_08B2F448;
|
|
case 640u: goto L_08B2F450;
|
|
case 641u: goto L_08B2F454;
|
|
case 642u: goto L_08B2F45C;
|
|
case 643u: goto L_08B2F46C;
|
|
case 644u: goto L_08B2F474;
|
|
case 645u: goto L_08B2F47C;
|
|
case 646u: goto L_08B2F48C;
|
|
case 647u: goto L_08B2F49C;
|
|
case 648u: goto L_08B2F4AC;
|
|
case 649u: goto L_08B2F4B8;
|
|
case 650u: goto L_08B2F4D8;
|
|
case 651u: goto L_08B2F4E0;
|
|
case 652u: goto L_08B2F4F0;
|
|
case 653u: goto L_08B2F508;
|
|
case 654u: goto L_08B2F514;
|
|
case 655u: goto L_08B2F528;
|
|
case 656u: goto L_08B2F52C;
|
|
case 657u: goto L_08B2F534;
|
|
case 658u: goto L_08B2F53C;
|
|
case 659u: goto L_08B2F548;
|
|
case 660u: goto L_08B2F554;
|
|
case 661u: goto L_08B2F55C;
|
|
case 662u: goto L_08B2F56C;
|
|
case 663u: goto L_08B2F5B8;
|
|
case 664u: goto L_08B2F5E8;
|
|
case 665u: goto L_08B2F5F4;
|
|
case 666u: goto L_08B2F608;
|
|
case 667u: goto L_08B2F614;
|
|
case 668u: goto L_08B2F630;
|
|
case 669u: goto L_08B2F63C;
|
|
case 670u: goto L_08B2F640;
|
|
case 671u: goto L_08B2F650;
|
|
case 672u: goto L_08B2F66C;
|
|
case 673u: goto L_08B2F694;
|
|
case 674u: goto L_08B2F6A0;
|
|
case 675u: goto L_08B2F6AC;
|
|
case 676u: goto L_08B2F6B4;
|
|
case 677u: goto L_08B2F6C0;
|
|
case 678u: goto L_08B2F6C8;
|
|
case 679u: goto L_08B2F6D0;
|
|
case 680u: goto L_08B2F6E8;
|
|
case 681u: goto L_08B2F704;
|
|
case 682u: goto L_08B2F71C;
|
|
case 683u: goto L_08B2F74C;
|
|
case 684u: goto L_08B2F758;
|
|
case 685u: goto L_08B2F778;
|
|
case 686u: goto L_08B2F780;
|
|
case 687u: goto L_08B2F784;
|
|
case 688u: goto L_08B2F7A0;
|
|
case 689u: goto L_08B2F7A8;
|
|
case 690u: goto L_08B2F7C8;
|
|
case 691u: goto L_08B2F7D4;
|
|
case 692u: goto L_08B2F7EC;
|
|
case 693u: goto L_08B2F7F0;
|
|
case 694u: goto L_08B2F80C;
|
|
case 695u: goto L_08B2F83C;
|
|
case 696u: goto L_08B2F848;
|
|
case 697u: goto L_08B2F858;
|
|
case 698u: goto L_08B2F860;
|
|
case 699u: goto L_08B2F864;
|
|
case 700u: goto L_08B2F880;
|
|
case 701u: goto L_08B2F888;
|
|
case 702u: goto L_08B2F8A8;
|
|
case 703u: goto L_08B2F8B4;
|
|
case 704u: goto L_08B2F8CC;
|
|
case 705u: goto L_08B2F8D0;
|
|
case 706u: goto L_08B2F8EC;
|
|
case 707u: goto L_08B2F91C;
|
|
case 708u: goto L_08B2F928;
|
|
case 709u: goto L_08B2F960;
|
|
case 710u: goto L_08B2F97C;
|
|
case 711u: goto L_08B2F9AC;
|
|
case 712u: goto L_08B2F9B8;
|
|
case 713u: goto L_08B2F9F0;
|
|
case 714u: goto L_08B2FA0C;
|
|
case 715u: goto L_08B2FA34;
|
|
case 716u: goto L_08B2FA40;
|
|
case 717u: goto L_08B2FA4C;
|
|
case 718u: goto L_08B2FA6C;
|
|
case 719u: goto L_08B2FA84;
|
|
case 720u: goto L_08B2FAAC;
|
|
case 721u: goto L_08B2FAB8;
|
|
case 722u: goto L_08B2FAC8;
|
|
case 723u: goto L_08B2FAD0;
|
|
case 724u: goto L_08B2FAD8;
|
|
case 725u: goto L_08B2FADC;
|
|
case 726u: goto L_08B2FAF8;
|
|
case 727u: goto L_08B2FB00;
|
|
case 728u: goto L_08B2FB20;
|
|
case 729u: goto L_08B2FB2C;
|
|
case 730u: goto L_08B2FB44;
|
|
case 731u: goto L_08B2FB48;
|
|
case 732u: goto L_08B2FB60;
|
|
case 733u: goto L_08B2FB98;
|
|
case 734u: goto L_08B2FBA4;
|
|
case 735u: goto L_08B2FBD0;
|
|
case 736u: goto L_08B2FBF0;
|
|
case 737u: goto L_08B2FC20;
|
|
case 738u: goto L_08B2FC2C;
|
|
case 739u: goto L_08B2FC40;
|
|
case 740u: goto L_08B2FC50;
|
|
case 741u: goto L_08B2FC68;
|
|
case 742u: goto L_08B2FC84;
|
|
case 743u: goto L_08B2FCAC;
|
|
case 744u: goto L_08B2FCB8;
|
|
case 745u: goto L_08B2FCD0;
|
|
case 746u: goto L_08B2FCE0;
|
|
case 747u: goto L_08B2FCEC;
|
|
case 748u: goto L_08B2FD04;
|
|
case 749u: goto L_08B2FD30;
|
|
case 750u: goto L_08B2FD3C;
|
|
case 751u: goto L_08B2FD64;
|
|
case 752u: goto L_08B2FD74;
|
|
case 753u: goto L_08B2FD88;
|
|
case 754u: goto L_08B2FD8C;
|
|
case 755u: goto L_08B2FD98;
|
|
case 756u: goto L_08B2FDA8;
|
|
case 757u: goto L_08B2FDB8;
|
|
case 758u: goto L_08B2FDC0;
|
|
case 759u: goto L_08B2FDC8;
|
|
case 760u: goto L_08B2FDD8;
|
|
case 761u: goto L_08B2FDE0;
|
|
case 762u: goto L_08B2FDE8;
|
|
case 763u: goto L_08B2FDF0;
|
|
case 764u: goto L_08B2FDF4;
|
|
case 765u: goto L_08B2FE18;
|
|
case 766u: goto L_08B2FE20;
|
|
case 767u: goto L_08B2FE3C;
|
|
case 768u: goto L_08B2FE50;
|
|
case 769u: goto L_08B2FE6C;
|
|
case 770u: goto L_08B2FE70;
|
|
case 771u: goto L_08B2FE78;
|
|
case 772u: goto L_08B2FE8C;
|
|
case 773u: goto L_08B2FEB4;
|
|
case 774u: goto L_08B2FED4;
|
|
case 775u: goto L_08B2FEE0;
|
|
case 776u: goto L_08B2FEF0;
|
|
case 777u: goto L_08B2FF38;
|
|
case 778u: goto L_08B2FFA0;
|
|
case 779u: goto L_08B2FFD4;
|
|
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_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_08B2C000:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(80)));
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
ctx.gpr[6] = (0u | 0u);
|
|
aot_gpr_31 = (0x08B2C014u);
|
|
ctx.gpr[7] = (0u | 6u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C014u) goto L_08B2C014;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C014:
|
|
aot_gpr_31 = (0x08B2C01Cu);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 79u, 0x0890849Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C01Cu) goto L_08B2C01C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C01C:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
jump_target = aot_gpr_31;
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2C030:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[4]{aot_gpr_16, aot_gpr_17, ctx.gpr[18], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[18] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2C060u);
|
|
ctx.gpr[7] = (ctx.gpr[18] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C060u) goto L_08B2C060;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C060:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2C06Cu);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C06Cu) goto L_08B2C06C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C06C:
|
|
ctx.gpr[8] = (0u | 0u);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[7] = (ctx.gpr[2] + static_cast<std::uint32_t>(1396));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
goto L_08B2C080;
|
|
L_08B2C080:
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(ctx.gpr[7] + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = ctx.gpr[9] != ctx.gpr[6];
|
|
if (branch_taken) {
|
|
goto L_08B2C094;
|
|
}
|
|
goto L_08B2C08C;
|
|
}
|
|
L_08B2C08C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08B2C0A8;
|
|
}
|
|
goto L_08B2C094;
|
|
}
|
|
L_08B2C094:
|
|
ctx.gpr[8] = (ctx.gpr[8] + static_cast<std::uint32_t>(1));
|
|
ctx.gpr[9] = (ctx.gpr[8] < static_cast<std::uint32_t>(10) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[9] != 0u;
|
|
ctx.gpr[7] = (ctx.gpr[7] + static_cast<std::uint32_t>(28));
|
|
if (branch_taken) {
|
|
goto L_08B2C080;
|
|
}
|
|
goto L_08B2C0A4;
|
|
}
|
|
L_08B2C0A4:
|
|
ctx.gpr[6] = (0u | 0u);
|
|
goto L_08B2C0A8;
|
|
L_08B2C0A8:
|
|
ctx.gpr[6] = (ctx.gpr[6] & 255u);
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_5 = (ctx.gpr[6] ^ aot_gpr_5);
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2C0C4;
|
|
}
|
|
goto L_08B2C0BC;
|
|
}
|
|
L_08B2C0BC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_5));
|
|
if (branch_taken) {
|
|
goto L_08B2C10C;
|
|
}
|
|
goto L_08B2C0C4;
|
|
}
|
|
L_08B2C0C4:
|
|
aot_gpr_4 = (aot_gpr_16 + static_cast<std::uint32_t>(518));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[6]) < 9 ? 1u : 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store16(aot_gpr_4 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[6]));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2C0F0;
|
|
}
|
|
goto L_08B2C0E4;
|
|
}
|
|
L_08B2C0E4:
|
|
aot_gpr_4 = (aot_gpr_5 & aot_gpr_4);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2C10C;
|
|
}
|
|
goto L_08B2C0F0;
|
|
}
|
|
L_08B2C0F0:
|
|
aot_gpr_4 = (aot_gpr_5 | aot_gpr_4);
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2C10C;
|
|
}
|
|
goto L_08B2C108;
|
|
}
|
|
L_08B2C108:
|
|
aot_mem.aot_direct_store16(aot_gpr_16 + static_cast<std::uint32_t>(518), static_cast<std::uint16_t>(0u));
|
|
goto L_08B2C10C;
|
|
L_08B2C10C:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[4]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2C128:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
|
|
{ const std::uint32_t aot_run_words[5]{aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
ctx.gpr[18] = (2236u << 16u);
|
|
ctx.gpr[19] = (ctx.gpr[18] + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_5 = (aot_gpr_17 | 0u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
aot_gpr_31 = (0x08B2C160u);
|
|
ctx.gpr[7] = (ctx.gpr[19] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C160u) goto L_08B2C160;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C160:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2C16Cu);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C16Cu) goto L_08B2C16C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C16C:
|
|
ctx.gpr[6] = (aot_gpr_29 + static_cast<std::uint32_t>(4));
|
|
ctx.gpr[7] = (aot_gpr_29 + static_cast<std::uint32_t>(8));
|
|
aot_gpr_4 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_31 = (0x08B2C180u);
|
|
aot_gpr_5 = (aot_gpr_29 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 869u, 0x088F7DF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C180u) goto L_08B2C180;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C180:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast<std::uint32_t>(29704), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (aot_gpr_17 | 0u);
|
|
aot_gpr_31 = (0x08B2C1A8u);
|
|
ctx.gpr[6] = (0u | 3u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08862890, 23u, 431u, 0x08862890u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], ctx.gpr[11], aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], 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_0023_entry, 23u, 431u, 0x08862890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C1A8u) goto L_08B2C1A8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C1A8:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[5]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2C1C8:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_31 = (0x08B2C1F0u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C1F0u) goto L_08B2C1F0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C1F0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2C1FCu);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C1FCu) goto L_08B2C1FC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C1FC:
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_4 = (0u | 0u);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2C220;
|
|
}
|
|
goto L_08B2C20C;
|
|
}
|
|
L_08B2C20C:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(236)));
|
|
aot_gpr_5 = (aot_gpr_5 & 256u);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2C220;
|
|
}
|
|
goto L_08B2C21C;
|
|
}
|
|
L_08B2C21C:
|
|
aot_gpr_4 = (0u | 1u);
|
|
goto L_08B2C220;
|
|
L_08B2C220:
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 ^ aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2C24C;
|
|
}
|
|
goto L_08B2C244;
|
|
}
|
|
L_08B2C244:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2C294;
|
|
}
|
|
goto L_08B2C24C;
|
|
}
|
|
L_08B2C24C:
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(518));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[6]) < 9 ? 1u : 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store16(aot_gpr_5 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[6]));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2C278;
|
|
}
|
|
goto L_08B2C26C;
|
|
}
|
|
L_08B2C26C:
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2C294;
|
|
}
|
|
goto L_08B2C278;
|
|
}
|
|
L_08B2C278:
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2C294;
|
|
}
|
|
goto L_08B2C290;
|
|
}
|
|
L_08B2C290:
|
|
aot_mem.aot_direct_store16(aot_gpr_16 + static_cast<std::uint32_t>(518), static_cast<std::uint16_t>(0u));
|
|
goto L_08B2C294;
|
|
L_08B2C294:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2C2AC:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
|
|
{ const std::uint32_t aot_run_words[5]{aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
ctx.gpr[18] = (2236u << 16u);
|
|
ctx.gpr[19] = (ctx.gpr[18] + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_5 = (aot_gpr_17 | 0u);
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2C2E4u);
|
|
ctx.gpr[7] = (ctx.gpr[19] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C2E4u) goto L_08B2C2E4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C2E4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2C2F0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C2F0u) goto L_08B2C2F0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C2F0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(4)));
|
|
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[2] + aot_gpr_4);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(1368));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast<std::uint32_t>(29704), aot_gpr_5);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
aot_gpr_31 = (0x08B2C320u);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 587u, 0x088F2CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C320u) goto L_08B2C320;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C320:
|
|
aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast<std::uint32_t>(8), ctx.gpr[2]);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (aot_gpr_17 | 0u);
|
|
aot_gpr_31 = (0x08B2C334u);
|
|
ctx.gpr[6] = (0u | 3u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08862890, 23u, 431u, 0x08862890u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], ctx.gpr[11], aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], 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_0023_entry, 23u, 431u, 0x08862890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C334u) goto L_08B2C334;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C334:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[5]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2C354:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-96));
|
|
{ const std::uint32_t aot_run_words[5]{aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(64), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
ctx.gpr[18] = (2236u << 16u);
|
|
ctx.gpr[19] = (ctx.gpr[18] + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_5 = (aot_gpr_17 | 0u);
|
|
ctx.gpr[6] = (0u | 4u);
|
|
aot_gpr_31 = (0x08B2C38Cu);
|
|
ctx.gpr[7] = (ctx.gpr[19] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C38Cu) goto L_08B2C38C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C38C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2C398u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C398u) goto L_08B2C398;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C398:
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[19] + static_cast<std::uint32_t>(4), aot_run_words);
|
|
aot_fpr_12 = std::bit_cast<float>(aot_run_words[0]);
|
|
aot_fpr_13 = std::bit_cast<float>(aot_run_words[1]);
|
|
aot_fpr_14 = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(aot_fpr_12), std::bit_cast<std::uint32_t>(aot_fpr_13), std::bit_cast<std::uint32_t>(aot_fpr_14)};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
{ const std::uint32_t vfpu_address = aot_gpr_29 + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(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<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast<std::uint32_t>(16);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast<std::uint32_t>(32);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vtfm_ct<0u, 36u, 7u, 3u, 3u>();
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = aot_gpr_29 + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = aot_gpr_29 + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(32));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
aot_gpr_31 = (0x08B2C3E8u);
|
|
aot_gpr_5 = (ctx.gpr[2] + static_cast<std::uint32_t>(48));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08A931B8, 163u, 0x08A931B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C3E8u) goto L_08B2C3E8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C3E8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(32)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast<std::uint32_t>(29704), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(36)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(40)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (aot_gpr_17 | 0u);
|
|
aot_gpr_31 = (0x08B2C410u);
|
|
ctx.gpr[6] = (0u | 3u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08862890, 23u, 431u, 0x08862890u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], ctx.gpr[11], aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], 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_0023_entry, 23u, 431u, 0x08862890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C410u) goto L_08B2C410;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C410:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[5]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(64), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(96));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2C430:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_31 = (0x08B2C458u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C458u) goto L_08B2C458;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C458:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2C464u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C464u) goto L_08B2C464;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C464:
|
|
ctx.gpr[6] = (ctx.gpr[2] | 0u);
|
|
aot_gpr_4 = (0u | 0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[6] + static_cast<std::uint32_t>(464)));
|
|
ctx.gpr[7] = (128u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_5 & ctx.gpr[7]);
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2C494;
|
|
}
|
|
goto L_08B2C480;
|
|
}
|
|
L_08B2C480:
|
|
aot_gpr_4 = (0u | 1u);
|
|
ctx.gpr[7] = (65408u << 16u);
|
|
ctx.gpr[7] = (ctx.gpr[7] + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_5 = (aot_gpr_5 & ctx.gpr[7]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[6] + static_cast<std::uint32_t>(464), aot_gpr_5);
|
|
goto L_08B2C494;
|
|
L_08B2C494:
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 ^ aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2C4C0;
|
|
}
|
|
goto L_08B2C4B8;
|
|
}
|
|
L_08B2C4B8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2C508;
|
|
}
|
|
goto L_08B2C4C0;
|
|
}
|
|
L_08B2C4C0:
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(518));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[6]) < 9 ? 1u : 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store16(aot_gpr_5 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[6]));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2C4EC;
|
|
}
|
|
goto L_08B2C4E0;
|
|
}
|
|
L_08B2C4E0:
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2C508;
|
|
}
|
|
goto L_08B2C4EC;
|
|
}
|
|
L_08B2C4EC:
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2C508;
|
|
}
|
|
goto L_08B2C504;
|
|
}
|
|
L_08B2C504:
|
|
aot_mem.aot_direct_store16(aot_gpr_16 + static_cast<std::uint32_t>(518), static_cast<std::uint16_t>(0u));
|
|
goto L_08B2C508;
|
|
L_08B2C508:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2C520:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2C548u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C548u) goto L_08B2C548;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C548:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2C554u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C554u) goto L_08B2C554;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C554:
|
|
aot_gpr_16 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(236)));
|
|
if (branch_taken) {
|
|
goto L_08B2C574;
|
|
}
|
|
goto L_08B2C564;
|
|
}
|
|
L_08B2C564:
|
|
aot_gpr_5 = (16384u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(236), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B2C5C0;
|
|
}
|
|
goto L_08B2C574;
|
|
}
|
|
L_08B2C574:
|
|
aot_gpr_5 = (49152u << 16u);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(236), aot_gpr_4);
|
|
aot_gpr_31 = (0x08B2C58Cu);
|
|
aot_gpr_4 = (aot_gpr_16 + static_cast<std::uint32_t>(48));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 321u, 0x08809958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C58Cu) goto L_08B2C58C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C58C:
|
|
{ const bool branch_taken = ctx.gpr[2] != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2C5C0;
|
|
}
|
|
goto L_08B2C594;
|
|
}
|
|
L_08B2C594:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(76)));
|
|
aot_gpr_5 = (65520u << 16u);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(76), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(92)));
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(168));
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(0))))));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(4)));
|
|
jump_target = aot_gpr_5;
|
|
aot_gpr_31 = (0x08B2C5C0u);
|
|
aot_gpr_4 = (aot_gpr_16 + aot_gpr_4);
|
|
ctx.pc = jump_target;
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C5C0u) goto L_08B2C5C0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C5C0:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2C5D8:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2C600u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C600u) goto L_08B2C600;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C600:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2C60Cu);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C60Cu) goto L_08B2C60C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C60C:
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(464)));
|
|
if (branch_taken) {
|
|
goto L_08B2C62C;
|
|
}
|
|
goto L_08B2C61C;
|
|
}
|
|
L_08B2C61C:
|
|
ctx.gpr[6] = (256u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 | ctx.gpr[6]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(464), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B2C63C;
|
|
}
|
|
goto L_08B2C62C;
|
|
}
|
|
L_08B2C62C:
|
|
ctx.gpr[6] = (65280u << 16u);
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (aot_gpr_4 & ctx.gpr[6]);
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(464), aot_gpr_4);
|
|
goto L_08B2C63C;
|
|
L_08B2C63C:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2C654:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[4]{aot_gpr_16, aot_gpr_17, ctx.gpr[18], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
ctx.gpr[18] = (2236u << 16u);
|
|
ctx.gpr[7] = (ctx.gpr[18] + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_5 = (aot_gpr_17 | 0u);
|
|
aot_gpr_31 = (0x08B2C684u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C684u) goto L_08B2C684;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C684:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2C690u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C690u) goto L_08B2C690;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C690:
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(1256)));
|
|
aot_fpr_12 = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12));
|
|
aot_gpr_4 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast<std::uint32_t>(29704), aot_gpr_4);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (aot_gpr_17 | 0u);
|
|
aot_gpr_31 = (0x08B2C6B0u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08862890, 23u, 431u, 0x08862890u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], ctx.gpr[11], aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], 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_0023_entry, 23u, 431u, 0x08862890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C6B0u) goto L_08B2C6B0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C6B0:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[4]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2C6CC:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 3u);
|
|
aot_gpr_31 = (0x08B2C6F4u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C6F4u) goto L_08B2C6F4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C6F4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2C700u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C700u) goto L_08B2C700;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C700:
|
|
aot_gpr_16 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2C734;
|
|
}
|
|
goto L_08B2C710;
|
|
}
|
|
L_08B2C710:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(460)));
|
|
aot_gpr_4 = (aot_gpr_4 | 4096u);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(460), aot_gpr_4);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_31 = (0x08B2C72Cu);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 654u, 0x089AB1F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C72Cu) goto L_08B2C72C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C72C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2C750;
|
|
}
|
|
goto L_08B2C734;
|
|
}
|
|
L_08B2C734:
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_31 = (0x08B2C740u);
|
|
aot_gpr_5 = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 696u, 0x089AB4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C740u) goto L_08B2C740;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C740:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(460)));
|
|
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-4097));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(460), aot_gpr_4);
|
|
goto L_08B2C750;
|
|
L_08B2C750:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2C768:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_gpr_16);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_31);
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_31 = (0x08B2C788u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C788u) goto L_08B2C788;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C788:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2C794u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C794u) goto L_08B2C794;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C794:
|
|
aot_gpr_31 = (0x08B2C79Cu);
|
|
aot_gpr_4 = (ctx.gpr[2] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 766u, 0x089AB948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C79Cu) goto L_08B2C79C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C79C:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
jump_target = aot_gpr_31;
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2C7B0:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 8u);
|
|
aot_gpr_31 = (0x08B2C7D8u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C7D8u) goto L_08B2C7D8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C7D8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2C7E4u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C7E4u) goto L_08B2C7E4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C7E4:
|
|
aot_gpr_16 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15960)));
|
|
aot_gpr_31 = (0x08B2C7F4u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 445u, 0x08B65D28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C7F4u) goto L_08B2C7F4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C7F4:
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_17 + static_cast<std::uint32_t>(8), aot_run_words);
|
|
aot_fpr_13 = std::bit_cast<float>(aot_run_words[0]);
|
|
aot_fpr_14 = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(24)));
|
|
aot_gpr_4 = (16457u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 | 4059u);
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_gpr_4);
|
|
{ const float fs = aot_fpr_12; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast<float>(0x7FC00000u); else aot_fpr_12 = fs * ft; }
|
|
aot_gpr_4 = (17204u << 16u);
|
|
ctx.fpr[17] = std::bit_cast<float>(aot_gpr_4);
|
|
aot_fpr_12 = aot_fpr_12 / ctx.fpr[17];
|
|
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(aot_fpr_13), std::bit_cast<std::uint32_t>(aot_fpr_14), std::bit_cast<std::uint32_t>(ctx.fpr[15])};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(20)));
|
|
ctx.gpr[7] = (ctx.gpr[7] & 65535u);
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(28)));
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_31 = (0x08B2C848u);
|
|
ctx.gpr[6] = (aot_gpr_29 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 76u, 0x0892C914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C848u) goto L_08B2C848;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C848:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2C860:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 3u);
|
|
aot_gpr_31 = (0x08B2C888u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C888u) goto L_08B2C888;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C888:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2C894u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C894u) goto L_08B2C894;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C894:
|
|
aot_gpr_31 = (0x08B2C89Cu);
|
|
aot_gpr_4 = (ctx.gpr[2] | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_089474C4, 80u, 661u, 0x089474C4u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, ctx.gpr[6], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0080_entry, 80u, 661u, 0x089474C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C89Cu) goto L_08B2C89C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C89C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2C8A8u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C8A8u) goto L_08B2C8A8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C8A8:
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(8)));
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(464)));
|
|
if (branch_taken) {
|
|
goto L_08B2C8D8;
|
|
}
|
|
goto L_08B2C8B8;
|
|
}
|
|
L_08B2C8B8:
|
|
ctx.gpr[6] = (4096u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 | ctx.gpr[6]);
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(464), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(684)));
|
|
ctx.gpr[6] = (0u + static_cast<std::uint32_t>(-2));
|
|
aot_gpr_4 = (aot_gpr_4 & ctx.gpr[6]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(684), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B2C8E8;
|
|
}
|
|
goto L_08B2C8D8;
|
|
}
|
|
L_08B2C8D8:
|
|
ctx.gpr[6] = (61440u << 16u);
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (aot_gpr_4 & ctx.gpr[6]);
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(464), aot_gpr_4);
|
|
goto L_08B2C8E8;
|
|
L_08B2C8E8:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2C900:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_31 = (0x08B2C928u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C928u) goto L_08B2C928;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C928:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2C934u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C934u) goto L_08B2C934;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2C934:
|
|
aot_gpr_4 = (0u | 0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(2196)));
|
|
ctx.gpr[6] = (0u | 38u);
|
|
{ const bool branch_taken = aot_gpr_5 != ctx.gpr[6];
|
|
if (branch_taken) {
|
|
goto L_08B2C94C;
|
|
}
|
|
goto L_08B2C948;
|
|
}
|
|
L_08B2C948:
|
|
aot_gpr_4 = (0u | 1u);
|
|
goto L_08B2C94C;
|
|
L_08B2C94C:
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 ^ aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2C978;
|
|
}
|
|
goto L_08B2C970;
|
|
}
|
|
L_08B2C970:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2C9C0;
|
|
}
|
|
goto L_08B2C978;
|
|
}
|
|
L_08B2C978:
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(518));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[6]) < 9 ? 1u : 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store16(aot_gpr_5 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[6]));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2C9A4;
|
|
}
|
|
goto L_08B2C998;
|
|
}
|
|
L_08B2C998:
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2C9C0;
|
|
}
|
|
goto L_08B2C9A4;
|
|
}
|
|
L_08B2C9A4:
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2C9C0;
|
|
}
|
|
goto L_08B2C9BC;
|
|
}
|
|
L_08B2C9BC:
|
|
aot_mem.aot_direct_store16(aot_gpr_16 + static_cast<std::uint32_t>(518), static_cast<std::uint16_t>(0u));
|
|
goto L_08B2C9C0;
|
|
L_08B2C9C0:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2C9D8:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
|
|
{ const std::uint32_t aot_run_words[4]{aot_gpr_16, aot_gpr_17, ctx.gpr[18], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[18] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
ctx.gpr[6] = (0u | 5u);
|
|
aot_gpr_31 = (0x08B2CA0Cu);
|
|
ctx.gpr[7] = (ctx.gpr[18] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CA0Cu) goto L_08B2CA0C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CA0C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2CA18u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CA18u) goto L_08B2CA18;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CA18:
|
|
{ std::uint32_t aot_run_words[4]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[18] + static_cast<std::uint32_t>(4), aot_run_words);
|
|
aot_fpr_12 = std::bit_cast<float>(aot_run_words[0]);
|
|
aot_fpr_13 = std::bit_cast<float>(aot_run_words[1]);
|
|
aot_fpr_14 = std::bit_cast<float>(aot_run_words[2]);
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_run_words[3]);
|
|
}
|
|
aot_gpr_17 = (0u | 0u);
|
|
aot_gpr_4 = (ctx.gpr[2] + static_cast<std::uint32_t>(48));
|
|
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(aot_fpr_12), std::bit_cast<std::uint32_t>(aot_fpr_13), std::bit_cast<std::uint32_t>(aot_fpr_14)};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_29 | 0u);
|
|
aot_fpr_12 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
aot_gpr_31 = (0x08B2CA4Cu);
|
|
ctx.gpr[6] = (0u | 4u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 302u, 0x08891FDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CA4Cu) goto L_08B2CA4C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CA4C:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2CA58;
|
|
}
|
|
goto L_08B2CA54;
|
|
}
|
|
L_08B2CA54:
|
|
aot_gpr_17 = (0u | 1u);
|
|
goto L_08B2CA58;
|
|
L_08B2CA58:
|
|
aot_gpr_4 = (0u < aot_gpr_17 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_17 = (aot_gpr_4 ^ aot_gpr_5);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
aot_gpr_17 = (0u < aot_gpr_17 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2CA84;
|
|
}
|
|
goto L_08B2CA7C;
|
|
}
|
|
L_08B2CA7C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_17));
|
|
if (branch_taken) {
|
|
goto L_08B2CAD4;
|
|
}
|
|
goto L_08B2CA84;
|
|
}
|
|
L_08B2CA84:
|
|
aot_gpr_4 = (aot_gpr_16 + static_cast<std::uint32_t>(518));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[6] = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store16(aot_gpr_4 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[6]));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_5) < 9 ? 1u : 0u);
|
|
if (aot_gpr_4 == 0u) {
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
goto L_08B2CAB4;
|
|
}
|
|
goto L_08B2CAA0;
|
|
L_08B2CAA0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_17 & aot_gpr_4);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2CAD4;
|
|
}
|
|
goto L_08B2CAB4;
|
|
}
|
|
L_08B2CAB4:
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_17 | aot_gpr_4);
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2CAD4;
|
|
}
|
|
goto L_08B2CAD0;
|
|
}
|
|
L_08B2CAD0:
|
|
aot_mem.aot_direct_store16(aot_gpr_16 + static_cast<std::uint32_t>(518), static_cast<std::uint16_t>(0u));
|
|
goto L_08B2CAD4;
|
|
L_08B2CAD4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2CADC;
|
|
}
|
|
goto L_08B2CADC;
|
|
}
|
|
L_08B2CADC:
|
|
{ std::uint32_t aot_run_words[4]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2CAF4:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 3u);
|
|
aot_gpr_31 = (0x08B2CB1Cu);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CB1Cu) goto L_08B2CB1C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CB1C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2CB28u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CB28u) goto L_08B2CB28;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CB28:
|
|
ctx.gpr[6] = (ctx.gpr[2] | 0u);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_5 = (0u | 1u);
|
|
aot_gpr_5 = (aot_gpr_5 << (aot_gpr_4 & 31u));
|
|
aot_gpr_5 = (aot_gpr_5 & 255u);
|
|
ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(8)));
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[6] + static_cast<std::uint32_t>(478)));
|
|
if (branch_taken) {
|
|
goto L_08B2CB54;
|
|
}
|
|
goto L_08B2CB48;
|
|
}
|
|
L_08B2CB48:
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store16(ctx.gpr[6] + static_cast<std::uint32_t>(478), static_cast<std::uint16_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2CB60;
|
|
}
|
|
goto L_08B2CB54;
|
|
}
|
|
L_08B2CB54:
|
|
aot_gpr_5 = (~(aot_gpr_5 | 0u));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_mem.aot_direct_store16(ctx.gpr[6] + static_cast<std::uint32_t>(478), static_cast<std::uint16_t>(aot_gpr_4));
|
|
goto L_08B2CB60;
|
|
L_08B2CB60:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2CB78:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
|
|
{ const std::uint32_t aot_run_words[5]{aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[18] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2CBACu);
|
|
ctx.gpr[7] = (ctx.gpr[18] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CBACu) goto L_08B2CBAC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CBAC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2CBB8u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CBB8u) goto L_08B2CBB8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CBB8:
|
|
ctx.gpr[19] = (ctx.gpr[2] | 0u);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2CBC8u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(4)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CBC8u) goto L_08B2CBC8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CBC8:
|
|
ctx.gpr[18] = (ctx.gpr[2] | 0u);
|
|
aot_gpr_17 = (0u | 0u);
|
|
{ const bool branch_taken = ctx.gpr[19] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2CC14;
|
|
}
|
|
goto L_08B2CBD8;
|
|
}
|
|
L_08B2CBD8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(1864)));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2CC14;
|
|
}
|
|
goto L_08B2CBE4;
|
|
}
|
|
L_08B2CBE4:
|
|
{ const bool branch_taken = aot_gpr_4 != ctx.gpr[18];
|
|
if (branch_taken) {
|
|
goto L_08B2CBF0;
|
|
}
|
|
goto L_08B2CBEC;
|
|
}
|
|
L_08B2CBEC:
|
|
aot_gpr_17 = (0u | 1u);
|
|
goto L_08B2CBF0;
|
|
L_08B2CBF0:
|
|
aot_gpr_31 = (0x08B2CBF8u);
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
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 == 0x08B2CBF8u) goto L_08B2CBF8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CBF8:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2CC14;
|
|
}
|
|
goto L_08B2CC00;
|
|
}
|
|
L_08B2CC00:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(1864)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(1152)));
|
|
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
|
|
if (branch_taken) {
|
|
goto L_08B2CC14;
|
|
}
|
|
goto L_08B2CC10;
|
|
}
|
|
L_08B2CC10:
|
|
aot_gpr_17 = (0u | 1u);
|
|
goto L_08B2CC14;
|
|
L_08B2CC14:
|
|
aot_gpr_4 = (0u < aot_gpr_17 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_17 = (aot_gpr_4 ^ aot_gpr_5);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
aot_gpr_17 = (0u < aot_gpr_17 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2CC40;
|
|
}
|
|
goto L_08B2CC38;
|
|
}
|
|
L_08B2CC38:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_17));
|
|
if (branch_taken) {
|
|
goto L_08B2CC88;
|
|
}
|
|
goto L_08B2CC40;
|
|
}
|
|
L_08B2CC40:
|
|
aot_gpr_4 = (aot_gpr_16 + static_cast<std::uint32_t>(518));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[6] = (static_cast<std::int32_t>(aot_gpr_5) < 9 ? 1u : 0u);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store16(aot_gpr_4 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(aot_gpr_5));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2CC6C;
|
|
}
|
|
goto L_08B2CC60;
|
|
}
|
|
L_08B2CC60:
|
|
aot_gpr_4 = (aot_gpr_17 & aot_gpr_4);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2CC88;
|
|
}
|
|
goto L_08B2CC6C;
|
|
}
|
|
L_08B2CC6C:
|
|
aot_gpr_4 = (aot_gpr_17 | aot_gpr_4);
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2CC88;
|
|
}
|
|
goto L_08B2CC84;
|
|
}
|
|
L_08B2CC84:
|
|
aot_mem.aot_direct_store16(aot_gpr_16 + static_cast<std::uint32_t>(518), static_cast<std::uint16_t>(0u));
|
|
goto L_08B2CC88;
|
|
L_08B2CC88:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[5]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2CCA8:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[4]{aot_gpr_16, aot_gpr_17, ctx.gpr[18], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[18] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2CCD8u);
|
|
ctx.gpr[7] = (ctx.gpr[18] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CCD8u) goto L_08B2CCD8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CCD8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2CCE4u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CCE4u) goto L_08B2CCE4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CCE4:
|
|
aot_gpr_17 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15972)));
|
|
aot_gpr_31 = (0x08B2CCF4u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(4)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 438u, 0x08B65CC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CCF4u) goto L_08B2CCF4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CCF4:
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_4 = (0u | 0u);
|
|
{ const bool branch_taken = aot_gpr_17 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2CD1C;
|
|
}
|
|
goto L_08B2CD04;
|
|
}
|
|
L_08B2CD04:
|
|
aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(1864)));
|
|
{ const bool branch_taken = aot_gpr_17 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2CD1C;
|
|
}
|
|
goto L_08B2CD10;
|
|
}
|
|
L_08B2CD10:
|
|
{ const bool branch_taken = aot_gpr_17 != aot_gpr_5;
|
|
if (branch_taken) {
|
|
goto L_08B2CD1C;
|
|
}
|
|
goto L_08B2CD18;
|
|
}
|
|
L_08B2CD18:
|
|
aot_gpr_4 = (0u | 1u);
|
|
goto L_08B2CD1C;
|
|
L_08B2CD1C:
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 ^ aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2CD48;
|
|
}
|
|
goto L_08B2CD40;
|
|
}
|
|
L_08B2CD40:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2CD90;
|
|
}
|
|
goto L_08B2CD48;
|
|
}
|
|
L_08B2CD48:
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(518));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[6]) < 9 ? 1u : 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store16(aot_gpr_5 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[6]));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2CD74;
|
|
}
|
|
goto L_08B2CD68;
|
|
}
|
|
L_08B2CD68:
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2CD90;
|
|
}
|
|
goto L_08B2CD74;
|
|
}
|
|
L_08B2CD74:
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2CD90;
|
|
}
|
|
goto L_08B2CD8C;
|
|
}
|
|
L_08B2CD8C:
|
|
aot_mem.aot_direct_store16(aot_gpr_16 + static_cast<std::uint32_t>(518), static_cast<std::uint16_t>(0u));
|
|
goto L_08B2CD90;
|
|
L_08B2CD90:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[4]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2CDAC:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_31 = (0x08B2CDD4u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CDD4u) goto L_08B2CDD4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CDD4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2CDE0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CDE0u) goto L_08B2CDE0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CDE0:
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_4 = (0u | 0u);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2CE0C;
|
|
}
|
|
goto L_08B2CDF0;
|
|
}
|
|
L_08B2CDF0:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(2228)));
|
|
aot_gpr_5 = (aot_gpr_5 ^ 68u);
|
|
aot_gpr_5 = (aot_gpr_5 < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
aot_gpr_5 = (aot_gpr_5 & 255u);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2CE0C;
|
|
}
|
|
goto L_08B2CE08;
|
|
}
|
|
L_08B2CE08:
|
|
aot_gpr_4 = (0u | 1u);
|
|
goto L_08B2CE0C;
|
|
L_08B2CE0C:
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 ^ aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2CE38;
|
|
}
|
|
goto L_08B2CE30;
|
|
}
|
|
L_08B2CE30:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2CE80;
|
|
}
|
|
goto L_08B2CE38;
|
|
}
|
|
L_08B2CE38:
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(518));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[6]) < 9 ? 1u : 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store16(aot_gpr_5 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[6]));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2CE64;
|
|
}
|
|
goto L_08B2CE58;
|
|
}
|
|
L_08B2CE58:
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2CE80;
|
|
}
|
|
goto L_08B2CE64;
|
|
}
|
|
L_08B2CE64:
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2CE80;
|
|
}
|
|
goto L_08B2CE7C;
|
|
}
|
|
L_08B2CE7C:
|
|
aot_mem.aot_direct_store16(aot_gpr_16 + static_cast<std::uint32_t>(518), static_cast<std::uint16_t>(0u));
|
|
goto L_08B2CE80;
|
|
L_08B2CE80:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2CE98:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2CEC0u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CEC0u) goto L_08B2CEC0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CEC0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2CECCu);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CECCu) goto L_08B2CECC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CECC:
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(464)));
|
|
if (branch_taken) {
|
|
goto L_08B2CEEC;
|
|
}
|
|
goto L_08B2CEDC;
|
|
}
|
|
L_08B2CEDC:
|
|
ctx.gpr[6] = (32768u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 | ctx.gpr[6]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(464), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B2CEFC;
|
|
}
|
|
goto L_08B2CEEC;
|
|
}
|
|
L_08B2CEEC:
|
|
ctx.gpr[6] = (32768u << 16u);
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (aot_gpr_4 & ctx.gpr[6]);
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(464), aot_gpr_4);
|
|
goto L_08B2CEFC;
|
|
L_08B2CEFC:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2CF14:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2CF3Cu);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CF3Cu) goto L_08B2CF3C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CF3C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2CF48u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CF48u) goto L_08B2CF48;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CF48:
|
|
aot_gpr_4 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2CF68;
|
|
}
|
|
goto L_08B2CF58;
|
|
}
|
|
L_08B2CF58:
|
|
aot_gpr_31 = (0x08B2CF60u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 912u, 0x0890BA20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CF60u) goto L_08B2CF60;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CF60:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2CF70;
|
|
}
|
|
goto L_08B2CF68;
|
|
}
|
|
L_08B2CF68:
|
|
aot_gpr_31 = (0x08B2CF70u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 925u, 0x0890BB1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CF70u) goto L_08B2CF70;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CF70:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2CF88:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2CFB0u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CFB0u) goto L_08B2CFB0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CFB0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2CFBCu);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CFBCu) goto L_08B2CFBC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2CFBC:
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(468)));
|
|
if (branch_taken) {
|
|
goto L_08B2CFDC;
|
|
}
|
|
goto L_08B2CFCC;
|
|
}
|
|
L_08B2CFCC:
|
|
ctx.gpr[6] = (0u + static_cast<std::uint32_t>(-2));
|
|
aot_gpr_4 = (aot_gpr_4 & ctx.gpr[6]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(468), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B2CFE4;
|
|
}
|
|
goto L_08B2CFDC;
|
|
}
|
|
L_08B2CFDC:
|
|
aot_gpr_4 = (aot_gpr_4 | 1u);
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(468), aot_gpr_4);
|
|
goto L_08B2CFE4;
|
|
L_08B2CFE4:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2CFFC:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_gpr_16);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_31);
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_31 = (0x08B2D01Cu);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D01Cu) goto L_08B2D01C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D01C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2D028u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D028u) goto L_08B2D028;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D028:
|
|
aot_gpr_31 = (0x08B2D030u);
|
|
aot_gpr_4 = (ctx.gpr[2] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 396u, 0x08929C28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D030u) goto L_08B2D030;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D030:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
jump_target = aot_gpr_31;
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2D044:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
|
|
{ const std::uint32_t aot_run_words[5]{aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[18] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2D078u);
|
|
ctx.gpr[7] = (ctx.gpr[18] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D078u) goto L_08B2D078;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D078:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2D084u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D084u) goto L_08B2D084;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D084:
|
|
ctx.gpr[19] = (ctx.gpr[2] | 0u);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15972)));
|
|
aot_gpr_31 = (0x08B2D094u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(4)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 438u, 0x08B65CC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D094u) goto L_08B2D094;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D094:
|
|
ctx.gpr[18] = (ctx.gpr[2] | 0u);
|
|
aot_gpr_17 = (0u | 0u);
|
|
aot_gpr_31 = (0x08B2D0A4u);
|
|
aot_gpr_4 = (ctx.gpr[19] | 0u);
|
|
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 == 0x08B2D0A4u) goto L_08B2D0A4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D0A4:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2D0D8;
|
|
}
|
|
goto L_08B2D0AC;
|
|
}
|
|
L_08B2D0AC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(1152)));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2D0D8;
|
|
}
|
|
goto L_08B2D0B8;
|
|
}
|
|
L_08B2D0B8:
|
|
aot_gpr_31 = (0x08B2D0C0u);
|
|
aot_gpr_5 = (ctx.gpr[18] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 587u, 0x08A66C04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D0C0u) goto L_08B2D0C0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D0C0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
ctx.gpr[18] = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
if (branch_taken) {
|
|
goto L_08B2D0F8;
|
|
}
|
|
goto L_08B2D0D0;
|
|
}
|
|
L_08B2D0D0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_17 = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08B2D0F8;
|
|
}
|
|
goto L_08B2D0D8;
|
|
}
|
|
L_08B2D0D8:
|
|
aot_gpr_4 = (ctx.gpr[19] | 0u);
|
|
aot_gpr_31 = (0x08B2D0E4u);
|
|
aot_gpr_5 = (ctx.gpr[18] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 587u, 0x08A66C04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D0E4u) goto L_08B2D0E4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D0E4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
ctx.gpr[18] = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
if (branch_taken) {
|
|
goto L_08B2D0F8;
|
|
}
|
|
goto L_08B2D0F4;
|
|
}
|
|
L_08B2D0F4:
|
|
aot_gpr_17 = (0u | 1u);
|
|
goto L_08B2D0F8;
|
|
L_08B2D0F8:
|
|
aot_gpr_5 = (0u < aot_gpr_17 ? 1u : 0u);
|
|
aot_gpr_5 = (aot_gpr_5 & 255u);
|
|
aot_gpr_5 = (aot_gpr_5 & 255u);
|
|
aot_gpr_17 = (aot_gpr_5 ^ aot_gpr_4);
|
|
{ const bool branch_taken = ctx.gpr[18] != 0u;
|
|
aot_gpr_17 = (0u < aot_gpr_17 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2D118;
|
|
}
|
|
goto L_08B2D110;
|
|
}
|
|
L_08B2D110:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_17));
|
|
if (branch_taken) {
|
|
goto L_08B2D160;
|
|
}
|
|
goto L_08B2D118;
|
|
}
|
|
L_08B2D118:
|
|
aot_gpr_4 = (aot_gpr_16 + static_cast<std::uint32_t>(518));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[6] = (static_cast<std::int32_t>(aot_gpr_5) < 9 ? 1u : 0u);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store16(aot_gpr_4 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(aot_gpr_5));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2D144;
|
|
}
|
|
goto L_08B2D138;
|
|
}
|
|
L_08B2D138:
|
|
aot_gpr_4 = (aot_gpr_17 & aot_gpr_4);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2D160;
|
|
}
|
|
goto L_08B2D144;
|
|
}
|
|
L_08B2D144:
|
|
aot_gpr_4 = (aot_gpr_17 | aot_gpr_4);
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2D160;
|
|
}
|
|
goto L_08B2D15C;
|
|
}
|
|
L_08B2D15C:
|
|
aot_mem.aot_direct_store16(aot_gpr_16 + static_cast<std::uint32_t>(518), static_cast<std::uint16_t>(0u));
|
|
goto L_08B2D160;
|
|
L_08B2D160:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[5]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2D180:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-64));
|
|
{ const std::uint32_t aot_run_words[13]{std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[22]), std::bit_cast<std::uint32_t>(ctx.fpr[24]), std::bit_cast<std::uint32_t>(ctx.fpr[26]), std::bit_cast<std::uint32_t>(ctx.fpr[28]), std::bit_cast<std::uint32_t>(aot_fpr_30), aot_gpr_16, aot_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<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
ctx.gpr[18] = (2236u << 16u);
|
|
aot_gpr_17 = (ctx.gpr[18] + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 6u);
|
|
aot_gpr_31 = (0x08B2D1D4u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D1D4u) goto L_08B2D1D4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D1D4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2D1E0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D1E0u) goto L_08B2D1E0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D1E0:
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_17 + static_cast<std::uint32_t>(4), aot_run_words);
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[28] = std::bit_cast<float>(aot_run_words[1]);
|
|
aot_fpr_30 = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
aot_gpr_4 = (ctx.gpr[2] + static_cast<std::uint32_t>(48));
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[20] = aot_fpr_12 - ctx.fpr[26];
|
|
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
ctx.fpr[22] = aot_fpr_13 - ctx.fpr[28];
|
|
aot_fpr_14 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
ctx.fpr[24] = aot_fpr_14 - aot_fpr_30;
|
|
ctx.fpr[26] = aot_fpr_12 + ctx.fpr[26];
|
|
ctx.fpr[28] = aot_fpr_13 + ctx.fpr[28];
|
|
aot_fpr_30 = aot_fpr_14 + aot_fpr_30;
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[19] = (0u | 0u);
|
|
ctx.gpr[20] = (ctx.gpr[18] + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(3344));
|
|
{ const std::int64_t product = static_cast<std::int64_t>(static_cast<std::int32_t>(ctx.gpr[18])) * static_cast<std::int64_t>(static_cast<std::int32_t>(aot_gpr_4)); ctx.lo = static_cast<std::uint32_t>(product); ctx.hi = static_cast<std::uint32_t>(static_cast<std::uint64_t>(product) >> 32u); }
|
|
ctx.gpr[21] = (ctx.lo);
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
goto L_08B2D234;
|
|
L_08B2D234:
|
|
ctx.gpr[18] = (ctx.gpr[20] | 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
ctx.gpr[21] = (ctx.gpr[21] + static_cast<std::uint32_t>(-3344));
|
|
if (branch_taken) {
|
|
goto L_08B2D2E0;
|
|
}
|
|
goto L_08B2D240;
|
|
}
|
|
L_08B2D240:
|
|
if (ctx.gpr[19] != 0u) {
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
goto L_08B2D2E4;
|
|
}
|
|
goto L_08B2D248;
|
|
L_08B2D248:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[18]) < 0;
|
|
ctx.gpr[20] = (ctx.gpr[18] + static_cast<std::uint32_t>(-1));
|
|
if (branch_taken) {
|
|
goto L_08B2D264;
|
|
}
|
|
goto L_08B2D250;
|
|
}
|
|
L_08B2D250:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_5 = (static_cast<std::int32_t>(ctx.gpr[18]) < static_cast<std::int32_t>(aot_gpr_5) ? 1u : 0u);
|
|
if (aot_gpr_5 != 0u) {
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
goto L_08B2D26C;
|
|
}
|
|
goto L_08B2D264;
|
|
L_08B2D264:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_4 = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2D28C;
|
|
}
|
|
goto L_08B2D26C;
|
|
}
|
|
L_08B2D26C:
|
|
aot_gpr_5 = (aot_gpr_5 + ctx.gpr[18]);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_gpr_5 & 128u);
|
|
if (aot_gpr_5 == 0u) {
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
goto L_08B2D288;
|
|
}
|
|
goto L_08B2D280;
|
|
L_08B2D280:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_4 = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2D28C;
|
|
}
|
|
goto L_08B2D288;
|
|
}
|
|
L_08B2D288:
|
|
aot_gpr_4 = (aot_gpr_4 + ctx.gpr[21]);
|
|
goto L_08B2D28C;
|
|
L_08B2D28C:
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2D2D8;
|
|
}
|
|
goto L_08B2D294;
|
|
}
|
|
L_08B2D294:
|
|
aot_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast<std::uint32_t>(86))))));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(16)));
|
|
{ const bool branch_taken = aot_gpr_5 == ctx.gpr[6];
|
|
if (branch_taken) {
|
|
goto L_08B2D2B0;
|
|
}
|
|
goto L_08B2D2A4;
|
|
}
|
|
L_08B2D2A4:
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(20)));
|
|
{ const bool branch_taken = aot_gpr_5 != ctx.gpr[6];
|
|
if (branch_taken) {
|
|
goto L_08B2D2D8;
|
|
}
|
|
goto L_08B2D2B0;
|
|
}
|
|
L_08B2D2B0:
|
|
aot_fpr_12 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_fpr_13 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
aot_fpr_14 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
ctx.fpr[16] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[28]));
|
|
aot_gpr_31 = (0x08B2D2CCu);
|
|
ctx.fpr[17] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(aot_fpr_30));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 799u, 0x08AAF984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D2CCu) goto L_08B2D2CC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D2CC:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2D2D8;
|
|
}
|
|
goto L_08B2D2D4;
|
|
}
|
|
L_08B2D2D4:
|
|
ctx.gpr[19] = (0u | 1u);
|
|
goto L_08B2D2D8;
|
|
L_08B2D2D8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2D234;
|
|
}
|
|
goto L_08B2D2E0;
|
|
}
|
|
L_08B2D2E0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
goto L_08B2D2E4;
|
|
L_08B2D2E4:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
ctx.gpr[6] = (0u < ctx.gpr[19] ? 1u : 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] & 255u);
|
|
ctx.gpr[6] = (ctx.gpr[6] & 255u);
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
ctx.gpr[19] = (ctx.gpr[6] ^ aot_gpr_4);
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
ctx.gpr[19] = (0u < ctx.gpr[19] ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2D30C;
|
|
}
|
|
goto L_08B2D304;
|
|
}
|
|
L_08B2D304:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(ctx.gpr[19]));
|
|
if (branch_taken) {
|
|
goto L_08B2D354;
|
|
}
|
|
goto L_08B2D30C;
|
|
}
|
|
L_08B2D30C:
|
|
aot_gpr_4 = (aot_gpr_16 + static_cast<std::uint32_t>(518));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[6] = (static_cast<std::int32_t>(aot_gpr_5) < 9 ? 1u : 0u);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store16(aot_gpr_4 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(aot_gpr_5));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2D338;
|
|
}
|
|
goto L_08B2D32C;
|
|
}
|
|
L_08B2D32C:
|
|
aot_gpr_4 = (ctx.gpr[19] & aot_gpr_4);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2D354;
|
|
}
|
|
goto L_08B2D338;
|
|
}
|
|
L_08B2D338:
|
|
aot_gpr_4 = (ctx.gpr[19] | aot_gpr_4);
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2D354;
|
|
}
|
|
goto L_08B2D350;
|
|
}
|
|
L_08B2D350:
|
|
aot_mem.aot_direct_store16(aot_gpr_16 + static_cast<std::uint32_t>(518), static_cast<std::uint16_t>(0u));
|
|
goto L_08B2D354;
|
|
L_08B2D354:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[13]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_run_words[2]);
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_run_words[3]);
|
|
ctx.fpr[28] = std::bit_cast<float>(aot_run_words[4]);
|
|
aot_fpr_30 = std::bit_cast<float>(aot_run_words[5]);
|
|
aot_gpr_16 = aot_run_words[6];
|
|
aot_gpr_17 = aot_run_words[7];
|
|
ctx.gpr[18] = aot_run_words[8];
|
|
ctx.gpr[19] = aot_run_words[9];
|
|
ctx.gpr[20] = aot_run_words[10];
|
|
ctx.gpr[21] = aot_run_words[11];
|
|
aot_gpr_31 = aot_run_words[12];
|
|
}
|
|
jump_target = aot_gpr_31;
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(64));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2D394:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2D3BCu);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D3BCu) goto L_08B2D3BC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D3BC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2D3C8u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D3C8u) goto L_08B2D3C8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D3C8:
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(468)));
|
|
if (branch_taken) {
|
|
goto L_08B2D3E4;
|
|
}
|
|
goto L_08B2D3D8;
|
|
}
|
|
L_08B2D3D8:
|
|
aot_gpr_4 = (aot_gpr_4 | 4u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(468), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B2D3F0;
|
|
}
|
|
goto L_08B2D3E4;
|
|
}
|
|
L_08B2D3E4:
|
|
ctx.gpr[6] = (0u + static_cast<std::uint32_t>(-5));
|
|
aot_gpr_4 = (aot_gpr_4 & ctx.gpr[6]);
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(468), aot_gpr_4);
|
|
goto L_08B2D3F0;
|
|
L_08B2D3F0:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2D408:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_gpr_16);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_31);
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_31 = (0x08B2D428u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D428u) goto L_08B2D428;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D428:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2D434u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D434u) goto L_08B2D434;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D434:
|
|
aot_gpr_4 = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2D444;
|
|
}
|
|
goto L_08B2D440;
|
|
}
|
|
L_08B2D440:
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(1864), 0u);
|
|
goto L_08B2D444;
|
|
L_08B2D444:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
jump_target = aot_gpr_31;
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2D458:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-48));
|
|
{ const std::uint32_t aot_run_words[8]{aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
ctx.gpr[22] = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
ctx.gpr[21] = (0u | 1u);
|
|
ctx.gpr[20] = (2236u << 16u);
|
|
ctx.gpr[7] = (ctx.gpr[20] + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_5 = (ctx.gpr[22] | 0u);
|
|
aot_gpr_31 = (0x08B2D49Cu);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D49Cu) goto L_08B2D49C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D49C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15972)));
|
|
aot_gpr_31 = (0x08B2D4A8u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 438u, 0x08B65CC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D4A8u) goto L_08B2D4A8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D4A8:
|
|
ctx.gpr[19] = (ctx.gpr[2] | 0u);
|
|
aot_gpr_4 = (ctx.gpr[19] | 0u);
|
|
aot_gpr_31 = (0x08B2D4B8u);
|
|
aot_gpr_5 = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 641u, 0x089CA714u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D4B8u) goto L_08B2D4B8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D4B8:
|
|
ctx.gpr[18] = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[18] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2D624;
|
|
}
|
|
goto L_08B2D4C4;
|
|
}
|
|
L_08B2D4C4:
|
|
aot_gpr_17 = (0u | 2u);
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_31 = (0x08B2D4D4u);
|
|
aot_gpr_5 = (0u | 2u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D4D4u) goto L_08B2D4D4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D4D4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(456)));
|
|
aot_gpr_5 = (65532u << 16u);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast<std::uint32_t>(456), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(460)));
|
|
aot_gpr_5 = (65024u << 16u);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast<std::uint32_t>(460), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(464)));
|
|
aot_gpr_5 = (61440u << 16u);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast<std::uint32_t>(464), aot_gpr_4);
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast<std::uint32_t>(614))))));
|
|
aot_gpr_4 = (aot_gpr_4 & 2u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2D534;
|
|
}
|
|
goto L_08B2D520;
|
|
}
|
|
L_08B2D520:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(456)));
|
|
aot_gpr_5 = (65528u << 16u);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast<std::uint32_t>(456), aot_gpr_4);
|
|
goto L_08B2D534;
|
|
L_08B2D534:
|
|
aot_gpr_4 = (ctx.gpr[19] + static_cast<std::uint32_t>(48));
|
|
{ const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(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<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_31 = (0x08B2D54Cu);
|
|
aot_gpr_5 = (ctx.gpr[19] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D54Cu) goto L_08B2D54C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D54C:
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_31 = (0x08B2D558u);
|
|
aot_gpr_5 = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D558u) goto L_08B2D558;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D558:
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_31 = (0x08B2D564u);
|
|
aot_gpr_5 = (0u | 55u);
|
|
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 == 0x08B2D564u) goto L_08B2D564;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D564:
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_5 = (ctx.gpr[19] | 0u);
|
|
aot_gpr_31 = (0x08B2D574u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 307u, 0x089B56FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D574u) goto L_08B2D574;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D574:
|
|
aot_gpr_4 = (ctx.gpr[19] | 0u);
|
|
aot_gpr_31 = (0x08B2D580u);
|
|
aot_gpr_5 = (ctx.gpr[18] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 72u, 0x08B00520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D580u) goto L_08B2D580;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D580:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(72)));
|
|
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-497));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_gpr_4 = (aot_gpr_4 | 48u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast<std::uint32_t>(72), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(852)));
|
|
{ const bool branch_taken = aot_gpr_4 == ctx.gpr[21];
|
|
if (branch_taken) {
|
|
goto L_08B2D5B4;
|
|
}
|
|
goto L_08B2D5A0;
|
|
}
|
|
L_08B2D5A0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(852)));
|
|
{ const bool branch_taken = aot_gpr_4 == aot_gpr_17;
|
|
if (branch_taken) {
|
|
goto L_08B2D5B4;
|
|
}
|
|
goto L_08B2D5AC;
|
|
}
|
|
L_08B2D5AC:
|
|
aot_gpr_4 = (0u | 0u);
|
|
aot_mem.aot_direct_store8(ctx.gpr[19] + static_cast<std::uint32_t>(533), static_cast<std::uint8_t>(aot_gpr_4));
|
|
goto L_08B2D5B4;
|
|
L_08B2D5B4:
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast<std::uint32_t>(613))))));
|
|
aot_gpr_4 = (aot_gpr_4 | 16u);
|
|
aot_mem.aot_direct_store8(ctx.gpr[19] + static_cast<std::uint32_t>(613), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-5336)));
|
|
aot_gpr_31 = (0x08B2D5CCu);
|
|
aot_gpr_5 = (aot_gpr_29 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D5CCu) goto L_08B2D5CC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D5CC:
|
|
aot_mem.aot_direct_store8(ctx.gpr[18] + static_cast<std::uint32_t>(312), static_cast<std::uint8_t>(ctx.gpr[2]));
|
|
aot_gpr_31 = (0x08B2D5D8u);
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 540u, 0x08B26CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D5D8u) goto L_08B2D5D8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D5D8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2D5E4u);
|
|
aot_gpr_5 = (ctx.gpr[18] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 775u, 0x08B67368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D5E4u) goto L_08B2D5E4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D5E4:
|
|
aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast<std::uint32_t>(29704), ctx.gpr[2]);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (ctx.gpr[22] | 0u);
|
|
aot_gpr_31 = (0x08B2D5F8u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08862890, 23u, 431u, 0x08862890u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], ctx.gpr[11], aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], 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_0023_entry, 23u, 431u, 0x08862890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D5F8u) goto L_08B2D5F8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D5F8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(522)));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2D63C;
|
|
}
|
|
goto L_08B2D604;
|
|
}
|
|
L_08B2D604:
|
|
aot_gpr_4 = (2239u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(21784));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(29704)));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2D61Cu);
|
|
ctx.gpr[7] = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D61Cu) goto L_08B2D61C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D61C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2D63C;
|
|
}
|
|
goto L_08B2D624;
|
|
}
|
|
L_08B2D624:
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast<std::uint32_t>(29704), aot_gpr_4);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (ctx.gpr[22] | 0u);
|
|
aot_gpr_31 = (0x08B2D63Cu);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08862890, 23u, 431u, 0x08862890u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], ctx.gpr[11], aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], 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_0023_entry, 23u, 431u, 0x08862890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D63Cu) goto L_08B2D63C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D63C:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[8]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_gpr_17 = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[19] = aot_run_words[3];
|
|
ctx.gpr[20] = aot_run_words[4];
|
|
ctx.gpr[21] = aot_run_words[5];
|
|
ctx.gpr[22] = aot_run_words[6];
|
|
aot_gpr_31 = aot_run_words[7];
|
|
}
|
|
jump_target = aot_gpr_31;
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(48));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2D668:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-48));
|
|
{ const std::uint32_t aot_run_words[7]{aot_gpr_16, aot_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<std::uint32_t>(16), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
ctx.gpr[21] = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
ctx.gpr[20] = (2236u << 16u);
|
|
ctx.gpr[19] = (ctx.gpr[20] + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_5 = (ctx.gpr[21] | 0u);
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2D6A8u);
|
|
ctx.gpr[7] = (ctx.gpr[19] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D6A8u) goto L_08B2D6A8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D6A8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15972)));
|
|
aot_gpr_31 = (0x08B2D6B4u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 438u, 0x08B65CC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D6B4u) goto L_08B2D6B4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D6B4:
|
|
ctx.gpr[18] = (ctx.gpr[2] | 0u);
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_31 = (0x08B2D6C4u);
|
|
aot_gpr_5 = (0u | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 641u, 0x089CA714u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D6C4u) goto L_08B2D6C4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D6C4:
|
|
aot_gpr_17 = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = aot_gpr_17 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2D814;
|
|
}
|
|
goto L_08B2D6D0;
|
|
}
|
|
L_08B2D6D0:
|
|
aot_gpr_4 = (aot_gpr_17 | 0u);
|
|
aot_gpr_31 = (0x08B2D6DCu);
|
|
aot_gpr_5 = (0u | 2u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D6DCu) goto L_08B2D6DC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D6DC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(456)));
|
|
aot_gpr_5 = (65532u << 16u);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_17 + static_cast<std::uint32_t>(456), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(460)));
|
|
aot_gpr_5 = (65024u << 16u);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_17 + static_cast<std::uint32_t>(460), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(464)));
|
|
aot_gpr_5 = (61440u << 16u);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_17 + static_cast<std::uint32_t>(464), aot_gpr_4);
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast<std::uint32_t>(614))))));
|
|
aot_gpr_4 = (aot_gpr_4 & 2u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2D73C;
|
|
}
|
|
goto L_08B2D728;
|
|
}
|
|
L_08B2D728:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(456)));
|
|
aot_gpr_5 = (65528u << 16u);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_17 + static_cast<std::uint32_t>(456), aot_gpr_4);
|
|
goto L_08B2D73C;
|
|
L_08B2D73C:
|
|
aot_gpr_4 = (ctx.gpr[18] + static_cast<std::uint32_t>(48));
|
|
{ const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(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<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(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<std::uint32_t>(-5336)));
|
|
aot_gpr_31 = (0x08B2D754u);
|
|
aot_gpr_5 = (aot_gpr_29 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D754u) goto L_08B2D754;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D754:
|
|
aot_mem.aot_direct_store8(aot_gpr_17 + static_cast<std::uint32_t>(312), static_cast<std::uint8_t>(ctx.gpr[2]));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_4) >= 0;
|
|
if (branch_taken) {
|
|
goto L_08B2D778;
|
|
}
|
|
goto L_08B2D764;
|
|
}
|
|
L_08B2D764:
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_31 = (0x08B2D770u);
|
|
aot_gpr_5 = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 10u, 0x08B000ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D770u) goto L_08B2D770;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D770:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2D78C;
|
|
}
|
|
goto L_08B2D778;
|
|
}
|
|
L_08B2D778:
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[6] = (ctx.gpr[6] & 255u);
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_31 = (0x08B2D78Cu);
|
|
aot_gpr_5 = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 24u, 0x08B00214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D78Cu) goto L_08B2D78C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D78C:
|
|
aot_gpr_4 = (aot_gpr_17 | 0u);
|
|
aot_gpr_31 = (0x08B2D798u);
|
|
aot_gpr_5 = (ctx.gpr[18] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D798u) goto L_08B2D798;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D798:
|
|
aot_gpr_4 = (aot_gpr_17 | 0u);
|
|
aot_gpr_31 = (0x08B2D7A4u);
|
|
aot_gpr_5 = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D7A4u) goto L_08B2D7A4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D7A4:
|
|
aot_gpr_4 = (aot_gpr_17 | 0u);
|
|
aot_gpr_31 = (0x08B2D7B0u);
|
|
aot_gpr_5 = (0u | 55u);
|
|
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 == 0x08B2D7B0u) goto L_08B2D7B0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D7B0:
|
|
aot_gpr_4 = (aot_gpr_17 | 0u);
|
|
aot_gpr_5 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_31 = (0x08B2D7C0u);
|
|
ctx.gpr[6] = (0u | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 307u, 0x089B56FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D7C0u) goto L_08B2D7C0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D7C0:
|
|
aot_gpr_31 = (0x08B2D7C8u);
|
|
aot_gpr_4 = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 540u, 0x08B26CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D7C8u) goto L_08B2D7C8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D7C8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2D7D4u);
|
|
aot_gpr_5 = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 775u, 0x08B67368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D7D4u) goto L_08B2D7D4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D7D4:
|
|
aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast<std::uint32_t>(29704), ctx.gpr[2]);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (ctx.gpr[21] | 0u);
|
|
aot_gpr_31 = (0x08B2D7E8u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08862890, 23u, 431u, 0x08862890u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], ctx.gpr[11], aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], 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_0023_entry, 23u, 431u, 0x08862890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D7E8u) goto L_08B2D7E8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D7E8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(522)));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2D82C;
|
|
}
|
|
goto L_08B2D7F4;
|
|
}
|
|
L_08B2D7F4:
|
|
aot_gpr_4 = (2239u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(21784));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(29704)));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2D80Cu);
|
|
ctx.gpr[7] = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D80Cu) goto L_08B2D80C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D80C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2D82C;
|
|
}
|
|
goto L_08B2D814;
|
|
}
|
|
L_08B2D814:
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast<std::uint32_t>(29704), aot_gpr_4);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (ctx.gpr[21] | 0u);
|
|
aot_gpr_31 = (0x08B2D82Cu);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08862890, 23u, 431u, 0x08862890u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], ctx.gpr[11], aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], 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_0023_entry, 23u, 431u, 0x08862890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D82Cu) goto L_08B2D82C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D82C:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[7]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_gpr_17 = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[19] = aot_run_words[3];
|
|
ctx.gpr[20] = aot_run_words[4];
|
|
ctx.gpr[21] = aot_run_words[5];
|
|
aot_gpr_31 = aot_run_words[6];
|
|
}
|
|
jump_target = aot_gpr_31;
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(48));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2D854:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2D87Cu);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D87Cu) goto L_08B2D87C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D87C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2D888u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D888u) goto L_08B2D888;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D888:
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(468)));
|
|
if (branch_taken) {
|
|
goto L_08B2D8A4;
|
|
}
|
|
goto L_08B2D898;
|
|
}
|
|
L_08B2D898:
|
|
aot_gpr_4 = (aot_gpr_4 | 128u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(468), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B2D8B0;
|
|
}
|
|
goto L_08B2D8A4;
|
|
}
|
|
L_08B2D8A4:
|
|
ctx.gpr[6] = (0u + static_cast<std::uint32_t>(-129));
|
|
aot_gpr_4 = (aot_gpr_4 & ctx.gpr[6]);
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(468), aot_gpr_4);
|
|
goto L_08B2D8B0;
|
|
L_08B2D8B0:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2D8C8:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2D8F0u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D8F0u) goto L_08B2D8F0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D8F0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2D8FCu);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D8FCu) goto L_08B2D8FC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D8FC:
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(468)));
|
|
if (branch_taken) {
|
|
goto L_08B2D918;
|
|
}
|
|
goto L_08B2D90C;
|
|
}
|
|
L_08B2D90C:
|
|
aot_gpr_4 = (aot_gpr_4 | 256u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(468), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B2D924;
|
|
}
|
|
goto L_08B2D918;
|
|
}
|
|
L_08B2D918:
|
|
ctx.gpr[6] = (0u + static_cast<std::uint32_t>(-257));
|
|
aot_gpr_4 = (aot_gpr_4 & ctx.gpr[6]);
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(468), aot_gpr_4);
|
|
goto L_08B2D924;
|
|
L_08B2D924:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2D93C:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2D964u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D964u) goto L_08B2D964;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D964:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2D970u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D970u) goto L_08B2D970;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D970:
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(468)));
|
|
if (branch_taken) {
|
|
goto L_08B2D98C;
|
|
}
|
|
goto L_08B2D980;
|
|
}
|
|
L_08B2D980:
|
|
aot_gpr_4 = (aot_gpr_4 | 512u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(468), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B2D998;
|
|
}
|
|
goto L_08B2D98C;
|
|
}
|
|
L_08B2D98C:
|
|
ctx.gpr[6] = (0u + static_cast<std::uint32_t>(-513));
|
|
aot_gpr_4 = (aot_gpr_4 & ctx.gpr[6]);
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(468), aot_gpr_4);
|
|
goto L_08B2D998;
|
|
L_08B2D998:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2D9B0:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[4]{aot_gpr_16, aot_gpr_17, ctx.gpr[18], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_31 = (0x08B2D9DCu);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D9DCu) goto L_08B2D9DC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D9DC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2D9E8u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D9E8u) goto L_08B2D9E8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D9E8:
|
|
ctx.gpr[18] = (ctx.gpr[2] | 0u);
|
|
aot_gpr_17 = (0u | 0u);
|
|
aot_gpr_31 = (0x08B2D9F8u);
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
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 == 0x08B2D9F8u) goto L_08B2D9F8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2D9F8:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2DA34;
|
|
}
|
|
goto L_08B2DA00;
|
|
}
|
|
L_08B2DA00:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(1152)));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2DA34;
|
|
}
|
|
goto L_08B2DA0C;
|
|
}
|
|
L_08B2DA0C:
|
|
aot_gpr_31 = (0x08B2DA14u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 456u, 0x08B01BA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DA14u) goto L_08B2DA14;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DA14:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2DA34;
|
|
}
|
|
goto L_08B2DA1C;
|
|
}
|
|
L_08B2DA1C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(1152)));
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast<std::uint32_t>(86))))));
|
|
aot_gpr_5 = (0u | 219u);
|
|
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
|
|
if (branch_taken) {
|
|
goto L_08B2DA34;
|
|
}
|
|
goto L_08B2DA30;
|
|
}
|
|
L_08B2DA30:
|
|
aot_gpr_17 = (0u | 1u);
|
|
goto L_08B2DA34;
|
|
L_08B2DA34:
|
|
aot_gpr_4 = (0u < aot_gpr_17 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_17 = (aot_gpr_4 ^ aot_gpr_5);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
aot_gpr_17 = (0u < aot_gpr_17 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2DA60;
|
|
}
|
|
goto L_08B2DA58;
|
|
}
|
|
L_08B2DA58:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_17));
|
|
if (branch_taken) {
|
|
goto L_08B2DAA8;
|
|
}
|
|
goto L_08B2DA60;
|
|
}
|
|
L_08B2DA60:
|
|
aot_gpr_4 = (aot_gpr_16 + static_cast<std::uint32_t>(518));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[6] = (static_cast<std::int32_t>(aot_gpr_5) < 9 ? 1u : 0u);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store16(aot_gpr_4 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(aot_gpr_5));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2DA8C;
|
|
}
|
|
goto L_08B2DA80;
|
|
}
|
|
L_08B2DA80:
|
|
aot_gpr_4 = (aot_gpr_17 & aot_gpr_4);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2DAA8;
|
|
}
|
|
goto L_08B2DA8C;
|
|
}
|
|
L_08B2DA8C:
|
|
aot_gpr_4 = (aot_gpr_17 | aot_gpr_4);
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2DAA8;
|
|
}
|
|
goto L_08B2DAA4;
|
|
}
|
|
L_08B2DAA4:
|
|
aot_mem.aot_direct_store16(aot_gpr_16 + static_cast<std::uint32_t>(518), static_cast<std::uint16_t>(0u));
|
|
goto L_08B2DAA8;
|
|
L_08B2DAA8:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[4]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2DAC4:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_31 = (0x08B2DAECu);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DAECu) goto L_08B2DAEC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DAEC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2DAF8u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DAF8u) goto L_08B2DAF8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DAF8:
|
|
aot_gpr_4 = (0u | 0u);
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2DB08;
|
|
}
|
|
goto L_08B2DB04;
|
|
}
|
|
L_08B2DB04:
|
|
aot_gpr_4 = (0u | 1u);
|
|
goto L_08B2DB08;
|
|
L_08B2DB08:
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 ^ aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2DB34;
|
|
}
|
|
goto L_08B2DB2C;
|
|
}
|
|
L_08B2DB2C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2DB7C;
|
|
}
|
|
goto L_08B2DB34;
|
|
}
|
|
L_08B2DB34:
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(518));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[6]) < 9 ? 1u : 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store16(aot_gpr_5 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[6]));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2DB60;
|
|
}
|
|
goto L_08B2DB54;
|
|
}
|
|
L_08B2DB54:
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2DB7C;
|
|
}
|
|
goto L_08B2DB60;
|
|
}
|
|
L_08B2DB60:
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2DB7C;
|
|
}
|
|
goto L_08B2DB78;
|
|
}
|
|
L_08B2DB78:
|
|
aot_mem.aot_direct_store16(aot_gpr_16 + static_cast<std::uint32_t>(518), static_cast<std::uint16_t>(0u));
|
|
goto L_08B2DB7C;
|
|
L_08B2DB7C:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2DB94:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_31 = (0x08B2DBBCu);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DBBCu) goto L_08B2DBBC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DBBC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2DBC8u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DBC8u) goto L_08B2DBC8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DBC8:
|
|
aot_gpr_4 = (0u | 0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(2236)));
|
|
ctx.gpr[6] = (0u | 12u);
|
|
{ const bool branch_taken = aot_gpr_5 != ctx.gpr[6];
|
|
if (branch_taken) {
|
|
goto L_08B2DBE0;
|
|
}
|
|
goto L_08B2DBDC;
|
|
}
|
|
L_08B2DBDC:
|
|
aot_gpr_4 = (0u | 1u);
|
|
goto L_08B2DBE0;
|
|
L_08B2DBE0:
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 ^ aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2DC0C;
|
|
}
|
|
goto L_08B2DC04;
|
|
}
|
|
L_08B2DC04:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2DC54;
|
|
}
|
|
goto L_08B2DC0C;
|
|
}
|
|
L_08B2DC0C:
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(518));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[6]) < 9 ? 1u : 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store16(aot_gpr_5 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[6]));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2DC38;
|
|
}
|
|
goto L_08B2DC2C;
|
|
}
|
|
L_08B2DC2C:
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2DC54;
|
|
}
|
|
goto L_08B2DC38;
|
|
}
|
|
L_08B2DC38:
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2DC54;
|
|
}
|
|
goto L_08B2DC50;
|
|
}
|
|
L_08B2DC50:
|
|
aot_mem.aot_direct_store16(aot_gpr_16 + static_cast<std::uint32_t>(518), static_cast<std::uint16_t>(0u));
|
|
goto L_08B2DC54;
|
|
L_08B2DC54:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2DC6C:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2DC94u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DC94u) goto L_08B2DC94;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DC94:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2DCA0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DCA0u) goto L_08B2DCA0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DCA0:
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(460)));
|
|
ctx.gpr[7] = (0u + static_cast<std::uint32_t>(-513));
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
aot_gpr_4 = (aot_gpr_4 & ctx.gpr[7]);
|
|
if (branch_taken) {
|
|
goto L_08B2DCE4;
|
|
}
|
|
goto L_08B2DCB8;
|
|
}
|
|
L_08B2DCB8:
|
|
aot_gpr_4 = (aot_gpr_4 | 512u);
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(460), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(456)));
|
|
ctx.gpr[6] = (4096u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 | ctx.gpr[6]);
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(456), aot_gpr_4);
|
|
aot_gpr_4 = (aot_gpr_5 | 0u);
|
|
aot_gpr_31 = (0x08B2DCDCu);
|
|
aot_gpr_5 = (0u | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08908E78, 65u, 261u, 0x08908E78u>(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, 261u, 0x08908E78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DCDCu) goto L_08B2DCDC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DCDC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2DD08;
|
|
}
|
|
goto L_08B2DCE4;
|
|
}
|
|
L_08B2DCE4:
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(460), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(456)));
|
|
ctx.gpr[6] = (61440u << 16u);
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (aot_gpr_4 & ctx.gpr[6]);
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(456), aot_gpr_4);
|
|
aot_gpr_4 = (aot_gpr_5 | 0u);
|
|
aot_gpr_31 = (0x08B2DD08u);
|
|
aot_gpr_5 = (0u | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08908E78, 65u, 261u, 0x08908E78u>(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, 261u, 0x08908E78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DD08u) goto L_08B2DD08;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DD08:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2DD20:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_gpr_16);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_31);
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_31 = (0x08B2DD40u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DD40u) goto L_08B2DD40;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DD40:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2DD4Cu);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DD4Cu) goto L_08B2DD4C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DD4C:
|
|
aot_gpr_16 = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = aot_gpr_16 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2DE68;
|
|
}
|
|
goto L_08B2DD58;
|
|
}
|
|
L_08B2DD58:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(2228)));
|
|
aot_gpr_5 = (0u | 55u);
|
|
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
|
|
aot_gpr_5 = (0u | 22u);
|
|
if (branch_taken) {
|
|
goto L_08B2DE68;
|
|
}
|
|
goto L_08B2DD68;
|
|
}
|
|
L_08B2DD68:
|
|
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
|
|
if (branch_taken) {
|
|
goto L_08B2DE68;
|
|
}
|
|
goto L_08B2DD70;
|
|
}
|
|
L_08B2DD70:
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_31 = (0x08B2DD7Cu);
|
|
aot_gpr_5 = (0u | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0890F694, 66u, 781u, 0x0890F694u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, ctx.gpr[6], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0066_entry, 66u, 781u, 0x0890F694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DD7Cu) goto L_08B2DD7C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DD7C:
|
|
aot_gpr_31 = (0x08B2DD84u);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 976u, 0x0890BDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DD84u) goto L_08B2DD84;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DD84:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(2228)));
|
|
aot_gpr_5 = (0u | 61u);
|
|
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
|
|
aot_gpr_5 = (0u | 59u);
|
|
if (branch_taken) {
|
|
goto L_08B2DD9C;
|
|
}
|
|
goto L_08B2DD94;
|
|
}
|
|
L_08B2DD94:
|
|
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
|
|
if (branch_taken) {
|
|
goto L_08B2DDA4;
|
|
}
|
|
goto L_08B2DD9C;
|
|
}
|
|
L_08B2DD9C:
|
|
aot_gpr_31 = (0x08B2DDA4u);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DDA4u) goto L_08B2DDA4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DDA4:
|
|
aot_gpr_31 = (0x08B2DDACu);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(80)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 195u, 0x0886D420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DDACu) goto L_08B2DDAC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DDAC:
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_31 = (0x08B2DDB8u);
|
|
aot_gpr_5 = (0u | 1u);
|
|
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 == 0x08B2DDB8u) goto L_08B2DDB8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DDB8:
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_31 = (0x08B2DDC4u);
|
|
aot_gpr_5 = (0u | 1u);
|
|
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 == 0x08B2DDC4u) goto L_08B2DDC4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DDC4:
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_31 = (0x08B2DDD0u);
|
|
aot_gpr_5 = (0u | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08908E78, 65u, 261u, 0x08908E78u>(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, 261u, 0x08908E78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DDD0u) goto L_08B2DDD0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DDD0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(456)));
|
|
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-8193));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(456), aot_gpr_4);
|
|
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-4097));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(456), aot_gpr_4);
|
|
aot_gpr_31 = (0x08B2DDF4u);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 410u, 0x08909880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DDF4u) goto L_08B2DDF4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DDF4:
|
|
aot_gpr_31 = (0x08B2DDFCu);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08909B60, 65u, 454u, 0x08909B60u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, ctx.gpr[6], aot_gpr_16, aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0065_entry, 65u, 454u, 0x08909B60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DDFCu) goto L_08B2DDFC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DDFC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(456)));
|
|
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-9));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(456), aot_gpr_4);
|
|
aot_gpr_31 = (0x08B2DE14u);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0890D44C, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DE14u) goto L_08B2DE14;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DE14:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2DE30;
|
|
}
|
|
goto L_08B2DE1C;
|
|
}
|
|
L_08B2DE1C:
|
|
aot_fpr_12 = std::bit_cast<float>(0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(3156), std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(80)));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(776)));
|
|
if (branch_taken) {
|
|
goto L_08B2DE44;
|
|
}
|
|
goto L_08B2DE30;
|
|
}
|
|
L_08B2DE30:
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_31 = (0x08B2DE3Cu);
|
|
aot_gpr_5 = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 304u, 0x08911138u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DE3Cu) goto L_08B2DE3C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DE3C:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(80)));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(776)));
|
|
goto L_08B2DE44;
|
|
L_08B2DE44:
|
|
ctx.gpr[6] = (aot_gpr_4 | 0u);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_31 = (0x08B2DE54u);
|
|
ctx.gpr[7] = (0u | 6u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DE54u) goto L_08B2DE54;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DE54:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(456)));
|
|
aot_gpr_5 = (57344u << 16u);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(456), aot_gpr_4);
|
|
goto L_08B2DE68;
|
|
L_08B2DE68:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
jump_target = aot_gpr_31;
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2DE7C:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_gpr_16);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_31);
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_31 = (0x08B2DE9Cu);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DE9Cu) goto L_08B2DE9C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DE9C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2DEA8u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DEA8u) goto L_08B2DEA8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DEA8:
|
|
aot_gpr_16 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(1340)));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2DED4;
|
|
}
|
|
goto L_08B2DEB8;
|
|
}
|
|
L_08B2DEB8:
|
|
aot_gpr_31 = (0x08B2DEC0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DEC0u) goto L_08B2DEC0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DEC0:
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(1340)));
|
|
aot_gpr_4 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 | 0u);
|
|
aot_gpr_31 = (0x08B2DED4u);
|
|
ctx.gpr[7] = (0u | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 746u, 0x08A02EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DED4u) goto L_08B2DED4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DED4:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
jump_target = aot_gpr_31;
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2DEE8:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_31 = (0x08B2DF10u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DF10u) goto L_08B2DF10;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DF10:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2DF1Cu);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DF1Cu) goto L_08B2DF1C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DF1C:
|
|
aot_gpr_4 = (0u | 0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(464)));
|
|
ctx.gpr[6] = (1u << 16u);
|
|
aot_gpr_5 = (aot_gpr_5 & ctx.gpr[6]);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2DF38;
|
|
}
|
|
goto L_08B2DF34;
|
|
}
|
|
L_08B2DF34:
|
|
aot_gpr_4 = (0u | 1u);
|
|
goto L_08B2DF38;
|
|
L_08B2DF38:
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 ^ aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2DF64;
|
|
}
|
|
goto L_08B2DF5C;
|
|
}
|
|
L_08B2DF5C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2DFAC;
|
|
}
|
|
goto L_08B2DF64;
|
|
}
|
|
L_08B2DF64:
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(518));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[6]) < 9 ? 1u : 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store16(aot_gpr_5 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[6]));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2DF90;
|
|
}
|
|
goto L_08B2DF84;
|
|
}
|
|
L_08B2DF84:
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2DFAC;
|
|
}
|
|
goto L_08B2DF90;
|
|
}
|
|
L_08B2DF90:
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2DFAC;
|
|
}
|
|
goto L_08B2DFA8;
|
|
}
|
|
L_08B2DFA8:
|
|
aot_mem.aot_direct_store16(aot_gpr_16 + static_cast<std::uint32_t>(518), static_cast<std::uint16_t>(0u));
|
|
goto L_08B2DFAC;
|
|
L_08B2DFAC:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2DFC4:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[4]{aot_gpr_16, aot_gpr_17, ctx.gpr[18], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_17 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_17 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
ctx.gpr[18] = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2DFF4u);
|
|
ctx.gpr[7] = (ctx.gpr[18] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DFF4u) goto L_08B2DFF4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2DFF4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2E000u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E000u) goto L_08B2E000;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E000:
|
|
aot_gpr_16 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(236)));
|
|
if (branch_taken) {
|
|
goto L_08B2E050;
|
|
}
|
|
goto L_08B2E010;
|
|
}
|
|
L_08B2E010:
|
|
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-8193));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(236), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast<std::uint32_t>(522)));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E0AC;
|
|
}
|
|
goto L_08B2E028;
|
|
}
|
|
L_08B2E028:
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_31 = (0x08B2E034u);
|
|
aot_gpr_5 = (0u | 2u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E034u) goto L_08B2E034;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E034:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(76)));
|
|
aot_gpr_4 = (aot_gpr_4 | 2048u);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(76), aot_gpr_4);
|
|
aot_gpr_31 = (0x08B2E048u);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E048u) goto L_08B2E048;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E048:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E0AC;
|
|
}
|
|
goto L_08B2E050;
|
|
}
|
|
L_08B2E050:
|
|
aot_gpr_4 = (aot_gpr_4 | 8192u);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(236), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(76)));
|
|
aot_gpr_5 = (aot_gpr_4 & 2048u);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E0AC;
|
|
}
|
|
goto L_08B2E068;
|
|
}
|
|
L_08B2E068:
|
|
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2049));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(76), aot_gpr_4);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(72)));
|
|
aot_gpr_5 = (aot_gpr_5 & 2048u);
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
aot_gpr_4 = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2E094;
|
|
}
|
|
goto L_08B2E084;
|
|
}
|
|
L_08B2E084:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(76)));
|
|
aot_gpr_5 = (aot_gpr_5 & 2048u);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
if (branch_taken) {
|
|
goto L_08B2E09C;
|
|
}
|
|
goto L_08B2E094;
|
|
}
|
|
L_08B2E094:
|
|
aot_gpr_4 = (0u | 1u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
goto L_08B2E09C;
|
|
L_08B2E09C:
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E0AC;
|
|
}
|
|
goto L_08B2E0A4;
|
|
}
|
|
L_08B2E0A4:
|
|
aot_gpr_31 = (0x08B2E0ACu);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E0ACu) goto L_08B2E0AC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E0AC:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[4]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2E0C8:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_31 = (0x08B2E0F0u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E0F0u) goto L_08B2E0F0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E0F0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2E0FCu);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E0FCu) goto L_08B2E0FC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E0FC:
|
|
aot_gpr_4 = (0u | 0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(468)));
|
|
aot_gpr_5 = (aot_gpr_5 & 8192u);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E114;
|
|
}
|
|
goto L_08B2E110;
|
|
}
|
|
L_08B2E110:
|
|
aot_gpr_4 = (0u | 1u);
|
|
goto L_08B2E114;
|
|
L_08B2E114:
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 ^ aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2E140;
|
|
}
|
|
goto L_08B2E138;
|
|
}
|
|
L_08B2E138:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2E188;
|
|
}
|
|
goto L_08B2E140;
|
|
}
|
|
L_08B2E140:
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(518));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[6]) < 9 ? 1u : 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store16(aot_gpr_5 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[6]));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2E16C;
|
|
}
|
|
goto L_08B2E160;
|
|
}
|
|
L_08B2E160:
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2E188;
|
|
}
|
|
goto L_08B2E16C;
|
|
}
|
|
L_08B2E16C:
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E188;
|
|
}
|
|
goto L_08B2E184;
|
|
}
|
|
L_08B2E184:
|
|
aot_mem.aot_direct_store16(aot_gpr_16 + static_cast<std::uint32_t>(518), static_cast<std::uint16_t>(0u));
|
|
goto L_08B2E188;
|
|
L_08B2E188:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2E1A0:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-96));
|
|
{ const std::uint32_t aot_run_words[16]{std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[22]), std::bit_cast<std::uint32_t>(ctx.fpr[24]), std::bit_cast<std::uint32_t>(ctx.fpr[26]), std::bit_cast<std::uint32_t>(ctx.fpr[28]), std::bit_cast<std::uint32_t>(aot_fpr_30), aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], ctx.gpr[30], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_run_words); }
|
|
ctx.gpr[20] = (aot_gpr_4 | 0u);
|
|
aot_gpr_16 = (ctx.gpr[20] + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[19] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_5 = (aot_gpr_16 | 0u);
|
|
ctx.gpr[6] = (0u | 7u);
|
|
aot_gpr_31 = (0x08B2E204u);
|
|
ctx.gpr[7] = (ctx.gpr[19] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E204u) goto L_08B2E204;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E204:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[19] + static_cast<std::uint32_t>(4), aot_run_words);
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[18] = (0u + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_31 = (0x08B2E228u);
|
|
aot_gpr_4 = (aot_gpr_29 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E228u) goto L_08B2E228;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E228:
|
|
aot_fpr_30 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_4 = (16544u << 16u);
|
|
aot_fpr_12 = std::bit_cast<float>(aot_gpr_4);
|
|
ctx.fpr[28] = aot_fpr_30 - aot_fpr_12;
|
|
aot_fpr_30 = aot_fpr_30 + aot_fpr_12;
|
|
ctx.gpr[30] = (65532u << 16u);
|
|
ctx.gpr[30] = (ctx.gpr[30] + static_cast<std::uint32_t>(-1));
|
|
ctx.gpr[23] = (2239u << 16u);
|
|
ctx.gpr[23] = (ctx.gpr[23] + static_cast<std::uint32_t>(21784));
|
|
ctx.gpr[22] = (aot_gpr_17 + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(3344));
|
|
{ const std::int64_t product = static_cast<std::int64_t>(static_cast<std::int32_t>(aot_gpr_17)) * static_cast<std::int64_t>(static_cast<std::int32_t>(aot_gpr_4)); ctx.lo = static_cast<std::uint32_t>(product); ctx.hi = static_cast<std::uint32_t>(static_cast<std::uint64_t>(product) >> 32u); }
|
|
ctx.gpr[21] = (ctx.lo);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_gpr_16);
|
|
aot_gpr_4 = (aot_gpr_17 | 0u);
|
|
goto L_08B2E264;
|
|
L_08B2E264:
|
|
aot_gpr_17 = (ctx.gpr[22] | 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
ctx.gpr[21] = (ctx.gpr[21] + static_cast<std::uint32_t>(-3344));
|
|
if (branch_taken) {
|
|
goto L_08B2E420;
|
|
}
|
|
goto L_08B2E270;
|
|
}
|
|
L_08B2E270:
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-1));
|
|
{ const bool branch_taken = ctx.gpr[18] != aot_gpr_4;
|
|
aot_gpr_4 = (2236u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B2E424;
|
|
}
|
|
goto L_08B2E27C;
|
|
}
|
|
L_08B2E27C:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_17) < 0;
|
|
ctx.gpr[22] = (aot_gpr_17 + static_cast<std::uint32_t>(-1));
|
|
if (branch_taken) {
|
|
goto L_08B2E298;
|
|
}
|
|
goto L_08B2E284;
|
|
}
|
|
L_08B2E284:
|
|
aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_17) < static_cast<std::int32_t>(aot_gpr_4) ? 1u : 0u);
|
|
if (aot_gpr_4 != 0u) {
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
goto L_08B2E2A0;
|
|
}
|
|
goto L_08B2E298;
|
|
L_08B2E298:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_16 = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2E2C0;
|
|
}
|
|
goto L_08B2E2A0;
|
|
}
|
|
L_08B2E2A0:
|
|
aot_gpr_4 = (aot_gpr_4 + aot_gpr_17);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_4 & 128u);
|
|
if (aot_gpr_4 == 0u) {
|
|
aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
goto L_08B2E2BC;
|
|
}
|
|
goto L_08B2E2B4;
|
|
L_08B2E2B4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_16 = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2E2C0;
|
|
}
|
|
goto L_08B2E2BC;
|
|
}
|
|
L_08B2E2BC:
|
|
aot_gpr_16 = (aot_gpr_16 + ctx.gpr[21]);
|
|
goto L_08B2E2C0;
|
|
L_08B2E2C0:
|
|
{ const bool branch_taken = aot_gpr_16 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E418;
|
|
}
|
|
goto L_08B2E2C8;
|
|
}
|
|
L_08B2E2C8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2E2D4u);
|
|
aot_gpr_5 = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 775u, 0x08B67368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E2D4u) goto L_08B2E2D4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E2D4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7980)));
|
|
{ const bool branch_taken = ctx.gpr[2] == aot_gpr_4;
|
|
if (branch_taken) {
|
|
goto L_08B2E418;
|
|
}
|
|
goto L_08B2E2E0;
|
|
}
|
|
L_08B2E2E0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(2276)));
|
|
aot_gpr_5 = (0u | 1u);
|
|
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
|
|
if (branch_taken) {
|
|
goto L_08B2E418;
|
|
}
|
|
goto L_08B2E2F0;
|
|
}
|
|
L_08B2E2F0:
|
|
aot_gpr_31 = (0x08B2E2F8u);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
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 == 0x08B2E2F8u) goto L_08B2E2F8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E2F8:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E418;
|
|
}
|
|
goto L_08B2E300;
|
|
}
|
|
L_08B2E300:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(76)));
|
|
aot_gpr_4 = (aot_gpr_4 & 1u);
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
aot_gpr_4 = (32768u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B2E418;
|
|
}
|
|
goto L_08B2E310;
|
|
}
|
|
L_08B2E310:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(460)));
|
|
aot_gpr_4 = (aot_gpr_5 & aot_gpr_4);
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E418;
|
|
}
|
|
goto L_08B2E320;
|
|
}
|
|
L_08B2E320:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(2236)));
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
aot_gpr_4 = (1u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B2E418;
|
|
}
|
|
goto L_08B2E32C;
|
|
}
|
|
L_08B2E32C:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(464)));
|
|
aot_gpr_4 = (aot_gpr_5 & aot_gpr_4);
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E418;
|
|
}
|
|
goto L_08B2E33C;
|
|
}
|
|
L_08B2E33C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(1340)));
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E418;
|
|
}
|
|
goto L_08B2E348;
|
|
}
|
|
L_08B2E348:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(1360)));
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[19] + static_cast<std::uint32_t>(16), aot_run_words);
|
|
ctx.gpr[6] = aot_run_words[0];
|
|
ctx.gpr[7] = aot_run_words[1];
|
|
ctx.gpr[8] = aot_run_words[2];
|
|
}
|
|
aot_gpr_31 = (0x08B2E360u);
|
|
aot_gpr_4 = (ctx.gpr[20] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 563u, 0x08863028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E360u) goto L_08B2E360;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E360:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
aot_gpr_4 = (2u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B2E418;
|
|
}
|
|
goto L_08B2E368;
|
|
}
|
|
L_08B2E368:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(460)));
|
|
aot_gpr_4 = (aot_gpr_5 & aot_gpr_4);
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E418;
|
|
}
|
|
goto L_08B2E378;
|
|
}
|
|
L_08B2E378:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(676)));
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E418;
|
|
}
|
|
goto L_08B2E384;
|
|
}
|
|
L_08B2E384:
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_fpr_12 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_fpr_13 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
aot_fpr_14 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
aot_gpr_31 = (0x08B2E39Cu);
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 788u, 0x08AAF8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E39Cu) goto L_08B2E39C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E39C:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E418;
|
|
}
|
|
goto L_08B2E3A4;
|
|
}
|
|
L_08B2E3A4:
|
|
aot_gpr_4 = (aot_gpr_16 + static_cast<std::uint32_t>(48));
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[28])) ? 0x00800000u : 0u);
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2E418;
|
|
}
|
|
goto L_08B2E3BC;
|
|
}
|
|
L_08B2E3BC:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_30)) ? 0x00800000u : 0u);
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2E418;
|
|
}
|
|
goto L_08B2E3CC;
|
|
}
|
|
L_08B2E3CC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2E3D8u);
|
|
aot_gpr_5 = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 775u, 0x08B67368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E3D8u) goto L_08B2E3D8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E3D8:
|
|
ctx.gpr[18] = (ctx.gpr[2] | 0u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast<std::uint32_t>(7980), ctx.gpr[18]);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_31 = (0x08B2E3ECu);
|
|
aot_gpr_5 = (0u | 2u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E3ECu) goto L_08B2E3EC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E3EC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(456)));
|
|
aot_gpr_4 = (aot_gpr_4 & ctx.gpr[30]);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(456), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast<std::uint32_t>(522)));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E418;
|
|
}
|
|
goto L_08B2E404;
|
|
}
|
|
L_08B2E404:
|
|
aot_gpr_4 = (ctx.gpr[23] | 0u);
|
|
aot_gpr_5 = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2E418u);
|
|
ctx.gpr[7] = (ctx.gpr[20] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E418u) goto L_08B2E418;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E418:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_4 = (aot_gpr_17 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2E264;
|
|
}
|
|
goto L_08B2E420;
|
|
}
|
|
L_08B2E420:
|
|
aot_gpr_4 = (2236u << 16u);
|
|
goto L_08B2E424;
|
|
L_08B2E424:
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(29704), ctx.gpr[18]);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
|
|
aot_gpr_4 = (ctx.gpr[20] | 0u);
|
|
aot_gpr_31 = (0x08B2E438u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08862890, 23u, 431u, 0x08862890u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], ctx.gpr[11], aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], 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_0023_entry, 23u, 431u, 0x08862890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E438u) goto L_08B2E438;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E438:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[16]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_run_words);
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_run_words[2]);
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_run_words[3]);
|
|
ctx.fpr[28] = std::bit_cast<float>(aot_run_words[4]);
|
|
aot_fpr_30 = std::bit_cast<float>(aot_run_words[5]);
|
|
aot_gpr_16 = aot_run_words[6];
|
|
aot_gpr_17 = aot_run_words[7];
|
|
ctx.gpr[18] = aot_run_words[8];
|
|
ctx.gpr[19] = aot_run_words[9];
|
|
ctx.gpr[20] = aot_run_words[10];
|
|
ctx.gpr[21] = aot_run_words[11];
|
|
ctx.gpr[22] = aot_run_words[12];
|
|
ctx.gpr[23] = aot_run_words[13];
|
|
ctx.gpr[30] = aot_run_words[14];
|
|
aot_gpr_31 = aot_run_words[15];
|
|
}
|
|
jump_target = aot_gpr_31;
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(96));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2E484:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2E4ACu);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E4ACu) goto L_08B2E4AC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E4AC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(7));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_31 = (0x08B2E4C4u);
|
|
aot_gpr_5 = (aot_gpr_5 & 255u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 531u, 0x08A87734u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E4C4u) goto L_08B2E4C4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E4C4:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2E4DC:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2E504u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E504u) goto L_08B2E504;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E504:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2E510u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E510u) goto L_08B2E510;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E510:
|
|
ctx.gpr[6] = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[6] + static_cast<std::uint32_t>(464)));
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[6] + static_cast<std::uint32_t>(468)));
|
|
if (branch_taken) {
|
|
goto L_08B2E540;
|
|
}
|
|
goto L_08B2E524;
|
|
}
|
|
L_08B2E524:
|
|
ctx.gpr[7] = (1024u << 16u);
|
|
aot_gpr_5 = (aot_gpr_5 | ctx.gpr[7]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[6] + static_cast<std::uint32_t>(464), aot_gpr_5);
|
|
aot_gpr_5 = (64u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[6] + static_cast<std::uint32_t>(468), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B2E560;
|
|
}
|
|
goto L_08B2E540;
|
|
}
|
|
L_08B2E540:
|
|
ctx.gpr[7] = (64512u << 16u);
|
|
ctx.gpr[7] = (ctx.gpr[7] + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_5 = (aot_gpr_5 & ctx.gpr[7]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[6] + static_cast<std::uint32_t>(464), aot_gpr_5);
|
|
aot_gpr_5 = (65472u << 16u);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_mem.aot_direct_store32(ctx.gpr[6] + static_cast<std::uint32_t>(468), aot_gpr_4);
|
|
goto L_08B2E560;
|
|
L_08B2E560:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2E578:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_31 = (0x08B2E5A4u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E5A4u) goto L_08B2E5A4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E5A4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2E5B0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E5B0u) goto L_08B2E5B0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E5B0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(80)));
|
|
aot_gpr_31 = (0x08B2E5BCu);
|
|
aot_gpr_5 = (0u | 153u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0886D4BC, 26u, 206u, 0x0886D4BCu>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], 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_0026_entry, 26u, 206u, 0x0886D4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E5BCu) goto L_08B2E5BC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E5BC:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E5CC;
|
|
}
|
|
goto L_08B2E5C4;
|
|
}
|
|
L_08B2E5C4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_4 = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08B2E5D0;
|
|
}
|
|
goto L_08B2E5CC;
|
|
}
|
|
L_08B2E5CC:
|
|
aot_gpr_4 = (0u | 0u);
|
|
goto L_08B2E5D0;
|
|
L_08B2E5D0:
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 ^ aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2E5FC;
|
|
}
|
|
goto L_08B2E5F4;
|
|
}
|
|
L_08B2E5F4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2E64C;
|
|
}
|
|
goto L_08B2E5FC;
|
|
}
|
|
L_08B2E5FC:
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(518));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store16(aot_gpr_5 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[7]));
|
|
aot_gpr_5 = (static_cast<std::int32_t>(ctx.gpr[6]) < 9 ? 1u : 0u);
|
|
if (aot_gpr_5 == 0u) {
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
goto L_08B2E62C;
|
|
}
|
|
goto L_08B2E618;
|
|
L_08B2E618:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2E64C;
|
|
}
|
|
goto L_08B2E62C;
|
|
}
|
|
L_08B2E62C:
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E64C;
|
|
}
|
|
goto L_08B2E648;
|
|
}
|
|
L_08B2E648:
|
|
aot_mem.aot_direct_store16(aot_gpr_16 + static_cast<std::uint32_t>(518), static_cast<std::uint16_t>(0u));
|
|
goto L_08B2E64C;
|
|
L_08B2E64C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2E654;
|
|
}
|
|
goto L_08B2E654;
|
|
}
|
|
L_08B2E654:
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2E668:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2E690u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E690u) goto L_08B2E690;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E690:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2E69Cu);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E69Cu) goto L_08B2E69C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E69C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_4 = (aot_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(468)));
|
|
ctx.gpr[6] = (65535u << 16u);
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_5 = (aot_gpr_5 & ctx.gpr[6]);
|
|
aot_gpr_4 = (aot_gpr_4 & 1u);
|
|
aot_gpr_4 = (aot_gpr_4 << 16u);
|
|
aot_gpr_4 = (aot_gpr_5 | aot_gpr_4);
|
|
aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast<std::uint32_t>(468), aot_gpr_4);
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2E6E4:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2E70Cu);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E70Cu) goto L_08B2E70C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E70C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2E718u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E718u) goto L_08B2E718;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E718:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(468)));
|
|
ctx.gpr[6] = (65534u << 16u);
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_5 = (aot_gpr_5 & ctx.gpr[6]);
|
|
aot_gpr_4 = (aot_gpr_4 & 1u);
|
|
aot_gpr_4 = (aot_gpr_4 << 17u);
|
|
aot_gpr_4 = (aot_gpr_5 | aot_gpr_4);
|
|
aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast<std::uint32_t>(468), aot_gpr_4);
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2E760:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-96));
|
|
{ const std::uint32_t aot_run_words[16]{std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[22]), std::bit_cast<std::uint32_t>(ctx.fpr[24]), std::bit_cast<std::uint32_t>(ctx.fpr[26]), std::bit_cast<std::uint32_t>(ctx.fpr[28]), std::bit_cast<std::uint32_t>(aot_fpr_30), aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], ctx.gpr[30], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
ctx.gpr[21] = (aot_gpr_4 | 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_gpr_5);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_4 = (ctx.gpr[21] | 0u);
|
|
ctx.gpr[6] = (0u | 4u);
|
|
aot_gpr_31 = (0x08B2E7C8u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E7C8u) goto L_08B2E7C8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E7C8:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_17 + static_cast<std::uint32_t>(4), aot_run_words);
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[18] = (0u + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_31 = (0x08B2E7ECu);
|
|
aot_gpr_4 = (aot_gpr_29 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E7ECu) goto L_08B2E7EC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E7EC:
|
|
aot_fpr_30 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[30] = (32768u << 16u);
|
|
aot_gpr_4 = (16544u << 16u);
|
|
aot_fpr_12 = std::bit_cast<float>(aot_gpr_4);
|
|
ctx.fpr[28] = aot_fpr_30 - aot_fpr_12;
|
|
aot_fpr_30 = aot_fpr_30 + aot_fpr_12;
|
|
ctx.gpr[23] = (65532u << 16u);
|
|
ctx.gpr[23] = (ctx.gpr[23] + static_cast<std::uint32_t>(-1));
|
|
ctx.gpr[22] = (2239u << 16u);
|
|
ctx.gpr[22] = (ctx.gpr[22] + static_cast<std::uint32_t>(21784));
|
|
ctx.gpr[20] = (aot_gpr_17 + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(3344));
|
|
{ const std::int64_t product = static_cast<std::int64_t>(static_cast<std::int32_t>(aot_gpr_17)) * static_cast<std::int64_t>(static_cast<std::int32_t>(aot_gpr_4)); ctx.lo = static_cast<std::uint32_t>(product); ctx.hi = static_cast<std::uint32_t>(static_cast<std::uint64_t>(product) >> 32u); }
|
|
ctx.gpr[19] = (ctx.lo);
|
|
aot_gpr_4 = (aot_gpr_17 | 0u);
|
|
goto L_08B2E828;
|
|
L_08B2E828:
|
|
aot_gpr_17 = (ctx.gpr[20] | 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
ctx.gpr[19] = (ctx.gpr[19] + static_cast<std::uint32_t>(-3344));
|
|
if (branch_taken) {
|
|
goto L_08B2E964;
|
|
}
|
|
goto L_08B2E834;
|
|
}
|
|
L_08B2E834:
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-1));
|
|
{ const bool branch_taken = ctx.gpr[18] != aot_gpr_4;
|
|
aot_gpr_4 = (2236u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B2E968;
|
|
}
|
|
goto L_08B2E840;
|
|
}
|
|
L_08B2E840:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_17) < 0;
|
|
ctx.gpr[20] = (aot_gpr_17 + static_cast<std::uint32_t>(-1));
|
|
if (branch_taken) {
|
|
goto L_08B2E85C;
|
|
}
|
|
goto L_08B2E848;
|
|
}
|
|
L_08B2E848:
|
|
aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_17) < static_cast<std::int32_t>(aot_gpr_4) ? 1u : 0u);
|
|
if (aot_gpr_4 != 0u) {
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
goto L_08B2E864;
|
|
}
|
|
goto L_08B2E85C;
|
|
L_08B2E85C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_16 = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2E884;
|
|
}
|
|
goto L_08B2E864;
|
|
}
|
|
L_08B2E864:
|
|
aot_gpr_4 = (aot_gpr_4 + aot_gpr_17);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_4 & 128u);
|
|
if (aot_gpr_4 == 0u) {
|
|
aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
goto L_08B2E880;
|
|
}
|
|
goto L_08B2E878;
|
|
L_08B2E878:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_16 = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2E884;
|
|
}
|
|
goto L_08B2E880;
|
|
}
|
|
L_08B2E880:
|
|
aot_gpr_16 = (aot_gpr_16 + ctx.gpr[19]);
|
|
goto L_08B2E884;
|
|
L_08B2E884:
|
|
{ const bool branch_taken = aot_gpr_16 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E95C;
|
|
}
|
|
goto L_08B2E88C;
|
|
}
|
|
L_08B2E88C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(76)));
|
|
aot_gpr_4 = (aot_gpr_4 & 1u);
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E95C;
|
|
}
|
|
goto L_08B2E89C;
|
|
}
|
|
L_08B2E89C:
|
|
aot_gpr_31 = (0x08B2E8A4u);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0890D44C, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E8A4u) goto L_08B2E8A4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E8A4:
|
|
{ const bool branch_taken = ctx.gpr[2] != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E95C;
|
|
}
|
|
goto L_08B2E8AC;
|
|
}
|
|
L_08B2E8AC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(460)));
|
|
aot_gpr_4 = (aot_gpr_4 & ctx.gpr[30]);
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E95C;
|
|
}
|
|
goto L_08B2E8BC;
|
|
}
|
|
L_08B2E8BC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(2236)));
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E95C;
|
|
}
|
|
goto L_08B2E8C8;
|
|
}
|
|
L_08B2E8C8:
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_fpr_12 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_fpr_13 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
aot_fpr_14 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
aot_gpr_31 = (0x08B2E8E0u);
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 788u, 0x08AAF8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E8E0u) goto L_08B2E8E0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E8E0:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E95C;
|
|
}
|
|
goto L_08B2E8E8;
|
|
}
|
|
L_08B2E8E8:
|
|
aot_gpr_4 = (aot_gpr_16 + static_cast<std::uint32_t>(48));
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[28])) ? 0x00800000u : 0u);
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2E95C;
|
|
}
|
|
goto L_08B2E900;
|
|
}
|
|
L_08B2E900:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_30)) ? 0x00800000u : 0u);
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2E95C;
|
|
}
|
|
goto L_08B2E910;
|
|
}
|
|
L_08B2E910:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2E91Cu);
|
|
aot_gpr_5 = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 775u, 0x08B67368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E91Cu) goto L_08B2E91C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E91C:
|
|
ctx.gpr[18] = (ctx.gpr[2] | 0u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast<std::uint32_t>(7980), ctx.gpr[18]);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_31 = (0x08B2E930u);
|
|
aot_gpr_5 = (0u | 2u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E930u) goto L_08B2E930;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E930:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(456)));
|
|
aot_gpr_4 = (aot_gpr_4 & ctx.gpr[23]);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(456), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast<std::uint32_t>(522)));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2E95C;
|
|
}
|
|
goto L_08B2E948;
|
|
}
|
|
L_08B2E948:
|
|
aot_gpr_4 = (ctx.gpr[22] | 0u);
|
|
aot_gpr_5 = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2E95Cu);
|
|
ctx.gpr[7] = (ctx.gpr[21] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E95Cu) goto L_08B2E95C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E95C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_4 = (aot_gpr_17 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2E828;
|
|
}
|
|
goto L_08B2E964;
|
|
}
|
|
L_08B2E964:
|
|
aot_gpr_4 = (2236u << 16u);
|
|
goto L_08B2E968;
|
|
L_08B2E968:
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(29704), ctx.gpr[18]);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
|
|
aot_gpr_4 = (ctx.gpr[21] | 0u);
|
|
aot_gpr_31 = (0x08B2E97Cu);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08862890, 23u, 431u, 0x08862890u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], ctx.gpr[11], aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], 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_0023_entry, 23u, 431u, 0x08862890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E97Cu) goto L_08B2E97C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E97C:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[16]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_run_words);
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_run_words[2]);
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_run_words[3]);
|
|
ctx.fpr[28] = std::bit_cast<float>(aot_run_words[4]);
|
|
aot_fpr_30 = std::bit_cast<float>(aot_run_words[5]);
|
|
aot_gpr_16 = aot_run_words[6];
|
|
aot_gpr_17 = aot_run_words[7];
|
|
ctx.gpr[18] = aot_run_words[8];
|
|
ctx.gpr[19] = aot_run_words[9];
|
|
ctx.gpr[20] = aot_run_words[10];
|
|
ctx.gpr[21] = aot_run_words[11];
|
|
ctx.gpr[22] = aot_run_words[12];
|
|
ctx.gpr[23] = aot_run_words[13];
|
|
ctx.gpr[30] = aot_run_words[14];
|
|
aot_gpr_31 = aot_run_words[15];
|
|
}
|
|
jump_target = aot_gpr_31;
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(96));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2E9C8:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2E9F0u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E9F0u) goto L_08B2E9F0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E9F0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2E9FCu);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E9FCu) goto L_08B2E9FC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2E9FC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(468)));
|
|
aot_gpr_5 = (65504u << 16u);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_5 = (aot_gpr_5 < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
aot_gpr_5 = (aot_gpr_5 << 21u);
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast<std::uint32_t>(468), aot_gpr_4);
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2EA38:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_31 = (0x08B2EA60u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EA60u) goto L_08B2EA60;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EA60:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2EA6Cu);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EA6Cu) goto L_08B2EA6C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EA6C:
|
|
aot_gpr_4 = (0u | 0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(460)));
|
|
aot_gpr_5 = (aot_gpr_5 & 8192u);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2EA84;
|
|
}
|
|
goto L_08B2EA80;
|
|
}
|
|
L_08B2EA80:
|
|
aot_gpr_4 = (0u | 1u);
|
|
goto L_08B2EA84;
|
|
L_08B2EA84:
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 ^ aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2EAB0;
|
|
}
|
|
goto L_08B2EAA8;
|
|
}
|
|
L_08B2EAA8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2EAF8;
|
|
}
|
|
goto L_08B2EAB0;
|
|
}
|
|
L_08B2EAB0:
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(518));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[6]) < 9 ? 1u : 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store16(aot_gpr_5 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[6]));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2EADC;
|
|
}
|
|
goto L_08B2EAD0;
|
|
}
|
|
L_08B2EAD0:
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2EAF8;
|
|
}
|
|
goto L_08B2EADC;
|
|
}
|
|
L_08B2EADC:
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2EAF8;
|
|
}
|
|
goto L_08B2EAF4;
|
|
}
|
|
L_08B2EAF4:
|
|
aot_mem.aot_direct_store16(aot_gpr_16 + static_cast<std::uint32_t>(518), static_cast<std::uint16_t>(0u));
|
|
goto L_08B2EAF8;
|
|
L_08B2EAF8:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2EB10:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2EB38u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EB38u) goto L_08B2EB38;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EB38:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2EB44u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EB44u) goto L_08B2EB44;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EB44:
|
|
aot_gpr_16 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15972)));
|
|
aot_gpr_31 = (0x08B2EB54u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 438u, 0x08B65CC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EB54u) goto L_08B2EB54;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EB54:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(456)));
|
|
aot_gpr_5 = (4u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(456), aot_gpr_4);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_31 = (0x08B2EB74u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 550u, 0x0891ECB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EB74u) goto L_08B2EB74;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EB74:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2EB8C:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
|
|
{ const std::uint32_t aot_run_words[5]{aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
ctx.gpr[19] = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
ctx.gpr[18] = (2236u << 16u);
|
|
ctx.gpr[7] = (ctx.gpr[18] + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_5 = (ctx.gpr[19] | 0u);
|
|
aot_gpr_31 = (0x08B2EBC0u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EBC0u) goto L_08B2EBC0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EBC0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2EBCCu);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EBCCu) goto L_08B2EBCC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EBCC:
|
|
aot_gpr_17 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast<std::uint32_t>(29704), aot_gpr_4);
|
|
{ const bool branch_taken = aot_gpr_17 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2EC2C;
|
|
}
|
|
goto L_08B2EBE0;
|
|
}
|
|
L_08B2EBE0:
|
|
aot_gpr_31 = (0x08B2EBE8u);
|
|
aot_gpr_4 = (aot_gpr_17 | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_089101A4, 67u, 27u, 0x089101A4u>(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_0067_entry, 67u, 27u, 0x089101A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EBE8u) goto L_08B2EBE8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EBE8:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2EC2C;
|
|
}
|
|
goto L_08B2EBF0;
|
|
}
|
|
L_08B2EBF0:
|
|
aot_gpr_31 = (0x08B2EBF8u);
|
|
aot_gpr_4 = (aot_gpr_17 | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_089101A4, 67u, 27u, 0x089101A4u>(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_0067_entry, 67u, 27u, 0x089101A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EBF8u) goto L_08B2EBF8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EBF8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(72)));
|
|
aot_gpr_4 = (aot_gpr_4 & 14u);
|
|
aot_gpr_4 = (aot_gpr_4 ^ 6u);
|
|
aot_gpr_4 = (aot_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2EC2C;
|
|
}
|
|
goto L_08B2EC14;
|
|
}
|
|
L_08B2EC14:
|
|
aot_gpr_31 = (0x08B2EC1Cu);
|
|
aot_gpr_4 = (aot_gpr_17 | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_089101A4, 67u, 27u, 0x089101A4u>(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_0067_entry, 67u, 27u, 0x089101A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EC1Cu) goto L_08B2EC1C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EC1C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2EC28u);
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 775u, 0x08B67368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EC28u) goto L_08B2EC28;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EC28:
|
|
aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast<std::uint32_t>(29704), ctx.gpr[2]);
|
|
goto L_08B2EC2C;
|
|
L_08B2EC2C:
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (ctx.gpr[19] | 0u);
|
|
aot_gpr_31 = (0x08B2EC3Cu);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08862890, 23u, 431u, 0x08862890u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], ctx.gpr[11], aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], 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_0023_entry, 23u, 431u, 0x08862890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EC3Cu) goto L_08B2EC3C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EC3C:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[5]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2EC5C:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2EC84u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EC84u) goto L_08B2EC84;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EC84:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2EC90u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EC90u) goto L_08B2EC90;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EC90:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
aot_fpr_12 = std::bit_cast<float>(aot_gpr_4);
|
|
aot_fpr_12 = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(aot_fpr_12)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast<std::uint32_t>(2084), std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast<std::uint32_t>(1252), std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2ECBC:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2ECE4u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2ECE4u) goto L_08B2ECE4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2ECE4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2ECF0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2ECF0u) goto L_08B2ECF0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2ECF0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast<std::uint32_t>(1264), aot_gpr_4);
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2ED10:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2ED38u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2ED38u) goto L_08B2ED38;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2ED38:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2ED44u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2ED44u) goto L_08B2ED44;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2ED44:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast<std::uint32_t>(1268), aot_gpr_4);
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2ED64:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2ED8Cu);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2ED8Cu) goto L_08B2ED8C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2ED8C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2ED98u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2ED98u) goto L_08B2ED98;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2ED98:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(468)));
|
|
aot_gpr_5 = (65408u << 16u);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_5 = (aot_gpr_5 & 1u);
|
|
aot_gpr_5 = (aot_gpr_5 << 23u);
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast<std::uint32_t>(468), aot_gpr_4);
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2EDD4:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_gpr_16);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_31);
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_31 = (0x08B2EDF4u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EDF4u) goto L_08B2EDF4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EDF4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2EE00u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EE00u) goto L_08B2EE00;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EE00:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(468)));
|
|
aot_gpr_5 = (16u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast<std::uint32_t>(468), aot_gpr_4);
|
|
ctx.gpr[2] = (0u | 0u);
|
|
aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
jump_target = aot_gpr_31;
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2EE24:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
aot_gpr_16 = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 3u);
|
|
aot_gpr_31 = (0x08B2EE4Cu);
|
|
ctx.gpr[7] = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EE4Cu) goto L_08B2EE4C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EE4C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2EE58u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EE58u) goto L_08B2EE58;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EE58:
|
|
aot_gpr_4 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_gpr_5);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2EEA8;
|
|
}
|
|
goto L_08B2EE6C;
|
|
}
|
|
L_08B2EE6C:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_5) >= 0;
|
|
aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
if (branch_taken) {
|
|
goto L_08B2EE94;
|
|
}
|
|
goto L_08B2EE78;
|
|
}
|
|
L_08B2EE78:
|
|
aot_gpr_5 = (aot_gpr_16 | 0u);
|
|
ctx.gpr[6] = (0u | 0u);
|
|
ctx.gpr[7] = (0u | 1u);
|
|
aot_gpr_31 = (0x08B2EE8Cu);
|
|
ctx.gpr[8] = (0u | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EE8Cu) goto L_08B2EE8C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EE8C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2EEA8;
|
|
}
|
|
goto L_08B2EE94;
|
|
}
|
|
L_08B2EE94:
|
|
aot_gpr_5 = (aot_gpr_16 | 0u);
|
|
ctx.gpr[6] = (aot_gpr_29 | 0u);
|
|
ctx.gpr[7] = (0u | 1u);
|
|
aot_gpr_31 = (0x08B2EEA8u);
|
|
ctx.gpr[8] = (0u | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EEA8u) goto L_08B2EEA8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EEA8:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2EEC0:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2EEE8u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EEE8u) goto L_08B2EEE8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EEE8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2EEF4u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EEF4u) goto L_08B2EEF4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EEF4:
|
|
ctx.gpr[6] = (ctx.gpr[2] | 0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[6] + static_cast<std::uint32_t>(468)));
|
|
ctx.gpr[7] = (65024u << 16u);
|
|
ctx.gpr[7] = (ctx.gpr[7] + static_cast<std::uint32_t>(-1));
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
aot_gpr_4 = (aot_gpr_4 & ctx.gpr[7]);
|
|
if (branch_taken) {
|
|
goto L_08B2EF24;
|
|
}
|
|
goto L_08B2EF10;
|
|
}
|
|
L_08B2EF10:
|
|
aot_gpr_5 = (aot_gpr_5 & 1u);
|
|
aot_gpr_5 = (aot_gpr_5 << 25u);
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[6] + static_cast<std::uint32_t>(468), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B2EF28;
|
|
}
|
|
goto L_08B2EF24;
|
|
}
|
|
L_08B2EF24:
|
|
aot_mem.aot_direct_store32(ctx.gpr[6] + static_cast<std::uint32_t>(468), aot_gpr_4);
|
|
goto L_08B2EF28;
|
|
L_08B2EF28:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2EF40:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-96));
|
|
{ const std::uint32_t aot_run_words[16]{std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[22]), std::bit_cast<std::uint32_t>(ctx.fpr[24]), std::bit_cast<std::uint32_t>(ctx.fpr[26]), std::bit_cast<std::uint32_t>(ctx.fpr[28]), std::bit_cast<std::uint32_t>(aot_fpr_30), aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], ctx.gpr[30], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
ctx.gpr[21] = (aot_gpr_4 | 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_gpr_5);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_4 = (ctx.gpr[21] | 0u);
|
|
ctx.gpr[6] = (0u | 4u);
|
|
aot_gpr_31 = (0x08B2EFA8u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EFA8u) goto L_08B2EFA8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EFA8:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_17 + static_cast<std::uint32_t>(4), aot_run_words);
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[18] = (0u + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_31 = (0x08B2EFCCu);
|
|
aot_gpr_4 = (aot_gpr_29 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EFCCu) goto L_08B2EFCC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2EFCC:
|
|
aot_fpr_30 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[30] = (32768u << 16u);
|
|
aot_gpr_4 = (16544u << 16u);
|
|
aot_fpr_12 = std::bit_cast<float>(aot_gpr_4);
|
|
ctx.fpr[28] = aot_fpr_30 - aot_fpr_12;
|
|
aot_fpr_30 = aot_fpr_30 + aot_fpr_12;
|
|
ctx.gpr[23] = (65532u << 16u);
|
|
ctx.gpr[23] = (ctx.gpr[23] + static_cast<std::uint32_t>(-1));
|
|
ctx.gpr[22] = (2239u << 16u);
|
|
ctx.gpr[22] = (ctx.gpr[22] + static_cast<std::uint32_t>(21784));
|
|
ctx.gpr[20] = (aot_gpr_17 + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(3344));
|
|
{ const std::int64_t product = static_cast<std::int64_t>(static_cast<std::int32_t>(aot_gpr_17)) * static_cast<std::int64_t>(static_cast<std::int32_t>(aot_gpr_4)); ctx.lo = static_cast<std::uint32_t>(product); ctx.hi = static_cast<std::uint32_t>(static_cast<std::uint64_t>(product) >> 32u); }
|
|
ctx.gpr[19] = (ctx.lo);
|
|
aot_gpr_4 = (aot_gpr_17 | 0u);
|
|
goto L_08B2F008;
|
|
L_08B2F008:
|
|
aot_gpr_17 = (ctx.gpr[20] | 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
ctx.gpr[19] = (ctx.gpr[19] + static_cast<std::uint32_t>(-3344));
|
|
if (branch_taken) {
|
|
goto L_08B2F154;
|
|
}
|
|
goto L_08B2F014;
|
|
}
|
|
L_08B2F014:
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-1));
|
|
{ const bool branch_taken = ctx.gpr[18] != aot_gpr_4;
|
|
aot_gpr_4 = (2236u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B2F158;
|
|
}
|
|
goto L_08B2F020;
|
|
}
|
|
L_08B2F020:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_17) < 0;
|
|
ctx.gpr[20] = (aot_gpr_17 + static_cast<std::uint32_t>(-1));
|
|
if (branch_taken) {
|
|
goto L_08B2F03C;
|
|
}
|
|
goto L_08B2F028;
|
|
}
|
|
L_08B2F028:
|
|
aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_17) < static_cast<std::int32_t>(aot_gpr_4) ? 1u : 0u);
|
|
if (aot_gpr_4 != 0u) {
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
goto L_08B2F044;
|
|
}
|
|
goto L_08B2F03C;
|
|
L_08B2F03C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_16 = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2F064;
|
|
}
|
|
goto L_08B2F044;
|
|
}
|
|
L_08B2F044:
|
|
aot_gpr_4 = (aot_gpr_4 + aot_gpr_17);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_4 & 128u);
|
|
if (aot_gpr_4 == 0u) {
|
|
aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
goto L_08B2F060;
|
|
}
|
|
goto L_08B2F058;
|
|
L_08B2F058:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_16 = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2F064;
|
|
}
|
|
goto L_08B2F060;
|
|
}
|
|
L_08B2F060:
|
|
aot_gpr_16 = (aot_gpr_16 + ctx.gpr[19]);
|
|
goto L_08B2F064;
|
|
L_08B2F064:
|
|
{ const bool branch_taken = aot_gpr_16 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2F14C;
|
|
}
|
|
goto L_08B2F06C;
|
|
}
|
|
L_08B2F06C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(76)));
|
|
aot_gpr_4 = (aot_gpr_4 & 1u);
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2F14C;
|
|
}
|
|
goto L_08B2F07C;
|
|
}
|
|
L_08B2F07C:
|
|
aot_gpr_31 = (0x08B2F084u);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0890D44C, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F084u) goto L_08B2F084;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F084:
|
|
{ const bool branch_taken = ctx.gpr[2] != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2F14C;
|
|
}
|
|
goto L_08B2F08C;
|
|
}
|
|
L_08B2F08C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(460)));
|
|
aot_gpr_4 = (aot_gpr_4 & ctx.gpr[30]);
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2F14C;
|
|
}
|
|
goto L_08B2F09C;
|
|
}
|
|
L_08B2F09C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(2236)));
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2F14C;
|
|
}
|
|
goto L_08B2F0A8;
|
|
}
|
|
L_08B2F0A8:
|
|
aot_gpr_31 = (0x08B2F0B0u);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
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 == 0x08B2F0B0u) goto L_08B2F0B0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F0B0:
|
|
{ const bool branch_taken = ctx.gpr[2] != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2F14C;
|
|
}
|
|
goto L_08B2F0B8;
|
|
}
|
|
L_08B2F0B8:
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_fpr_12 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_fpr_13 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
aot_fpr_14 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
aot_gpr_31 = (0x08B2F0D0u);
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 788u, 0x08AAF8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F0D0u) goto L_08B2F0D0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F0D0:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2F14C;
|
|
}
|
|
goto L_08B2F0D8;
|
|
}
|
|
L_08B2F0D8:
|
|
aot_gpr_4 = (aot_gpr_16 + static_cast<std::uint32_t>(48));
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[28])) ? 0x00800000u : 0u);
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2F14C;
|
|
}
|
|
goto L_08B2F0F0;
|
|
}
|
|
L_08B2F0F0:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_30)) ? 0x00800000u : 0u);
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2F14C;
|
|
}
|
|
goto L_08B2F100;
|
|
}
|
|
L_08B2F100:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2F10Cu);
|
|
aot_gpr_5 = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 775u, 0x08B67368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F10Cu) goto L_08B2F10C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F10C:
|
|
ctx.gpr[18] = (ctx.gpr[2] | 0u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast<std::uint32_t>(7980), ctx.gpr[18]);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_31 = (0x08B2F120u);
|
|
aot_gpr_5 = (0u | 2u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F120u) goto L_08B2F120;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F120:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(456)));
|
|
aot_gpr_4 = (aot_gpr_4 & ctx.gpr[23]);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(456), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast<std::uint32_t>(522)));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2F14C;
|
|
}
|
|
goto L_08B2F138;
|
|
}
|
|
L_08B2F138:
|
|
aot_gpr_4 = (ctx.gpr[22] | 0u);
|
|
aot_gpr_5 = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2F14Cu);
|
|
ctx.gpr[7] = (ctx.gpr[21] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F14Cu) goto L_08B2F14C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F14C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_4 = (aot_gpr_17 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2F008;
|
|
}
|
|
goto L_08B2F154;
|
|
}
|
|
L_08B2F154:
|
|
aot_gpr_4 = (2236u << 16u);
|
|
goto L_08B2F158;
|
|
L_08B2F158:
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(29704), ctx.gpr[18]);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
|
|
aot_gpr_4 = (ctx.gpr[21] | 0u);
|
|
aot_gpr_31 = (0x08B2F16Cu);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08862890, 23u, 431u, 0x08862890u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], ctx.gpr[11], aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], 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_0023_entry, 23u, 431u, 0x08862890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F16Cu) goto L_08B2F16C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F16C:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[16]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_run_words);
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_run_words[2]);
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_run_words[3]);
|
|
ctx.fpr[28] = std::bit_cast<float>(aot_run_words[4]);
|
|
aot_fpr_30 = std::bit_cast<float>(aot_run_words[5]);
|
|
aot_gpr_16 = aot_run_words[6];
|
|
aot_gpr_17 = aot_run_words[7];
|
|
ctx.gpr[18] = aot_run_words[8];
|
|
ctx.gpr[19] = aot_run_words[9];
|
|
ctx.gpr[20] = aot_run_words[10];
|
|
ctx.gpr[21] = aot_run_words[11];
|
|
ctx.gpr[22] = aot_run_words[12];
|
|
ctx.gpr[23] = aot_run_words[13];
|
|
ctx.gpr[30] = aot_run_words[14];
|
|
aot_gpr_31 = aot_run_words[15];
|
|
}
|
|
jump_target = aot_gpr_31;
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(96));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2F1B8:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2F1E0u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F1E0u) goto L_08B2F1E0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F1E0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2F1ECu);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F1ECu) goto L_08B2F1EC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F1EC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast<std::uint32_t>(2208), aot_gpr_4);
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2F20C:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[4]{aot_gpr_16, aot_gpr_17, ctx.gpr[18], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
ctx.gpr[18] = (2236u << 16u);
|
|
ctx.gpr[7] = (ctx.gpr[18] + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_5 = (aot_gpr_17 | 0u);
|
|
aot_gpr_31 = (0x08B2F23Cu);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F23Cu) goto L_08B2F23C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F23C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2F248u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F248u) goto L_08B2F248;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F248:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(2208)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast<std::uint32_t>(29704), aot_gpr_4);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (aot_gpr_17 | 0u);
|
|
aot_gpr_31 = (0x08B2F260u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08862890, 23u, 431u, 0x08862890u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], ctx.gpr[11], aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], 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_0023_entry, 23u, 431u, 0x08862890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F260u) goto L_08B2F260;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F260:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[4]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2F27C:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
|
|
{ const std::uint32_t aot_run_words[6]{std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[22]), aot_gpr_16, aot_gpr_17, ctx.gpr[18], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[18] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 4u);
|
|
aot_gpr_31 = (0x08B2F2B4u);
|
|
ctx.gpr[7] = (ctx.gpr[18] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F2B4u) goto L_08B2F2B4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F2B4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2F2C0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F2C0u) goto L_08B2F2C0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F2C0:
|
|
aot_gpr_17 = (ctx.gpr[2] | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[18] + static_cast<std::uint32_t>(4), aot_run_words);
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_run_words[1]);
|
|
aot_fpr_12 = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
aot_gpr_4 = (49864u << 16u);
|
|
aot_fpr_13 = std::bit_cast<float>(aot_gpr_4);
|
|
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);
|
|
aot_gpr_4 = (50042u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B2F2FC;
|
|
}
|
|
goto L_08B2F2E8;
|
|
}
|
|
L_08B2F2E8:
|
|
aot_fpr_13 = std::bit_cast<float>(aot_gpr_4);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_13)) ? 0x00800000u : 0u);
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
aot_fpr_14 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
goto L_08B2F310;
|
|
}
|
|
goto L_08B2F2FC;
|
|
L_08B2F2FC:
|
|
aot_fpr_12 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
aot_gpr_31 = (0x08B2F308u);
|
|
aot_fpr_13 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F308u) goto L_08B2F308;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F308:
|
|
aot_fpr_12 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
aot_fpr_14 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
goto L_08B2F310;
|
|
L_08B2F310:
|
|
ctx.gpr[6] = (aot_gpr_16 + static_cast<std::uint32_t>(527));
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (aot_gpr_17 | 0u);
|
|
aot_fpr_12 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
aot_fpr_13 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_gpr_31 = (0x08B2F32Cu);
|
|
ctx.gpr[7] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 211u, 0x08B312F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F32Cu) goto L_08B2F32C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F32C:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[6]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_run_words[1]);
|
|
aot_gpr_16 = aot_run_words[2];
|
|
aot_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<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2F350:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-96));
|
|
{ const std::uint32_t aot_run_words[16]{std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[22]), std::bit_cast<std::uint32_t>(ctx.fpr[24]), std::bit_cast<std::uint32_t>(ctx.fpr[26]), std::bit_cast<std::uint32_t>(ctx.fpr[28]), std::bit_cast<std::uint32_t>(aot_fpr_30), aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], ctx.gpr[30], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_run_words); }
|
|
ctx.gpr[22] = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (ctx.gpr[22] + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
ctx.gpr[19] = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_gpr_5);
|
|
ctx.gpr[6] = (0u | 8u);
|
|
aot_gpr_31 = (0x08B2F3B4u);
|
|
ctx.gpr[7] = (ctx.gpr[19] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F3B4u) goto L_08B2F3B4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F3B4:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
{ std::uint32_t aot_run_words[5]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[19] + static_cast<std::uint32_t>(4), aot_run_words);
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_run_words[2]);
|
|
ctx.fpr[28] = std::bit_cast<float>(aot_run_words[3]);
|
|
aot_fpr_30 = std::bit_cast<float>(aot_run_words[4]);
|
|
}
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[20] = (0u | 0u);
|
|
ctx.gpr[30] = (65532u << 16u);
|
|
ctx.gpr[30] = (ctx.gpr[30] + static_cast<std::uint32_t>(-1));
|
|
ctx.gpr[23] = (2239u << 16u);
|
|
ctx.gpr[23] = (ctx.gpr[23] + static_cast<std::uint32_t>(21784));
|
|
ctx.gpr[21] = (aot_gpr_17 + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(3344));
|
|
{ const std::int64_t product = static_cast<std::int64_t>(static_cast<std::int32_t>(aot_gpr_17)) * static_cast<std::int64_t>(static_cast<std::int32_t>(aot_gpr_4)); ctx.lo = static_cast<std::uint32_t>(product); ctx.hi = static_cast<std::uint32_t>(static_cast<std::uint64_t>(product) >> 32u); }
|
|
ctx.gpr[18] = (ctx.lo);
|
|
aot_gpr_4 = (aot_gpr_17 | 0u);
|
|
goto L_08B2F3FC;
|
|
L_08B2F3FC:
|
|
aot_gpr_17 = (ctx.gpr[21] | 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
ctx.gpr[18] = (ctx.gpr[18] + static_cast<std::uint32_t>(-3344));
|
|
if (branch_taken) {
|
|
goto L_08B2F534;
|
|
}
|
|
goto L_08B2F408;
|
|
}
|
|
L_08B2F408:
|
|
{ const bool branch_taken = ctx.gpr[20] != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2F534;
|
|
}
|
|
goto L_08B2F410;
|
|
}
|
|
L_08B2F410:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_17) < 0;
|
|
ctx.gpr[21] = (aot_gpr_17 + static_cast<std::uint32_t>(-1));
|
|
if (branch_taken) {
|
|
goto L_08B2F42C;
|
|
}
|
|
goto L_08B2F418;
|
|
}
|
|
L_08B2F418:
|
|
aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_17) < static_cast<std::int32_t>(aot_gpr_4) ? 1u : 0u);
|
|
if (aot_gpr_4 != 0u) {
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
goto L_08B2F434;
|
|
}
|
|
goto L_08B2F42C;
|
|
L_08B2F42C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_16 = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2F454;
|
|
}
|
|
goto L_08B2F434;
|
|
}
|
|
L_08B2F434:
|
|
aot_gpr_4 = (aot_gpr_4 + aot_gpr_17);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_4 & 128u);
|
|
if (aot_gpr_4 == 0u) {
|
|
aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
goto L_08B2F450;
|
|
}
|
|
goto L_08B2F448;
|
|
L_08B2F448:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_16 = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2F454;
|
|
}
|
|
goto L_08B2F450;
|
|
}
|
|
L_08B2F450:
|
|
aot_gpr_16 = (aot_gpr_16 + ctx.gpr[18]);
|
|
goto L_08B2F454;
|
|
L_08B2F454:
|
|
{ const bool branch_taken = aot_gpr_16 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2F52C;
|
|
}
|
|
goto L_08B2F45C;
|
|
}
|
|
L_08B2F45C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(2276)));
|
|
aot_gpr_5 = (0u | 1u);
|
|
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
|
|
if (branch_taken) {
|
|
goto L_08B2F52C;
|
|
}
|
|
goto L_08B2F46C;
|
|
}
|
|
L_08B2F46C:
|
|
aot_gpr_31 = (0x08B2F474u);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
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 == 0x08B2F474u) goto L_08B2F474;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F474:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2F52C;
|
|
}
|
|
goto L_08B2F47C;
|
|
}
|
|
L_08B2F47C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(76)));
|
|
aot_gpr_4 = (aot_gpr_4 & 1u);
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
aot_gpr_4 = (32768u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B2F52C;
|
|
}
|
|
goto L_08B2F48C;
|
|
}
|
|
L_08B2F48C:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(460)));
|
|
aot_gpr_4 = (aot_gpr_5 & aot_gpr_4);
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2F52C;
|
|
}
|
|
goto L_08B2F49C;
|
|
}
|
|
L_08B2F49C:
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(86))))));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(24)));
|
|
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
|
|
if (branch_taken) {
|
|
goto L_08B2F4B8;
|
|
}
|
|
goto L_08B2F4AC;
|
|
}
|
|
L_08B2F4AC:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(28)));
|
|
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
|
|
if (branch_taken) {
|
|
goto L_08B2F52C;
|
|
}
|
|
goto L_08B2F4B8;
|
|
}
|
|
L_08B2F4B8:
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_fpr_12 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_fpr_13 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
aot_fpr_14 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
ctx.fpr[16] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[28]));
|
|
aot_gpr_31 = (0x08B2F4D8u);
|
|
ctx.fpr[17] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(aot_fpr_30));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 799u, 0x08AAF984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F4D8u) goto L_08B2F4D8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F4D8:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2F52C;
|
|
}
|
|
goto L_08B2F4E0;
|
|
}
|
|
L_08B2F4E0:
|
|
aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast<std::uint32_t>(7980), aot_gpr_17);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_31 = (0x08B2F4F0u);
|
|
aot_gpr_5 = (0u | 2u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F4F0u) goto L_08B2F4F0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F4F0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(456)));
|
|
aot_gpr_4 = (aot_gpr_4 & ctx.gpr[30]);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(456), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[22] + static_cast<std::uint32_t>(522)));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
ctx.gpr[20] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08B2F52C;
|
|
}
|
|
goto L_08B2F508;
|
|
}
|
|
L_08B2F508:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2F514u);
|
|
aot_gpr_5 = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 775u, 0x08B67368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F514u) goto L_08B2F514;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F514:
|
|
aot_gpr_4 = (ctx.gpr[23] | 0u);
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2F528u);
|
|
ctx.gpr[7] = (ctx.gpr[22] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F528u) goto L_08B2F528;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F528:
|
|
ctx.gpr[20] = (0u | 1u);
|
|
goto L_08B2F52C;
|
|
L_08B2F52C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_4 = (aot_gpr_17 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2F3FC;
|
|
}
|
|
goto L_08B2F534;
|
|
}
|
|
L_08B2F534:
|
|
{ const bool branch_taken = ctx.gpr[20] != 0u;
|
|
aot_gpr_4 = (2236u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B2F548;
|
|
}
|
|
goto L_08B2F53C;
|
|
}
|
|
L_08B2F53C:
|
|
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-1));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(29704), aot_gpr_5);
|
|
if (branch_taken) {
|
|
goto L_08B2F55C;
|
|
}
|
|
goto L_08B2F548;
|
|
}
|
|
L_08B2F548:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2F554u);
|
|
aot_gpr_5 = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 775u, 0x08B67368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F554u) goto L_08B2F554;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F554:
|
|
aot_gpr_4 = (2236u << 16u);
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(29704), ctx.gpr[2]);
|
|
goto L_08B2F55C;
|
|
L_08B2F55C:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
|
|
aot_gpr_4 = (ctx.gpr[22] | 0u);
|
|
aot_gpr_31 = (0x08B2F56Cu);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08862890, 23u, 431u, 0x08862890u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], ctx.gpr[11], aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], 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_0023_entry, 23u, 431u, 0x08862890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F56Cu) goto L_08B2F56C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F56C:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[16]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_run_words);
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_run_words[2]);
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_run_words[3]);
|
|
ctx.fpr[28] = std::bit_cast<float>(aot_run_words[4]);
|
|
aot_fpr_30 = std::bit_cast<float>(aot_run_words[5]);
|
|
aot_gpr_16 = aot_run_words[6];
|
|
aot_gpr_17 = aot_run_words[7];
|
|
ctx.gpr[18] = aot_run_words[8];
|
|
ctx.gpr[19] = aot_run_words[9];
|
|
ctx.gpr[20] = aot_run_words[10];
|
|
ctx.gpr[21] = aot_run_words[11];
|
|
ctx.gpr[22] = aot_run_words[12];
|
|
ctx.gpr[23] = aot_run_words[13];
|
|
ctx.gpr[30] = aot_run_words[14];
|
|
aot_gpr_31 = aot_run_words[15];
|
|
}
|
|
jump_target = aot_gpr_31;
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(96));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2F5B8:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[4]{aot_gpr_16, aot_gpr_17, ctx.gpr[18], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
ctx.gpr[18] = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_5 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_31 = (0x08B2F5E8u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F5E8u) goto L_08B2F5E8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F5E8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2F5F4u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F5F4u) goto L_08B2F5F4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F5F4:
|
|
aot_gpr_4 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store32(aot_gpr_17 + static_cast<std::uint32_t>(29704), aot_gpr_5);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2F640;
|
|
}
|
|
goto L_08B2F608;
|
|
}
|
|
L_08B2F608:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(2076)));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2F640;
|
|
}
|
|
goto L_08B2F614;
|
|
}
|
|
L_08B2F614:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(72)));
|
|
aot_gpr_5 = (aot_gpr_5 & 14u);
|
|
aot_gpr_5 = (aot_gpr_5 ^ 6u);
|
|
aot_gpr_5 = (aot_gpr_5 < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
aot_gpr_5 = (aot_gpr_5 & 255u);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2F640;
|
|
}
|
|
goto L_08B2F630;
|
|
}
|
|
L_08B2F630:
|
|
aot_gpr_5 = (aot_gpr_4 | 0u);
|
|
aot_gpr_31 = (0x08B2F63Cu);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 775u, 0x08B67368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F63Cu) goto L_08B2F63C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F63C:
|
|
aot_mem.aot_direct_store32(aot_gpr_17 + static_cast<std::uint32_t>(29704), ctx.gpr[2]);
|
|
goto L_08B2F640;
|
|
L_08B2F640:
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_31 = (0x08B2F650u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08862890, 23u, 431u, 0x08862890u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], ctx.gpr[11], aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], 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_0023_entry, 23u, 431u, 0x08862890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F650u) goto L_08B2F650;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F650:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[4]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2F66C:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_16 = (2236u << 16u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2F694u);
|
|
ctx.gpr[7] = (aot_gpr_17 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F694u) goto L_08B2F694;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F694:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2F6A0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F6A0u) goto L_08B2F6A0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F6A0:
|
|
aot_gpr_16 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_31 = (0x08B2F6ACu);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0890D44C, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F6ACu) goto L_08B2F6AC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F6AC:
|
|
{ const bool branch_taken = ctx.gpr[2] != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2F6E8;
|
|
}
|
|
goto L_08B2F6B4;
|
|
}
|
|
L_08B2F6B4:
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_31 = (0x08B2F6C0u);
|
|
aot_gpr_5 = (0u | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0890F694, 66u, 781u, 0x0890F694u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, ctx.gpr[6], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0066_entry, 66u, 781u, 0x0890F694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F6C0u) goto L_08B2F6C0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F6C0:
|
|
aot_gpr_31 = (0x08B2F6C8u);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 976u, 0x0890BDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F6C8u) goto L_08B2F6C8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F6C8:
|
|
aot_gpr_31 = (0x08B2F6D0u);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(80)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 195u, 0x0886D420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F6D0u) goto L_08B2F6D0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F6D0:
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(776), 0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(80)));
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
ctx.gpr[6] = (0u | 0u);
|
|
aot_gpr_31 = (0x08B2F6E8u);
|
|
ctx.gpr[7] = (0u | 6u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F6E8u) goto L_08B2F6E8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F6E8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(4)));
|
|
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 = (aot_gpr_16 + aot_gpr_4);
|
|
aot_gpr_31 = (0x08B2F704u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(1396));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 148u, 0x08A40C70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F704u) goto L_08B2F704;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F704:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2F71C:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[4]{aot_gpr_16, aot_gpr_17, ctx.gpr[18], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[18] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2F74Cu);
|
|
ctx.gpr[7] = (ctx.gpr[18] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F74Cu) goto L_08B2F74C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F74C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2F758u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F758u) goto L_08B2F758;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F758:
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(1256)));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(4)));
|
|
aot_fpr_13 = std::bit_cast<float>(aot_gpr_4);
|
|
aot_fpr_13 = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(aot_fpr_13)));
|
|
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_08B2F780;
|
|
}
|
|
goto L_08B2F778;
|
|
}
|
|
L_08B2F778:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_4 = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08B2F784;
|
|
}
|
|
goto L_08B2F780;
|
|
}
|
|
L_08B2F780:
|
|
aot_gpr_4 = (0u | 0u);
|
|
goto L_08B2F784;
|
|
L_08B2F784:
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 ^ aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2F7A8;
|
|
}
|
|
goto L_08B2F7A0;
|
|
}
|
|
L_08B2F7A0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2F7F0;
|
|
}
|
|
goto L_08B2F7A8;
|
|
}
|
|
L_08B2F7A8:
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(518));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[6]) < 9 ? 1u : 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store16(aot_gpr_5 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[6]));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2F7D4;
|
|
}
|
|
goto L_08B2F7C8;
|
|
}
|
|
L_08B2F7C8:
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2F7F0;
|
|
}
|
|
goto L_08B2F7D4;
|
|
}
|
|
L_08B2F7D4:
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2F7F0;
|
|
}
|
|
goto L_08B2F7EC;
|
|
}
|
|
L_08B2F7EC:
|
|
aot_mem.aot_direct_store16(aot_gpr_16 + static_cast<std::uint32_t>(518), static_cast<std::uint16_t>(0u));
|
|
goto L_08B2F7F0;
|
|
L_08B2F7F0:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[4]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2F80C:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[4]{aot_gpr_16, aot_gpr_17, ctx.gpr[18], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[18] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2F83Cu);
|
|
ctx.gpr[7] = (ctx.gpr[18] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F83Cu) goto L_08B2F83C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F83C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2F848u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F848u) goto L_08B2F848;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F848:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(1360)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
|
|
if (branch_taken) {
|
|
goto L_08B2F860;
|
|
}
|
|
goto L_08B2F858;
|
|
}
|
|
L_08B2F858:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_4 = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08B2F864;
|
|
}
|
|
goto L_08B2F860;
|
|
}
|
|
L_08B2F860:
|
|
aot_gpr_4 = (0u | 0u);
|
|
goto L_08B2F864;
|
|
L_08B2F864:
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 ^ aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2F888;
|
|
}
|
|
goto L_08B2F880;
|
|
}
|
|
L_08B2F880:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2F8D0;
|
|
}
|
|
goto L_08B2F888;
|
|
}
|
|
L_08B2F888:
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(518));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[6]) < 9 ? 1u : 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store16(aot_gpr_5 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[6]));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2F8B4;
|
|
}
|
|
goto L_08B2F8A8;
|
|
}
|
|
L_08B2F8A8:
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2F8D0;
|
|
}
|
|
goto L_08B2F8B4;
|
|
}
|
|
L_08B2F8B4:
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2F8D0;
|
|
}
|
|
goto L_08B2F8CC;
|
|
}
|
|
L_08B2F8CC:
|
|
aot_mem.aot_direct_store16(aot_gpr_16 + static_cast<std::uint32_t>(518), static_cast<std::uint16_t>(0u));
|
|
goto L_08B2F8D0;
|
|
L_08B2F8D0:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[4]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2F8EC:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
|
|
{ const std::uint32_t aot_run_words[4]{aot_gpr_16, aot_gpr_17, ctx.gpr[18], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
ctx.gpr[18] = (2236u << 16u);
|
|
ctx.gpr[7] = (ctx.gpr[18] + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_5 = (aot_gpr_17 | 0u);
|
|
aot_gpr_31 = (0x08B2F91Cu);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F91Cu) goto L_08B2F91C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F91C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2F928u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F928u) goto L_08B2F928;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F928:
|
|
aot_gpr_4 = (ctx.gpr[2] + static_cast<std::uint32_t>(16));
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
{ 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_14 = std::bit_cast<float>(0x7FC00000u); else aot_fpr_14 = fs * ft; }
|
|
{ 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<float>(0x7FC00000u); else aot_fpr_13 = fs * ft; }
|
|
aot_fpr_13 = aot_fpr_14 + aot_fpr_13;
|
|
aot_fpr_13 = std::sqrt(aot_fpr_13);
|
|
aot_fpr_12 = aot_fpr_12 / aot_fpr_13;
|
|
aot_gpr_4 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast<std::uint32_t>(29704), aot_gpr_4);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (aot_gpr_17 | 0u);
|
|
aot_gpr_31 = (0x08B2F960u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08862890, 23u, 431u, 0x08862890u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], ctx.gpr[11], aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], 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_0023_entry, 23u, 431u, 0x08862890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F960u) goto L_08B2F960;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F960:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[4]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2F97C:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
|
|
{ const std::uint32_t aot_run_words[4]{aot_gpr_16, aot_gpr_17, ctx.gpr[18], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
ctx.gpr[18] = (2236u << 16u);
|
|
ctx.gpr[7] = (ctx.gpr[18] + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_5 = (aot_gpr_17 | 0u);
|
|
aot_gpr_31 = (0x08B2F9ACu);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F9ACu) goto L_08B2F9AC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F9AC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2F9B8u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F9B8u) goto L_08B2F9B8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F9B8:
|
|
aot_gpr_4 = (ctx.gpr[2] + static_cast<std::uint32_t>(16));
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
{ 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<float>(0x7FC00000u); else aot_fpr_12 = fs * ft; }
|
|
{ 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_14 = std::bit_cast<float>(0x7FC00000u); else aot_fpr_14 = fs * ft; }
|
|
aot_fpr_12 = aot_fpr_12 + aot_fpr_14;
|
|
aot_fpr_12 = std::sqrt(aot_fpr_12);
|
|
aot_fpr_12 = aot_fpr_13 / aot_fpr_12;
|
|
aot_gpr_4 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast<std::uint32_t>(29704), aot_gpr_4);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (aot_gpr_17 | 0u);
|
|
aot_gpr_31 = (0x08B2F9F0u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08862890, 23u, 431u, 0x08862890u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], ctx.gpr[11], aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], 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_0023_entry, 23u, 431u, 0x08862890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F9F0u) goto L_08B2F9F0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2F9F0:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[4]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2FA0C:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
aot_gpr_16 = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2FA34u);
|
|
ctx.gpr[7] = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FA34u) goto L_08B2FA34;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FA34:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2FA40u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FA40u) goto L_08B2FA40;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FA40:
|
|
aot_gpr_4 = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2FA6C;
|
|
}
|
|
goto L_08B2FA4C;
|
|
}
|
|
L_08B2FA4C:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(472)));
|
|
ctx.gpr[6] = (0u + static_cast<std::uint32_t>(-9));
|
|
aot_gpr_5 = (aot_gpr_5 & ctx.gpr[6]);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[6] = (ctx.gpr[6] & 1u);
|
|
ctx.gpr[6] = (ctx.gpr[6] << 3u);
|
|
aot_gpr_5 = (aot_gpr_5 | ctx.gpr[6]);
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(472), aot_gpr_5);
|
|
goto L_08B2FA6C;
|
|
L_08B2FA6C:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2FA84:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_31 = (0x08B2FAACu);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FAACu) goto L_08B2FAAC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FAAC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2FAB8u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FAB8u) goto L_08B2FAB8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FAB8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(2236)));
|
|
aot_gpr_5 = (0u | 17u);
|
|
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
|
|
aot_gpr_5 = (0u | 18u);
|
|
if (branch_taken) {
|
|
goto L_08B2FAD0;
|
|
}
|
|
goto L_08B2FAC8;
|
|
}
|
|
L_08B2FAC8:
|
|
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
|
|
if (branch_taken) {
|
|
goto L_08B2FAD8;
|
|
}
|
|
goto L_08B2FAD0;
|
|
}
|
|
L_08B2FAD0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_4 = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08B2FADC;
|
|
}
|
|
goto L_08B2FAD8;
|
|
}
|
|
L_08B2FAD8:
|
|
aot_gpr_4 = (0u | 0u);
|
|
goto L_08B2FADC;
|
|
L_08B2FADC:
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 ^ aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2FB00;
|
|
}
|
|
goto L_08B2FAF8;
|
|
}
|
|
L_08B2FAF8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2FB48;
|
|
}
|
|
goto L_08B2FB00;
|
|
}
|
|
L_08B2FB00:
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(518));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[6]) < 9 ? 1u : 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store16(aot_gpr_5 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[6]));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2FB2C;
|
|
}
|
|
goto L_08B2FB20;
|
|
}
|
|
L_08B2FB20:
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2FB48;
|
|
}
|
|
goto L_08B2FB2C;
|
|
}
|
|
L_08B2FB2C:
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2FB48;
|
|
}
|
|
goto L_08B2FB44;
|
|
}
|
|
L_08B2FB44:
|
|
aot_mem.aot_direct_store16(aot_gpr_16 + static_cast<std::uint32_t>(518), static_cast<std::uint16_t>(0u));
|
|
goto L_08B2FB48;
|
|
L_08B2FB48:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2FB60:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
|
|
{ const std::uint32_t aot_run_words[5]{aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
ctx.gpr[18] = (2236u << 16u);
|
|
ctx.gpr[19] = (ctx.gpr[18] + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_5 = (aot_gpr_17 | 0u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
aot_gpr_31 = (0x08B2FB98u);
|
|
ctx.gpr[7] = (ctx.gpr[19] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FB98u) goto L_08B2FB98;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FB98:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2FBA4u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FBA4u) goto L_08B2FBA4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FBA4:
|
|
aot_gpr_4 = (ctx.gpr[2] + static_cast<std::uint32_t>(48));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast<std::uint32_t>(29704), aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast<std::uint32_t>(4), aot_gpr_5);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (aot_gpr_17 | 0u);
|
|
aot_gpr_31 = (0x08B2FBD0u);
|
|
ctx.gpr[6] = (0u | 3u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08862890, 23u, 431u, 0x08862890u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], ctx.gpr[11], aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], 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_0023_entry, 23u, 431u, 0x08862890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FBD0u) goto L_08B2FBD0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FBD0:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[5]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2FBF0:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[4]{aot_gpr_16, aot_gpr_17, ctx.gpr[18], aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
ctx.gpr[18] = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_5 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_31 = (0x08B2FC20u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FC20u) goto L_08B2FC20;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FC20:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2FC2Cu);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FC2Cu) goto L_08B2FC2C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FC2C:
|
|
aot_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast<std::uint32_t>(86))))));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7656)));
|
|
ctx.gpr[6] = (static_cast<std::int32_t>(aot_gpr_5) < static_cast<std::int32_t>(ctx.gpr[6]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
aot_gpr_4 = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2FC50;
|
|
}
|
|
goto L_08B2FC40;
|
|
}
|
|
L_08B2FC40:
|
|
aot_gpr_4 = (aot_gpr_5 << 2u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
|
|
aot_gpr_4 = (aot_gpr_5 + aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
goto L_08B2FC50;
|
|
L_08B2FC50:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(71)));
|
|
aot_mem.aot_direct_store32(aot_gpr_17 + static_cast<std::uint32_t>(29704), aot_gpr_4);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_31 = (0x08B2FC68u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08862890, 23u, 431u, 0x08862890u>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], ctx.gpr[11], aot_gpr_16, aot_gpr_17, ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], 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_0023_entry, 23u, 431u, 0x08862890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FC68u) goto L_08B2FC68;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FC68:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[4]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2FC84:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
aot_gpr_16 = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
aot_gpr_31 = (0x08B2FCACu);
|
|
ctx.gpr[7] = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FCACu) goto L_08B2FCAC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FCAC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2FCB8u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FCB8u) goto L_08B2FCB8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FCB8:
|
|
ctx.gpr[6] = (ctx.gpr[2] | 0u);
|
|
aot_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[6] + static_cast<std::uint32_t>(86))))));
|
|
ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7656)));
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(aot_gpr_5) < static_cast<std::int32_t>(ctx.gpr[7]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
aot_gpr_4 = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2FCE0;
|
|
}
|
|
goto L_08B2FCD0;
|
|
}
|
|
L_08B2FCD0:
|
|
aot_gpr_4 = (aot_gpr_5 << 2u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
|
|
aot_gpr_4 = (aot_gpr_5 + aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
goto L_08B2FCE0;
|
|
L_08B2FCE0:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_31 = (0x08B2FCECu);
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(1276));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 632u, 0x08903654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FCECu) goto L_08B2FCEC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FCEC:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2FD04:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, aot_gpr_17, aot_gpr_31};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_17 = (2236u << 16u);
|
|
ctx.gpr[7] = (aot_gpr_17 + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_31 = (0x08B2FD30u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FD30u) goto L_08B2FD30;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FD30:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2FD3Cu);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FD3Cu) goto L_08B2FD3C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FD3C:
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_4 = (aot_gpr_5 + static_cast<std::uint32_t>(320));
|
|
{ const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(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<float>(aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(2244)));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
if (aot_gpr_4 == ctx.gpr[6]) {
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(2244)));
|
|
goto L_08B2FD8C;
|
|
}
|
|
goto L_08B2FD64;
|
|
L_08B2FD64:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(2244)));
|
|
ctx.gpr[6] = (0u | 6u);
|
|
if (aot_gpr_4 == ctx.gpr[6]) {
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(2244)));
|
|
goto L_08B2FD8C;
|
|
}
|
|
goto L_08B2FD74;
|
|
L_08B2FD74:
|
|
aot_fpr_13 = std::bit_cast<float>(0u);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_13)) ? 0x00800000u : 0u);
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2FDF0;
|
|
}
|
|
goto L_08B2FD88;
|
|
}
|
|
L_08B2FD88:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(2244)));
|
|
goto L_08B2FD8C;
|
|
L_08B2FD8C:
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 3 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2FDF0;
|
|
}
|
|
goto L_08B2FD98;
|
|
}
|
|
L_08B2FD98:
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(2228)));
|
|
ctx.gpr[7] = (0u | 43u);
|
|
{ const bool branch_taken = ctx.gpr[6] == ctx.gpr[7];
|
|
aot_gpr_4 = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2FDB8;
|
|
}
|
|
goto L_08B2FDA8;
|
|
}
|
|
L_08B2FDA8:
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(2228)));
|
|
ctx.gpr[7] = (0u | 44u);
|
|
{ const bool branch_taken = ctx.gpr[6] != ctx.gpr[7];
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
if (branch_taken) {
|
|
goto L_08B2FDC0;
|
|
}
|
|
goto L_08B2FDB8;
|
|
}
|
|
L_08B2FDB8:
|
|
aot_gpr_4 = (0u | 1u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
goto L_08B2FDC0;
|
|
L_08B2FDC0:
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2FDF0;
|
|
}
|
|
goto L_08B2FDC8;
|
|
}
|
|
L_08B2FDC8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(2228)));
|
|
ctx.gpr[6] = (0u | 45u);
|
|
{ const bool branch_taken = aot_gpr_4 == ctx.gpr[6];
|
|
if (branch_taken) {
|
|
goto L_08B2FDF0;
|
|
}
|
|
goto L_08B2FDD8;
|
|
}
|
|
L_08B2FDD8:
|
|
aot_gpr_31 = (0x08B2FDE0u);
|
|
aot_gpr_4 = (aot_gpr_5 | 0u);
|
|
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 == 0x08B2FDE0u) goto L_08B2FDE0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FDE0:
|
|
{ const bool branch_taken = ctx.gpr[2] != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2FDF0;
|
|
}
|
|
goto L_08B2FDE8;
|
|
}
|
|
L_08B2FDE8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_4 = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08B2FDF4;
|
|
}
|
|
goto L_08B2FDF0;
|
|
}
|
|
L_08B2FDF0:
|
|
aot_gpr_4 = (0u | 0u);
|
|
goto L_08B2FDF4;
|
|
L_08B2FDF4:
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(524)));
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 ^ aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2FE20;
|
|
}
|
|
goto L_08B2FE18;
|
|
}
|
|
L_08B2FE18:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2FE70;
|
|
}
|
|
goto L_08B2FE20;
|
|
}
|
|
L_08B2FE20:
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(518));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store16(aot_gpr_5 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[7]));
|
|
aot_gpr_5 = (static_cast<std::int32_t>(ctx.gpr[6]) < 9 ? 1u : 0u);
|
|
if (aot_gpr_5 == 0u) {
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
goto L_08B2FE50;
|
|
}
|
|
goto L_08B2FE3C;
|
|
L_08B2FE3C:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(521)));
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B2FE70;
|
|
}
|
|
goto L_08B2FE50;
|
|
}
|
|
L_08B2FE50:
|
|
aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 | aot_gpr_5);
|
|
aot_mem.aot_direct_store8(aot_gpr_16 + static_cast<std::uint32_t>(521), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast<std::uint32_t>(518)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B2FE70;
|
|
}
|
|
goto L_08B2FE6C;
|
|
}
|
|
L_08B2FE6C:
|
|
aot_mem.aot_direct_store16(aot_gpr_16 + static_cast<std::uint32_t>(518), static_cast<std::uint16_t>(0u));
|
|
goto L_08B2FE70;
|
|
L_08B2FE70:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B2FE78;
|
|
}
|
|
goto L_08B2FE78;
|
|
}
|
|
L_08B2FE78:
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
aot_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<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B2FE8C:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-112));
|
|
{ const std::uint32_t aot_run_words[6]{aot_gpr_16, aot_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<std::uint32_t>(84), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_31 = (0x08B2FEB4u);
|
|
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(48));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 291u, 0x089D1AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FEB4u) goto L_08B2FEB4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FEB4:
|
|
aot_gpr_17 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
ctx.gpr[18] = (2236u << 16u);
|
|
ctx.gpr[19] = (ctx.gpr[18] + static_cast<std::uint32_t>(29704));
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (aot_gpr_17 | 0u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
aot_gpr_31 = (0x08B2FED4u);
|
|
ctx.gpr[7] = (ctx.gpr[19] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FED4u) goto L_08B2FED4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FED4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-15976)));
|
|
aot_gpr_31 = (0x08B2FEE0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(29704)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 431u, 0x08B65C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FEE0u) goto L_08B2FEE0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FEE0:
|
|
ctx.gpr[20] = (ctx.gpr[2] | 0u);
|
|
aot_gpr_4 = (ctx.gpr[20] | 0u);
|
|
aot_gpr_31 = (0x08B2FEF0u);
|
|
aot_gpr_5 = (aot_gpr_29 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 544u, 0x08B26D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FEF0u) goto L_08B2FEF0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FEF0:
|
|
{ const std::uint32_t vfpu_address = aot_gpr_29 + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(32));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast<std::uint32_t>(86))))));
|
|
aot_gpr_4 = (aot_gpr_4 << 2u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
|
|
aot_gpr_4 = (aot_gpr_5 + aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(20)));
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
|
|
aot_fpr_14 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(32)));
|
|
aot_fpr_12 = aot_fpr_14 - ctx.fpr[15];
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(40)));
|
|
aot_fpr_13 = ctx.fpr[16] + ctx.fpr[15];
|
|
aot_fpr_14 = aot_fpr_14 + ctx.fpr[15];
|
|
aot_gpr_31 = (0x08B2FF38u);
|
|
ctx.fpr[15] = ctx.fpr[16] - ctx.fpr[15];
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_089D1B1C, 115u, 292u, 0x089D1B1Cu>(ctx, &aot_mem, ctx.pc, ctx.gpr[2], aot_gpr_4, aot_gpr_31, aot_fpr_12, aot_fpr_13, aot_fpr_14, ctx.fpr[15]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0115_entry, 115u, 292u, 0x089D1B1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FF38u) goto L_08B2FF38;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FF38:
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
|
|
aot_gpr_4 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(20)));
|
|
aot_gpr_5 = (std::bit_cast<std::uint32_t>(aot_fpr_13));
|
|
aot_fpr_14 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[6] = (std::bit_cast<std::uint32_t>(aot_fpr_14));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_4, aot_gpr_5, ctx.gpr[6]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(48), aot_run_words); }
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(28)));
|
|
aot_gpr_4 = (std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(60), aot_gpr_4);
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(48)));
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(36)));
|
|
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(40)));
|
|
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(aot_fpr_12), std::bit_cast<std::uint32_t>(ctx.fpr[16]), std::bit_cast<std::uint32_t>(aot_fpr_13)};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
ctx.gpr[6] = (aot_gpr_29 + static_cast<std::uint32_t>(64));
|
|
ctx.gpr[20] = (aot_gpr_29 + static_cast<std::uint32_t>(80));
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (aot_gpr_29 | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[8] = (ctx.gpr[20] | 0u);
|
|
aot_gpr_31 = (0x08B2FFA0u);
|
|
ctx.gpr[9] = (ctx.gpr[20] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 584u, 0x088631C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FFA0u) goto L_08B2FFA0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FFA0:
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(56)));
|
|
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(36)));
|
|
aot_fpr_14 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(40)));
|
|
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(aot_fpr_12), std::bit_cast<std::uint32_t>(aot_fpr_13), std::bit_cast<std::uint32_t>(aot_fpr_14)};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
ctx.gpr[7] = (aot_gpr_29 + static_cast<std::uint32_t>(68));
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (aot_gpr_29 | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[8] = (ctx.gpr[20] | 0u);
|
|
aot_gpr_31 = (0x08B2FFD4u);
|
|
ctx.gpr[9] = (ctx.gpr[20] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 584u, 0x088631C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FFD4u) goto L_08B2FFD4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B2FFD4:
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(32)));
|
|
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(36)));
|
|
aot_fpr_14 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(52)));
|
|
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(aot_fpr_12), std::bit_cast<std::uint32_t>(aot_fpr_13), std::bit_cast<std::uint32_t>(aot_fpr_14)};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
ctx.gpr[8] = (aot_gpr_29 + static_cast<std::uint32_t>(72));
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (aot_gpr_29 | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[20] | 0u);
|
|
ctx.pc = 0x08B30000u; AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
|
|
#undef AOT_REGCACHE_SYNC_IN
|
|
#undef AOT_REGCACHE_SYNC_OUT
|
|
|
|
void recomp_unit_0202(Runtime &rt, AllegrexContext &ctx) {
|
|
auto aot_mem = rt.memory().aot_fast_view();
|
|
recomp_unit_0202_entry(rt, ctx, 0u, aot_mem);
|
|
}
|
|
|
|
void register_generated_unit_202(Runtime &runtime) {
|
|
runtime.register_generated_unit(202u, 0x08B2C000u, 16384u, &recomp_unit_0202, &recomp_unit_0202_entry);
|
|
// PSPRECOMP_V812_COMPACT_REGISTRATION: same entry set, looped once in Runtime instead of source-expanded calls.
|
|
runtime.register_generated_entry_mask(0x08B2C000u, &recomp_unit_0202, "recomp_unit_0202",
|
|
kEntryMasks_recomp_unit_0202, 64u);
|
|
}
|
|
} // namespace psprecomp
|