mirror of
https://github.com/jessicanataliagta/PSPRecomp
synced 2026-09-26 16:49:34 -04:00
430e45bdb0
more updates
8467 lines
399 KiB
C++
8467 lines
399 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_0218[64] = {
|
|
0x8C40000482006041ull, 0x0041141100000582ull, 0x0004054100080002ull, 0x8000500000D82802ull,
|
|
0x180000B0A0A00000ull, 0xB0A8000480000002ull, 0x4002080000916154ull, 0x0A00409400084A04ull,
|
|
0x080092404008042Cull, 0x82460082002C2A00ull, 0x2008000595264848ull, 0x9148820492488290ull,
|
|
0x8100200016080425ull, 0x0409401292122014ull, 0x0280000101452408ull, 0x8010400301200580ull,
|
|
0x0030120041000C04ull, 0x2008200180900104ull, 0xAD12A24010400301ull, 0x9104444082080AD4ull,
|
|
0x82204292110212CAull, 0x80A94A5301096548ull, 0x0A94A5301534515Aull, 0x41111021534515A8ull,
|
|
0x0810A4844084B2A4ull, 0x0012492252448852ull, 0x240816000949122Cull, 0x1054880924910AD2ull,
|
|
0x10010010AC852208ull, 0x824884602A002410ull, 0x20601049108A2080ull, 0xB202000412888080ull,
|
|
0x4044204010815004ull, 0x0888048A04012000ull, 0x00224502810940A0ull, 0x0281080200891402ull,
|
|
0x95028108022A0445ull, 0x8040423002004048ull, 0x80869022520C0424ull, 0x4406944020082084ull,
|
|
0x44000840908410A4ull, 0x1002008020004024ull, 0xA24400C414C44289ull, 0x961512692910014Cull,
|
|
0xD454A52984008550ull, 0x4C2B102810A9A28Aull, 0x82254D1456A2A529ull, 0x5A424085691205A0ull,
|
|
0x8001884104640021ull, 0x0090910841000000ull, 0x000C028100004229ull, 0x0000000000000000ull,
|
|
0x0000100200000001ull, 0x8043000000000000ull, 0x2004000000080440ull, 0x0000000000000000ull,
|
|
0x0402004020810086ull, 0xDAAB2C21852C4008ull, 0x0421488C40001000ull, 0x048800A446200020ull,
|
|
0x800000200001001Aull, 0x5100000000000000ull, 0x8100802020082280ull, 0x0000008080000000ull,
|
|
};
|
|
static constexpr std::uint16_t kEntryBases_recomp_unit_0218[64] = {
|
|
1u, 12u, 22u, 29u, 39u, 48u, 57u, 69u, 80u, 91u, 104u, 119u, 136u, 147u, 161u, 171u,
|
|
181u, 190u, 199u, 215u, 231u, 248u, 269u, 293u, 313u, 330u, 347u, 363u, 382u, 395u, 409u, 422u,
|
|
434u, 445u, 455u, 468u, 479u, 495u, 505u, 521u, 534u, 546u, 553u, 571u, 592u, 613u, 634u, 659u,
|
|
679u, 691u, 699u, 709u, 709u, 712u, 716u, 721u, 721u, 730u, 753u, 763u, 774u, 780u, 783u, 792u,
|
|
};
|
|
void recomp_unit_0218_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) {
|
|
// PSPRECOMP_AOT_REGCACHE_BEGIN
|
|
// PSPRECOMP_AOT_REGCACHE_META gprs=4,29,5,6,7,16 fprs=12,13,14 gpr_occ=4995 fpr_occ=74 gpr_total=7256 fpr_total=74
|
|
std::uint32_t aot_gpr_4 = ctx.gpr[4];
|
|
std::uint32_t aot_gpr_29 = ctx.gpr[29];
|
|
std::uint32_t aot_gpr_5 = ctx.gpr[5];
|
|
std::uint32_t aot_gpr_6 = ctx.gpr[6];
|
|
std::uint32_t aot_gpr_7 = ctx.gpr[7];
|
|
std::uint32_t aot_gpr_16 = ctx.gpr[16];
|
|
float aot_fpr_12 = ctx.fpr[12];
|
|
float aot_fpr_13 = ctx.fpr[13];
|
|
float aot_fpr_14 = ctx.fpr[14];
|
|
bool aot_regcache_valid = true;
|
|
#define AOT_REGCACHE_SYNC_OUT() do { if (aot_regcache_valid) { ctx.gpr[4] = aot_gpr_4; ctx.gpr[29] = aot_gpr_29; ctx.gpr[5] = aot_gpr_5; ctx.gpr[6] = aot_gpr_6; ctx.gpr[7] = aot_gpr_7; ctx.gpr[16] = aot_gpr_16; ctx.fpr[12] = aot_fpr_12; ctx.fpr[13] = aot_fpr_13; ctx.fpr[14] = aot_fpr_14; } } while (false)
|
|
#define AOT_REGCACHE_SYNC_IN() do { if (aot_regcache_valid) { aot_gpr_4 = ctx.gpr[4]; aot_gpr_29 = ctx.gpr[29]; aot_gpr_5 = ctx.gpr[5]; aot_gpr_6 = ctx.gpr[6]; aot_gpr_7 = ctx.gpr[7]; aot_gpr_16 = ctx.gpr[16]; aot_fpr_12 = ctx.fpr[12]; aot_fpr_13 = ctx.fpr[13]; aot_fpr_14 = ctx.fpr[14]; } } while (false)
|
|
// PSPRECOMP_AOT_REGCACHE_END
|
|
std::uint32_t jump_target = 0u;
|
|
std::uint32_t local_transfers = 0u;
|
|
std::uint32_t local_redispatch_rounds = 0u;
|
|
std::uint32_t local_pc = ctx.pc;
|
|
std::uint32_t entry_id = direct_entry_id;
|
|
LOCAL_DISPATCH:
|
|
{
|
|
if (entry_id == 0u) {
|
|
const std::uint32_t entry_delta = local_pc - 0x08B6C000u;
|
|
entry_id = 0u;
|
|
if (entry_delta < 16288u && (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_0218[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_0218[entry_group] +
|
|
std::popcount(entry_mask & (entry_bit - 1ull)));
|
|
}
|
|
}
|
|
}
|
|
switch (entry_id) {
|
|
case 1u: goto L_08B6C000;
|
|
case 2u: goto L_08B6C018;
|
|
case 3u: goto L_08B6C034;
|
|
case 4u: goto L_08B6C038;
|
|
case 5u: goto L_08B6C064;
|
|
case 6u: goto L_08B6C07C;
|
|
case 7u: goto L_08B6C088;
|
|
case 8u: goto L_08B6C0D8;
|
|
case 9u: goto L_08B6C0E8;
|
|
case 10u: goto L_08B6C0EC;
|
|
case 11u: goto L_08B6C0FC;
|
|
case 12u: goto L_08B6C104;
|
|
case 13u: goto L_08B6C11C;
|
|
case 14u: goto L_08B6C120;
|
|
case 15u: goto L_08B6C128;
|
|
case 16u: goto L_08B6C180;
|
|
case 17u: goto L_08B6C190;
|
|
case 18u: goto L_08B6C1A8;
|
|
case 19u: goto L_08B6C1B0;
|
|
case 20u: goto L_08B6C1C0;
|
|
case 21u: goto L_08B6C1D8;
|
|
case 22u: goto L_08B6C204;
|
|
case 23u: goto L_08B6C24C;
|
|
case 24u: goto L_08B6C280;
|
|
case 25u: goto L_08B6C298;
|
|
case 26u: goto L_08B6C2A0;
|
|
case 27u: goto L_08B6C2A8;
|
|
case 28u: goto L_08B6C2C8;
|
|
case 29u: goto L_08B6C304;
|
|
case 30u: goto L_08B6C32C;
|
|
case 31u: goto L_08B6C334;
|
|
case 32u: goto L_08B6C34C;
|
|
case 33u: goto L_08B6C350;
|
|
case 34u: goto L_08B6C358;
|
|
case 35u: goto L_08B6C35C;
|
|
case 36u: goto L_08B6C3B0;
|
|
case 37u: goto L_08B6C3B8;
|
|
case 38u: goto L_08B6C3FC;
|
|
case 39u: goto L_08B6C454;
|
|
case 40u: goto L_08B6C45C;
|
|
case 41u: goto L_08B6C474;
|
|
case 42u: goto L_08B6C47C;
|
|
case 43u: goto L_08B6C490;
|
|
case 44u: goto L_08B6C494;
|
|
case 45u: goto L_08B6C49C;
|
|
case 46u: goto L_08B6C4EC;
|
|
case 47u: goto L_08B6C4F0;
|
|
case 48u: goto L_08B6C504;
|
|
case 49u: goto L_08B6C57C;
|
|
case 50u: goto L_08B6C588;
|
|
case 51u: goto L_08B6C5CC;
|
|
case 52u: goto L_08B6C5D4;
|
|
case 53u: goto L_08B6C5DC;
|
|
case 54u: goto L_08B6C5F0;
|
|
case 55u: goto L_08B6C5F4;
|
|
case 56u: goto L_08B6C5FC;
|
|
case 57u: goto L_08B6C608;
|
|
case 58u: goto L_08B6C610;
|
|
case 59u: goto L_08B6C618;
|
|
case 60u: goto L_08B6C620;
|
|
case 61u: goto L_08B6C634;
|
|
case 62u: goto L_08B6C638;
|
|
case 63u: goto L_08B6C640;
|
|
case 64u: goto L_08B6C650;
|
|
case 65u: goto L_08B6C65C;
|
|
case 66u: goto L_08B6C6AC;
|
|
case 67u: goto L_08B6C6C4;
|
|
case 68u: goto L_08B6C6F8;
|
|
case 69u: goto L_08B6C708;
|
|
case 70u: goto L_08B6C724;
|
|
case 71u: goto L_08B6C72C;
|
|
case 72u: goto L_08B6C738;
|
|
case 73u: goto L_08B6C74C;
|
|
case 74u: goto L_08B6C788;
|
|
case 75u: goto L_08B6C790;
|
|
case 76u: goto L_08B6C79C;
|
|
case 77u: goto L_08B6C7B8;
|
|
case 78u: goto L_08B6C7E4;
|
|
case 79u: goto L_08B6C7EC;
|
|
case 80u: goto L_08B6C808;
|
|
case 81u: goto L_08B6C80C;
|
|
case 82u: goto L_08B6C814;
|
|
case 83u: goto L_08B6C828;
|
|
case 84u: goto L_08B6C84C;
|
|
case 85u: goto L_08B6C878;
|
|
case 86u: goto L_08B6C898;
|
|
case 87u: goto L_08B6C8A4;
|
|
case 88u: goto L_08B6C8B0;
|
|
case 89u: goto L_08B6C8BC;
|
|
case 90u: goto L_08B6C8EC;
|
|
case 91u: goto L_08B6C924;
|
|
case 92u: goto L_08B6C92C;
|
|
case 93u: goto L_08B6C934;
|
|
case 94u: goto L_08B6C948;
|
|
case 95u: goto L_08B6C94C;
|
|
case 96u: goto L_08B6C954;
|
|
case 97u: goto L_08B6C984;
|
|
case 98u: goto L_08B6C99C;
|
|
case 99u: goto L_08B6C9C4;
|
|
case 100u: goto L_08B6C9C8;
|
|
case 101u: goto L_08B6C9D8;
|
|
case 102u: goto L_08B6C9E4;
|
|
case 103u: goto L_08B6C9FC;
|
|
case 104u: goto L_08B6CA0C;
|
|
case 105u: goto L_08B6CA18;
|
|
case 106u: goto L_08B6CA2C;
|
|
case 107u: goto L_08B6CA38;
|
|
case 108u: goto L_08B6CA44;
|
|
case 109u: goto L_08B6CA48;
|
|
case 110u: goto L_08B6CA54;
|
|
case 111u: goto L_08B6CA60;
|
|
case 112u: goto L_08B6CA68;
|
|
case 113u: goto L_08B6CA70;
|
|
case 114u: goto L_08B6CA7C;
|
|
case 115u: goto L_08B6CA80;
|
|
case 116u: goto L_08B6CA88;
|
|
case 117u: goto L_08B6CACC;
|
|
case 118u: goto L_08B6CAF4;
|
|
case 119u: goto L_08B6CB10;
|
|
case 120u: goto L_08B6CB1C;
|
|
case 121u: goto L_08B6CB24;
|
|
case 122u: goto L_08B6CB3C;
|
|
case 123u: goto L_08B6CB4C;
|
|
case 124u: goto L_08B6CB58;
|
|
case 125u: goto L_08B6CB64;
|
|
case 126u: goto L_08B6CB70;
|
|
case 127u: goto L_08B6CB7C;
|
|
case 128u: goto L_08B6CB88;
|
|
case 129u: goto L_08B6CBA4;
|
|
case 130u: goto L_08B6CBBC;
|
|
case 131u: goto L_08B6CBCC;
|
|
case 132u: goto L_08B6CBD8;
|
|
case 133u: goto L_08B6CBE0;
|
|
case 134u: goto L_08B6CBF0;
|
|
case 135u: goto L_08B6CBFC;
|
|
case 136u: goto L_08B6CC00;
|
|
case 137u: goto L_08B6CC08;
|
|
case 138u: goto L_08B6CC14;
|
|
case 139u: goto L_08B6CC28;
|
|
case 140u: goto L_08B6CC4C;
|
|
case 141u: goto L_08B6CC64;
|
|
case 142u: goto L_08B6CC68;
|
|
case 143u: goto L_08B6CC70;
|
|
case 144u: goto L_08B6CCB4;
|
|
case 145u: goto L_08B6CCE0;
|
|
case 146u: goto L_08B6CCFC;
|
|
case 147u: goto L_08B6CD08;
|
|
case 148u: goto L_08B6CD10;
|
|
case 149u: goto L_08B6CD34;
|
|
case 150u: goto L_08B6CD44;
|
|
case 151u: goto L_08B6CD50;
|
|
case 152u: goto L_08B6CD64;
|
|
case 153u: goto L_08B6CD70;
|
|
case 154u: goto L_08B6CD7C;
|
|
case 155u: goto L_08B6CD84;
|
|
case 156u: goto L_08B6CD90;
|
|
case 157u: goto L_08B6CDB8;
|
|
case 158u: goto L_08B6CDC0;
|
|
case 159u: goto L_08B6CDCC;
|
|
case 160u: goto L_08B6CDE8;
|
|
case 161u: goto L_08B6CE0C;
|
|
case 162u: goto L_08B6CE28;
|
|
case 163u: goto L_08B6CE34;
|
|
case 164u: goto L_08B6CE40;
|
|
case 165u: goto L_08B6CE48;
|
|
case 166u: goto L_08B6CE58;
|
|
case 167u: goto L_08B6CE60;
|
|
case 168u: goto L_08B6CE80;
|
|
case 169u: goto L_08B6CEDC;
|
|
case 170u: goto L_08B6CEE4;
|
|
case 171u: goto L_08B6CF1C;
|
|
case 172u: goto L_08B6CF20;
|
|
case 173u: goto L_08B6CF28;
|
|
case 174u: goto L_08B6CF54;
|
|
case 175u: goto L_08B6CF60;
|
|
case 176u: goto L_08B6CF80;
|
|
case 177u: goto L_08B6CF84;
|
|
case 178u: goto L_08B6CFB8;
|
|
case 179u: goto L_08B6CFD0;
|
|
case 180u: goto L_08B6CFFC;
|
|
case 181u: goto L_08B6D008;
|
|
case 182u: goto L_08B6D028;
|
|
case 183u: goto L_08B6D02C;
|
|
case 184u: goto L_08B6D060;
|
|
case 185u: goto L_08B6D078;
|
|
case 186u: goto L_08B6D0A4;
|
|
case 187u: goto L_08B6D0B0;
|
|
case 188u: goto L_08B6D0D0;
|
|
case 189u: goto L_08B6D0D4;
|
|
case 190u: goto L_08B6D108;
|
|
case 191u: goto L_08B6D120;
|
|
case 192u: goto L_08B6D150;
|
|
case 193u: goto L_08B6D15C;
|
|
case 194u: goto L_08B6D17C;
|
|
case 195u: goto L_08B6D180;
|
|
case 196u: goto L_08B6D1B4;
|
|
case 197u: goto L_08B6D1CC;
|
|
case 198u: goto L_08B6D1F4;
|
|
case 199u: goto L_08B6D200;
|
|
case 200u: goto L_08B6D220;
|
|
case 201u: goto L_08B6D224;
|
|
case 202u: goto L_08B6D258;
|
|
case 203u: goto L_08B6D270;
|
|
case 204u: goto L_08B6D298;
|
|
case 205u: goto L_08B6D2A4;
|
|
case 206u: goto L_08B6D2B4;
|
|
case 207u: goto L_08B6D2BC;
|
|
case 208u: goto L_08B6D2C4;
|
|
case 209u: goto L_08B6D2D0;
|
|
case 210u: goto L_08B6D2E0;
|
|
case 211u: goto L_08B6D2E8;
|
|
case 212u: goto L_08B6D2EC;
|
|
case 213u: goto L_08B6D2F4;
|
|
case 214u: goto L_08B6D2FC;
|
|
case 215u: goto L_08B6D308;
|
|
case 216u: goto L_08B6D310;
|
|
case 217u: goto L_08B6D318;
|
|
case 218u: goto L_08B6D31C;
|
|
case 219u: goto L_08B6D324;
|
|
case 220u: goto L_08B6D32C;
|
|
case 221u: goto L_08B6D34C;
|
|
case 222u: goto L_08B6D364;
|
|
case 223u: goto L_08B6D37C;
|
|
case 224u: goto L_08B6D398;
|
|
case 225u: goto L_08B6D3A8;
|
|
case 226u: goto L_08B6D3B8;
|
|
case 227u: goto L_08B6D3C8;
|
|
case 228u: goto L_08B6D3E0;
|
|
case 229u: goto L_08B6D3F0;
|
|
case 230u: goto L_08B6D3FC;
|
|
case 231u: goto L_08B6D404;
|
|
case 232u: goto L_08B6D40C;
|
|
case 233u: goto L_08B6D418;
|
|
case 234u: goto L_08B6D41C;
|
|
case 235u: goto L_08B6D424;
|
|
case 236u: goto L_08B6D430;
|
|
case 237u: goto L_08B6D444;
|
|
case 238u: goto L_08B6D460;
|
|
case 239u: goto L_08B6D470;
|
|
case 240u: goto L_08B6D484;
|
|
case 241u: goto L_08B6D490;
|
|
case 242u: goto L_08B6D49C;
|
|
case 243u: goto L_08B6D4A4;
|
|
case 244u: goto L_08B6D4B8;
|
|
case 245u: goto L_08B6D4D4;
|
|
case 246u: goto L_08B6D4E4;
|
|
case 247u: goto L_08B6D4FC;
|
|
case 248u: goto L_08B6D50C;
|
|
case 249u: goto L_08B6D518;
|
|
case 250u: goto L_08B6D520;
|
|
case 251u: goto L_08B6D528;
|
|
case 252u: goto L_08B6D534;
|
|
case 253u: goto L_08B6D538;
|
|
case 254u: goto L_08B6D540;
|
|
case 255u: goto L_08B6D54C;
|
|
case 256u: goto L_08B6D560;
|
|
case 257u: goto L_08B6D580;
|
|
case 258u: goto L_08B6D584;
|
|
case 259u: goto L_08B6D590;
|
|
case 260u: goto L_08B6D598;
|
|
case 261u: goto L_08B6D5A4;
|
|
case 262u: goto L_08B6D5AC;
|
|
case 263u: goto L_08B6D5B8;
|
|
case 264u: goto L_08B6D5C0;
|
|
case 265u: goto L_08B6D5CC;
|
|
case 266u: goto L_08B6D5D4;
|
|
case 267u: goto L_08B6D5DC;
|
|
case 268u: goto L_08B6D5FC;
|
|
case 269u: goto L_08B6D604;
|
|
case 270u: goto L_08B6D60C;
|
|
case 271u: goto L_08B6D610;
|
|
case 272u: goto L_08B6D618;
|
|
case 273u: goto L_08B6D620;
|
|
case 274u: goto L_08B6D630;
|
|
case 275u: goto L_08B6D638;
|
|
case 276u: goto L_08B6D648;
|
|
case 277u: goto L_08B6D650;
|
|
case 278u: goto L_08B6D654;
|
|
case 279u: goto L_08B6D660;
|
|
case 280u: goto L_08B6D668;
|
|
case 281u: goto L_08B6D670;
|
|
case 282u: goto L_08B6D690;
|
|
case 283u: goto L_08B6D694;
|
|
case 284u: goto L_08B6D6A0;
|
|
case 285u: goto L_08B6D6A8;
|
|
case 286u: goto L_08B6D6B4;
|
|
case 287u: goto L_08B6D6BC;
|
|
case 288u: goto L_08B6D6C8;
|
|
case 289u: goto L_08B6D6D0;
|
|
case 290u: goto L_08B6D6DC;
|
|
case 291u: goto L_08B6D6E4;
|
|
case 292u: goto L_08B6D6EC;
|
|
case 293u: goto L_08B6D70C;
|
|
case 294u: goto L_08B6D714;
|
|
case 295u: goto L_08B6D71C;
|
|
case 296u: goto L_08B6D720;
|
|
case 297u: goto L_08B6D728;
|
|
case 298u: goto L_08B6D730;
|
|
case 299u: goto L_08B6D740;
|
|
case 300u: goto L_08B6D748;
|
|
case 301u: goto L_08B6D758;
|
|
case 302u: goto L_08B6D760;
|
|
case 303u: goto L_08B6D764;
|
|
case 304u: goto L_08B6D770;
|
|
case 305u: goto L_08B6D778;
|
|
case 306u: goto L_08B6D780;
|
|
case 307u: goto L_08B6D794;
|
|
case 308u: goto L_08B6D7B0;
|
|
case 309u: goto L_08B6D7C0;
|
|
case 310u: goto L_08B6D7D0;
|
|
case 311u: goto L_08B6D7E0;
|
|
case 312u: goto L_08B6D7F8;
|
|
case 313u: goto L_08B6D808;
|
|
case 314u: goto L_08B6D814;
|
|
case 315u: goto L_08B6D81C;
|
|
case 316u: goto L_08B6D824;
|
|
case 317u: goto L_08B6D830;
|
|
case 318u: goto L_08B6D834;
|
|
case 319u: goto L_08B6D83C;
|
|
case 320u: goto L_08B6D848;
|
|
case 321u: goto L_08B6D85C;
|
|
case 322u: goto L_08B6D878;
|
|
case 323u: goto L_08B6D888;
|
|
case 324u: goto L_08B6D89C;
|
|
case 325u: goto L_08B6D8A8;
|
|
case 326u: goto L_08B6D8B4;
|
|
case 327u: goto L_08B6D8BC;
|
|
case 328u: goto L_08B6D8D0;
|
|
case 329u: goto L_08B6D8EC;
|
|
case 330u: goto L_08B6D904;
|
|
case 331u: goto L_08B6D910;
|
|
case 332u: goto L_08B6D918;
|
|
case 333u: goto L_08B6D92C;
|
|
case 334u: goto L_08B6D93C;
|
|
case 335u: goto L_08B6D948;
|
|
case 336u: goto L_08B6D958;
|
|
case 337u: goto L_08B6D964;
|
|
case 338u: goto L_08B6D970;
|
|
case 339u: goto L_08B6D978;
|
|
case 340u: goto L_08B6D984;
|
|
case 341u: goto L_08B6D994;
|
|
case 342u: goto L_08B6D9A0;
|
|
case 343u: goto L_08B6D9AC;
|
|
case 344u: goto L_08B6D9B8;
|
|
case 345u: goto L_08B6D9C4;
|
|
case 346u: goto L_08B6D9D0;
|
|
case 347u: goto L_08B6DA08;
|
|
case 348u: goto L_08B6DA0C;
|
|
case 349u: goto L_08B6DA14;
|
|
case 350u: goto L_08B6DA24;
|
|
case 351u: goto L_08B6DA30;
|
|
case 352u: goto L_08B6DA40;
|
|
case 353u: goto L_08B6DA4C;
|
|
case 354u: goto L_08B6DA58;
|
|
case 355u: goto L_08B6DA60;
|
|
case 356u: goto L_08B6DA6C;
|
|
case 357u: goto L_08B6DAA4;
|
|
case 358u: goto L_08B6DAA8;
|
|
case 359u: goto L_08B6DAB0;
|
|
case 360u: goto L_08B6DACC;
|
|
case 361u: goto L_08B6DAE8;
|
|
case 362u: goto L_08B6DAF4;
|
|
case 363u: goto L_08B6DB04;
|
|
case 364u: goto L_08B6DB10;
|
|
case 365u: goto L_08B6DB18;
|
|
case 366u: goto L_08B6DB1C;
|
|
case 367u: goto L_08B6DB24;
|
|
case 368u: goto L_08B6DB2C;
|
|
case 369u: goto L_08B6DB40;
|
|
case 370u: goto L_08B6DB50;
|
|
case 371u: goto L_08B6DB5C;
|
|
case 372u: goto L_08B6DB68;
|
|
case 373u: goto L_08B6DB74;
|
|
case 374u: goto L_08B6DB80;
|
|
case 375u: goto L_08B6DB8C;
|
|
case 376u: goto L_08B6DBAC;
|
|
case 377u: goto L_08B6DBBC;
|
|
case 378u: goto L_08B6DBC8;
|
|
case 379u: goto L_08B6DBD0;
|
|
case 380u: goto L_08B6DBD8;
|
|
case 381u: goto L_08B6DBF0;
|
|
case 382u: goto L_08B6DC0C;
|
|
case 383u: goto L_08B6DC24;
|
|
case 384u: goto L_08B6DC34;
|
|
case 385u: goto L_08B6DC40;
|
|
case 386u: goto L_08B6DC48;
|
|
case 387u: goto L_08B6DC5C;
|
|
case 388u: goto L_08B6DC68;
|
|
case 389u: goto L_08B6DC6C;
|
|
case 390u: goto L_08B6DC74;
|
|
case 391u: goto L_08B6DC7C;
|
|
case 392u: goto L_08B6DC90;
|
|
case 393u: goto L_08B6DCC0;
|
|
case 394u: goto L_08B6DCF0;
|
|
case 395u: goto L_08B6DD10;
|
|
case 396u: goto L_08B6DD28;
|
|
case 397u: goto L_08B6DD34;
|
|
case 398u: goto L_08B6DD64;
|
|
case 399u: goto L_08B6DD6C;
|
|
case 400u: goto L_08B6DD74;
|
|
case 401u: goto L_08B6DD94;
|
|
case 402u: goto L_08B6DD98;
|
|
case 403u: goto L_08B6DDA8;
|
|
case 404u: goto L_08B6DDBC;
|
|
case 405u: goto L_08B6DDCC;
|
|
case 406u: goto L_08B6DDD8;
|
|
case 407u: goto L_08B6DDE4;
|
|
case 408u: goto L_08B6DDFC;
|
|
case 409u: goto L_08B6DE1C;
|
|
case 410u: goto L_08B6DE34;
|
|
case 411u: goto L_08B6DE44;
|
|
case 412u: goto L_08B6DE4C;
|
|
case 413u: goto L_08B6DE5C;
|
|
case 414u: goto L_08B6DE70;
|
|
case 415u: goto L_08B6DE80;
|
|
case 416u: goto L_08B6DE8C;
|
|
case 417u: goto L_08B6DE98;
|
|
case 418u: goto L_08B6DEB0;
|
|
case 419u: goto L_08B6DED4;
|
|
case 420u: goto L_08B6DED8;
|
|
case 421u: goto L_08B6DEF4;
|
|
case 422u: goto L_08B6DF1C;
|
|
case 423u: goto L_08B6DF3C;
|
|
case 424u: goto L_08B6DF4C;
|
|
case 425u: goto L_08B6DF5C;
|
|
case 426u: goto L_08B6DF64;
|
|
case 427u: goto L_08B6DF70;
|
|
case 428u: goto L_08B6DF88;
|
|
case 429u: goto L_08B6DFC4;
|
|
case 430u: goto L_08B6DFE4;
|
|
case 431u: goto L_08B6DFF0;
|
|
case 432u: goto L_08B6DFF4;
|
|
case 433u: goto L_08B6DFFC;
|
|
case 434u: goto L_08B6E008;
|
|
case 435u: goto L_08B6E030;
|
|
case 436u: goto L_08B6E038;
|
|
case 437u: goto L_08B6E040;
|
|
case 438u: goto L_08B6E05C;
|
|
case 439u: goto L_08B6E070;
|
|
case 440u: goto L_08B6E098;
|
|
case 441u: goto L_08B6E0B4;
|
|
case 442u: goto L_08B6E0C8;
|
|
case 443u: goto L_08B6E0D8;
|
|
case 444u: goto L_08B6E0F8;
|
|
case 445u: goto L_08B6E134;
|
|
case 446u: goto L_08B6E140;
|
|
case 447u: goto L_08B6E168;
|
|
case 448u: goto L_08B6E184;
|
|
case 449u: goto L_08B6E18C;
|
|
case 450u: goto L_08B6E19C;
|
|
case 451u: goto L_08B6E1A8;
|
|
case 452u: goto L_08B6E1CC;
|
|
case 453u: goto L_08B6E1DC;
|
|
case 454u: goto L_08B6E1EC;
|
|
case 455u: goto L_08B6E214;
|
|
case 456u: goto L_08B6E21C;
|
|
case 457u: goto L_08B6E238;
|
|
case 458u: goto L_08B6E240;
|
|
case 459u: goto L_08B6E24C;
|
|
case 460u: goto L_08B6E260;
|
|
case 461u: goto L_08B6E27C;
|
|
case 462u: goto L_08B6E284;
|
|
case 463u: goto L_08B6E2A0;
|
|
case 464u: goto L_08B6E2A8;
|
|
case 465u: goto L_08B6E2B8;
|
|
case 466u: goto L_08B6E2C4;
|
|
case 467u: goto L_08B6E2D4;
|
|
case 468u: goto L_08B6E304;
|
|
case 469u: goto L_08B6E328;
|
|
case 470u: goto L_08B6E330;
|
|
case 471u: goto L_08B6E340;
|
|
case 472u: goto L_08B6E34C;
|
|
case 473u: goto L_08B6E35C;
|
|
case 474u: goto L_08B6E384;
|
|
case 475u: goto L_08B6E3AC;
|
|
case 476u: goto L_08B6E3C0;
|
|
case 477u: goto L_08B6E3DC;
|
|
case 478u: goto L_08B6E3E4;
|
|
case 479u: goto L_08B6E400;
|
|
case 480u: goto L_08B6E408;
|
|
case 481u: goto L_08B6E418;
|
|
case 482u: goto L_08B6E428;
|
|
case 483u: goto L_08B6E444;
|
|
case 484u: goto L_08B6E44C;
|
|
case 485u: goto L_08B6E454;
|
|
case 486u: goto L_08B6E464;
|
|
case 487u: goto L_08B6E48C;
|
|
case 488u: goto L_08B6E4A0;
|
|
case 489u: goto L_08B6E4BC;
|
|
case 490u: goto L_08B6E4C4;
|
|
case 491u: goto L_08B6E4E0;
|
|
case 492u: goto L_08B6E4E8;
|
|
case 493u: goto L_08B6E4F0;
|
|
case 494u: goto L_08B6E4FC;
|
|
case 495u: goto L_08B6E50C;
|
|
case 496u: goto L_08B6E518;
|
|
case 497u: goto L_08B6E538;
|
|
case 498u: goto L_08B6E564;
|
|
case 499u: goto L_08B6E590;
|
|
case 500u: goto L_08B6E594;
|
|
case 501u: goto L_08B6E5A4;
|
|
case 502u: goto L_08B6E5B8;
|
|
case 503u: goto L_08B6E5D8;
|
|
case 504u: goto L_08B6E5FC;
|
|
case 505u: goto L_08B6E608;
|
|
case 506u: goto L_08B6E614;
|
|
case 507u: goto L_08B6E628;
|
|
case 508u: goto L_08B6E648;
|
|
case 509u: goto L_08B6E64C;
|
|
case 510u: goto L_08B6E664;
|
|
case 511u: goto L_08B6E670;
|
|
case 512u: goto L_08B6E678;
|
|
case 513u: goto L_08B6E684;
|
|
case 514u: goto L_08B6E694;
|
|
case 515u: goto L_08B6E6B0;
|
|
case 516u: goto L_08B6E6BC;
|
|
case 517u: goto L_08B6E6C4;
|
|
case 518u: goto L_08B6E6C8;
|
|
case 519u: goto L_08B6E6DC;
|
|
case 520u: goto L_08B6E6FC;
|
|
case 521u: goto L_08B6E708;
|
|
case 522u: goto L_08B6E71C;
|
|
case 523u: goto L_08B6E734;
|
|
case 524u: goto L_08B6E74C;
|
|
case 525u: goto L_08B6E774;
|
|
case 526u: goto L_08B6E798;
|
|
case 527u: goto L_08B6E7A8;
|
|
case 528u: goto L_08B6E7B0;
|
|
case 529u: goto L_08B6E7BC;
|
|
case 530u: goto L_08B6E7C4;
|
|
case 531u: goto L_08B6E7C8;
|
|
case 532u: goto L_08B6E7E8;
|
|
case 533u: goto L_08B6E7F8;
|
|
case 534u: goto L_08B6E808;
|
|
case 535u: goto L_08B6E814;
|
|
case 536u: goto L_08B6E81C;
|
|
case 537u: goto L_08B6E830;
|
|
case 538u: goto L_08B6E848;
|
|
case 539u: goto L_08B6E85C;
|
|
case 540u: goto L_08B6E870;
|
|
case 541u: goto L_08B6E87C;
|
|
case 542u: goto L_08B6E898;
|
|
case 543u: goto L_08B6E8AC;
|
|
case 544u: goto L_08B6E8E8;
|
|
case 545u: goto L_08B6E8F8;
|
|
case 546u: goto L_08B6E908;
|
|
case 547u: goto L_08B6E914;
|
|
case 548u: goto L_08B6E938;
|
|
case 549u: goto L_08B6E974;
|
|
case 550u: goto L_08B6E99C;
|
|
case 551u: goto L_08B6E9C4;
|
|
case 552u: goto L_08B6E9F0;
|
|
case 553u: goto L_08B6EA00;
|
|
case 554u: goto L_08B6EA0C;
|
|
case 555u: goto L_08B6EA1C;
|
|
case 556u: goto L_08B6EA24;
|
|
case 557u: goto L_08B6EA38;
|
|
case 558u: goto L_08B6EA48;
|
|
case 559u: goto L_08B6EA58;
|
|
case 560u: goto L_08B6EA5C;
|
|
case 561u: goto L_08B6EA68;
|
|
case 562u: goto L_08B6EA70;
|
|
case 563u: goto L_08B6EA88;
|
|
case 564u: goto L_08B6EA98;
|
|
case 565u: goto L_08B6EA9C;
|
|
case 566u: goto L_08B6EAC8;
|
|
case 567u: goto L_08B6EAD8;
|
|
case 568u: goto L_08B6EAE4;
|
|
case 569u: goto L_08B6EAF4;
|
|
case 570u: goto L_08B6EAFC;
|
|
case 571u: goto L_08B6EB08;
|
|
case 572u: goto L_08B6EB0C;
|
|
case 573u: goto L_08B6EB18;
|
|
case 574u: goto L_08B6EB20;
|
|
case 575u: goto L_08B6EB50;
|
|
case 576u: goto L_08B6EB60;
|
|
case 577u: goto L_08B6EB6C;
|
|
case 578u: goto L_08B6EB74;
|
|
case 579u: goto L_08B6EB80;
|
|
case 580u: goto L_08B6EB8C;
|
|
case 581u: goto L_08B6EB94;
|
|
case 582u: goto L_08B6EB98;
|
|
case 583u: goto L_08B6EBA4;
|
|
case 584u: goto L_08B6EBB0;
|
|
case 585u: goto L_08B6EBC0;
|
|
case 586u: goto L_08B6EBC8;
|
|
case 587u: goto L_08B6EBD0;
|
|
case 588u: goto L_08B6EBE4;
|
|
case 589u: goto L_08B6EBE8;
|
|
case 590u: goto L_08B6EBF0;
|
|
case 591u: goto L_08B6EBFC;
|
|
case 592u: goto L_08B6EC10;
|
|
case 593u: goto L_08B6EC18;
|
|
case 594u: goto L_08B6EC20;
|
|
case 595u: goto L_08B6EC28;
|
|
case 596u: goto L_08B6EC3C;
|
|
case 597u: goto L_08B6EC68;
|
|
case 598u: goto L_08B6EC7C;
|
|
case 599u: goto L_08B6EC80;
|
|
case 600u: goto L_08B6EC8C;
|
|
case 601u: goto L_08B6EC94;
|
|
case 602u: goto L_08B6ECA0;
|
|
case 603u: goto L_08B6ECA8;
|
|
case 604u: goto L_08B6ECB4;
|
|
case 605u: goto L_08B6ECBC;
|
|
case 606u: goto L_08B6ECC8;
|
|
case 607u: goto L_08B6ECD0;
|
|
case 608u: goto L_08B6ECD8;
|
|
case 609u: goto L_08B6ECE8;
|
|
case 610u: goto L_08B6ECF0;
|
|
case 611u: goto L_08B6ECF8;
|
|
case 612u: goto L_08B6ECFC;
|
|
case 613u: goto L_08B6ED04;
|
|
case 614u: goto L_08B6ED0C;
|
|
case 615u: goto L_08B6ED1C;
|
|
case 616u: goto L_08B6ED24;
|
|
case 617u: goto L_08B6ED34;
|
|
case 618u: goto L_08B6ED3C;
|
|
case 619u: goto L_08B6ED40;
|
|
case 620u: goto L_08B6ED4C;
|
|
case 621u: goto L_08B6ED54;
|
|
case 622u: goto L_08B6ED5C;
|
|
case 623u: goto L_08B6ED70;
|
|
case 624u: goto L_08B6ED8C;
|
|
case 625u: goto L_08B6ED94;
|
|
case 626u: goto L_08B6EDB0;
|
|
case 627u: goto L_08B6EDC0;
|
|
case 628u: goto L_08B6EDC4;
|
|
case 629u: goto L_08B6EDCC;
|
|
case 630u: goto L_08B6EDD4;
|
|
case 631u: goto L_08B6EDE8;
|
|
case 632u: goto L_08B6EDEC;
|
|
case 633u: goto L_08B6EDF8;
|
|
case 634u: goto L_08B6EE00;
|
|
case 635u: goto L_08B6EE0C;
|
|
case 636u: goto L_08B6EE14;
|
|
case 637u: goto L_08B6EE20;
|
|
case 638u: goto L_08B6EE28;
|
|
case 639u: goto L_08B6EE34;
|
|
case 640u: goto L_08B6EE3C;
|
|
case 641u: goto L_08B6EE44;
|
|
case 642u: goto L_08B6EE54;
|
|
case 643u: goto L_08B6EE5C;
|
|
case 644u: goto L_08B6EE64;
|
|
case 645u: goto L_08B6EE68;
|
|
case 646u: goto L_08B6EE70;
|
|
case 647u: goto L_08B6EE78;
|
|
case 648u: goto L_08B6EE88;
|
|
case 649u: goto L_08B6EE90;
|
|
case 650u: goto L_08B6EEA0;
|
|
case 651u: goto L_08B6EEA8;
|
|
case 652u: goto L_08B6EEAC;
|
|
case 653u: goto L_08B6EEB8;
|
|
case 654u: goto L_08B6EEC0;
|
|
case 655u: goto L_08B6EEC8;
|
|
case 656u: goto L_08B6EED4;
|
|
case 657u: goto L_08B6EEE4;
|
|
case 658u: goto L_08B6EEFC;
|
|
case 659u: goto L_08B6EF14;
|
|
case 660u: goto L_08B6EF1C;
|
|
case 661u: goto L_08B6EF20;
|
|
case 662u: goto L_08B6EF28;
|
|
case 663u: goto L_08B6EF44;
|
|
case 664u: goto L_08B6EF50;
|
|
case 665u: goto L_08B6EF60;
|
|
case 666u: goto L_08B6EF6C;
|
|
case 667u: goto L_08B6EF74;
|
|
case 668u: goto L_08B6EF78;
|
|
case 669u: goto L_08B6EF80;
|
|
case 670u: goto L_08B6EF88;
|
|
case 671u: goto L_08B6EF9C;
|
|
case 672u: goto L_08B6EFB8;
|
|
case 673u: goto L_08B6EFC4;
|
|
case 674u: goto L_08B6EFD8;
|
|
case 675u: goto L_08B6EFE4;
|
|
case 676u: goto L_08B6EFEC;
|
|
case 677u: goto L_08B6EFF0;
|
|
case 678u: goto L_08B6EFF8;
|
|
case 679u: goto L_08B6F000;
|
|
case 680u: goto L_08B6F014;
|
|
case 681u: goto L_08B6F048;
|
|
case 682u: goto L_08B6F054;
|
|
case 683u: goto L_08B6F058;
|
|
case 684u: goto L_08B6F068;
|
|
case 685u: goto L_08B6F080;
|
|
case 686u: goto L_08B6F098;
|
|
case 687u: goto L_08B6F0AC;
|
|
case 688u: goto L_08B6F0BC;
|
|
case 689u: goto L_08B6F0C0;
|
|
case 690u: goto L_08B6F0FC;
|
|
case 691u: goto L_08B6F160;
|
|
case 692u: goto L_08B6F178;
|
|
case 693u: goto L_08B6F18C;
|
|
case 694u: goto L_08B6F1A0;
|
|
case 695u: goto L_08B6F1B0;
|
|
case 696u: goto L_08B6F1BC;
|
|
case 697u: goto L_08B6F1D0;
|
|
case 698u: goto L_08B6F1DC;
|
|
case 699u: goto L_08B6F200;
|
|
case 700u: goto L_08B6F20C;
|
|
case 701u: goto L_08B6F214;
|
|
case 702u: goto L_08B6F224;
|
|
case 703u: goto L_08B6F238;
|
|
case 704u: goto L_08B6F280;
|
|
case 705u: goto L_08B6F29C;
|
|
case 706u: goto L_08B6F2A4;
|
|
case 707u: goto L_08B6F2C8;
|
|
case 708u: goto L_08B6F2CC;
|
|
case 709u: goto L_08B6F400;
|
|
case 710u: goto L_08B6F484;
|
|
case 711u: goto L_08B6F4B0;
|
|
case 712u: goto L_08B6F5C0;
|
|
case 713u: goto L_08B6F5C4;
|
|
case 714u: goto L_08B6F5D8;
|
|
case 715u: goto L_08B6F5FC;
|
|
case 716u: goto L_08B6F618;
|
|
case 717u: goto L_08B6F628;
|
|
case 718u: goto L_08B6F64C;
|
|
case 719u: goto L_08B6F6C8;
|
|
case 720u: goto L_08B6F6F4;
|
|
case 721u: goto L_08B6F804;
|
|
case 722u: goto L_08B6F808;
|
|
case 723u: goto L_08B6F81C;
|
|
case 724u: goto L_08B6F840;
|
|
case 725u: goto L_08B6F85C;
|
|
case 726u: goto L_08B6F874;
|
|
case 727u: goto L_08B6F898;
|
|
case 728u: goto L_08B6F8C4;
|
|
case 729u: goto L_08B6F8E8;
|
|
case 730u: goto L_08B6F90C;
|
|
case 731u: goto L_08B6F938;
|
|
case 732u: goto L_08B6F948;
|
|
case 733u: goto L_08B6F94C;
|
|
case 734u: goto L_08B6F954;
|
|
case 735u: goto L_08B6F960;
|
|
case 736u: goto L_08B6F968;
|
|
case 737u: goto L_08B6F97C;
|
|
case 738u: goto L_08B6F980;
|
|
case 739u: goto L_08B6F994;
|
|
case 740u: goto L_08B6F9A8;
|
|
case 741u: goto L_08B6F9AC;
|
|
case 742u: goto L_08B6F9B4;
|
|
case 743u: goto L_08B6F9C0;
|
|
case 744u: goto L_08B6F9C4;
|
|
case 745u: goto L_08B6F9CC;
|
|
case 746u: goto L_08B6F9D4;
|
|
case 747u: goto L_08B6F9DC;
|
|
case 748u: goto L_08B6F9E4;
|
|
case 749u: goto L_08B6F9EC;
|
|
case 750u: goto L_08B6F9F0;
|
|
case 751u: goto L_08B6F9F8;
|
|
case 752u: goto L_08B6F9FC;
|
|
case 753u: goto L_08B6FA30;
|
|
case 754u: goto L_08B6FA78;
|
|
case 755u: goto L_08B6FA88;
|
|
case 756u: goto L_08B6FA8C;
|
|
case 757u: goto L_08B6FA9C;
|
|
case 758u: goto L_08B6FAAC;
|
|
case 759u: goto L_08B6FAB8;
|
|
case 760u: goto L_08B6FAC0;
|
|
case 761u: goto L_08B6FAD4;
|
|
case 762u: goto L_08B6FAE8;
|
|
case 763u: goto L_08B6FB14;
|
|
case 764u: goto L_08B6FB54;
|
|
case 765u: goto L_08B6FB64;
|
|
case 766u: goto L_08B6FB68;
|
|
case 767u: goto L_08B6FB78;
|
|
case 768u: goto L_08B6FB88;
|
|
case 769u: goto L_08B6FB94;
|
|
case 770u: goto L_08B6FB9C;
|
|
case 771u: goto L_08B6FBCC;
|
|
case 772u: goto L_08B6FBDC;
|
|
case 773u: goto L_08B6FBE8;
|
|
case 774u: goto L_08B6FC04;
|
|
case 775u: goto L_08B6FC0C;
|
|
case 776u: goto L_08B6FC10;
|
|
case 777u: goto L_08B6FC40;
|
|
case 778u: goto L_08B6FC94;
|
|
case 779u: goto L_08B6FCFC;
|
|
case 780u: goto L_08B6FDE0;
|
|
case 781u: goto L_08B6FDF0;
|
|
case 782u: goto L_08B6FDF8;
|
|
case 783u: goto L_08B6FE1C;
|
|
case 784u: goto L_08B6FE24;
|
|
case 785u: goto L_08B6FE34;
|
|
case 786u: goto L_08B6FE4C;
|
|
case 787u: goto L_08B6FE74;
|
|
case 788u: goto L_08B6FE94;
|
|
case 789u: goto L_08B6FEBC;
|
|
case 790u: goto L_08B6FEE0;
|
|
case 791u: goto L_08B6FEFC;
|
|
case 792u: goto L_08B6FF7C;
|
|
case 793u: goto L_08B6FF9C;
|
|
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_08B6C000:
|
|
aot_gpr_4 = (ctx.gpr[23] | 0u);
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
aot_gpr_6 = (0u | 0u);
|
|
aot_gpr_7 = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[31] = (0x08B6C018u);
|
|
ctx.gpr[8] = (ctx.gpr[20] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 763u, 0x08B6BDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6C018u) goto L_08B6C018;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6C018:
|
|
ctx.gpr[17] = (ctx.gpr[23] | 0u);
|
|
aot_gpr_4 = (ctx.gpr[23] - aot_gpr_16);
|
|
{ const std::int32_t dividend = static_cast<std::int32_t>(aot_gpr_4); const std::int32_t divisor = static_cast<std::int32_t>(ctx.gpr[19]); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast<std::uint32_t>(dividend); } else if (dividend == static_cast<std::int32_t>(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast<std::uint32_t>(dividend / divisor); ctx.hi = static_cast<std::uint32_t>(dividend % divisor); } }
|
|
aot_gpr_5 = (ctx.lo);
|
|
aot_gpr_5 = (static_cast<std::int32_t>(aot_gpr_5) < 17 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
if (branch_taken) {
|
|
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 765u, 0x08B6BE58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
goto L_08B6C034;
|
|
}
|
|
L_08B6C034:
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(16), static_cast<std::uint8_t>(ctx.gpr[22]));
|
|
goto L_08B6C038;
|
|
L_08B6C038:
|
|
{ std::uint32_t aot_run_words[9]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[19] = aot_run_words[3];
|
|
ctx.gpr[20] = aot_run_words[4];
|
|
ctx.gpr[21] = aot_run_words[5];
|
|
ctx.gpr[22] = aot_run_words[6];
|
|
ctx.gpr[23] = aot_run_words[7];
|
|
ctx.gpr[31] = aot_run_words[8];
|
|
}
|
|
jump_target = ctx.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_08B6C064:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(32), aot_gpr_7);
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(32))))));
|
|
ctx.gpr[31] = (0x08B6C07Cu);
|
|
aot_gpr_7 = (0u | 0u);
|
|
goto L_08B6C088;
|
|
L_08B6C07C:
|
|
ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.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_08B6C088:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-80));
|
|
{ const std::uint32_t aot_run_words[9]{aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(36), aot_run_words); }
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(80), ctx.gpr[8]);
|
|
ctx.gpr[20] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(80))))));
|
|
ctx.gpr[22] = (0u | 12u);
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
ctx.gpr[17] = (aot_gpr_5 | 0u);
|
|
ctx.gpr[18] = (aot_gpr_6 | 0u);
|
|
aot_gpr_6 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(80))))));
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
ctx.gpr[31] = (0x08B6C0D8u);
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
goto L_08B6C204;
|
|
L_08B6C0D8:
|
|
ctx.gpr[19] = (ctx.gpr[17] | 0u);
|
|
aot_gpr_4 = (ctx.gpr[19] < ctx.gpr[18] ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
ctx.gpr[21] = (ctx.gpr[17] - aot_gpr_16);
|
|
if (branch_taken) {
|
|
goto L_08B6C190;
|
|
}
|
|
goto L_08B6C0E8;
|
|
}
|
|
L_08B6C0E8:
|
|
ctx.gpr[23] = (aot_gpr_29 + static_cast<std::uint32_t>(20));
|
|
goto L_08B6C0EC;
|
|
L_08B6C0EC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(8)));
|
|
if (aot_gpr_4 == aot_gpr_5) {
|
|
aot_gpr_4 = (0u | 0u);
|
|
goto L_08B6C104;
|
|
}
|
|
goto L_08B6C0FC;
|
|
L_08B6C0FC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < static_cast<std::int32_t>(aot_gpr_5) ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6C120;
|
|
}
|
|
goto L_08B6C104;
|
|
}
|
|
L_08B6C104:
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
|
|
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_13)) ? 0x00800000u : 0u);
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
aot_gpr_4 = (0u | 1u);
|
|
goto L_08B6C11C;
|
|
}
|
|
goto L_08B6C11C;
|
|
L_08B6C11C:
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
goto L_08B6C120;
|
|
L_08B6C120:
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6C180;
|
|
}
|
|
goto L_08B6C128;
|
|
}
|
|
L_08B6C128:
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(16), static_cast<std::uint8_t>(ctx.gpr[20]));
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(8)));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_4, aot_gpr_5, aot_gpr_6};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_run_words); }
|
|
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (std::bit_cast<std::uint32_t>(aot_fpr_13));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(8)));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_4, aot_gpr_5, aot_gpr_6};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[19] + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
{ const std::int32_t dividend = static_cast<std::int32_t>(ctx.gpr[21]); const std::int32_t divisor = static_cast<std::int32_t>(ctx.gpr[22]); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast<std::uint32_t>(dividend); } else if (dividend == static_cast<std::int32_t>(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast<std::uint32_t>(dividend / divisor); ctx.hi = static_cast<std::uint32_t>(dividend % divisor); } }
|
|
aot_gpr_6 = (ctx.lo);
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(16))))));
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (0u | 0u);
|
|
ctx.gpr[31] = (0x08B6C180u);
|
|
aot_gpr_7 = (ctx.gpr[23] | 0u);
|
|
goto L_08B6C2C8;
|
|
L_08B6C180:
|
|
ctx.gpr[19] = (ctx.gpr[19] + static_cast<std::uint32_t>(12));
|
|
aot_gpr_4 = (ctx.gpr[19] < ctx.gpr[18] ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6C0EC;
|
|
}
|
|
goto L_08B6C190;
|
|
}
|
|
L_08B6C190:
|
|
aot_gpr_4 = (ctx.gpr[17] - aot_gpr_16);
|
|
{ const std::int32_t dividend = static_cast<std::int32_t>(aot_gpr_4); const std::int32_t divisor = static_cast<std::int32_t>(ctx.gpr[22]); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast<std::uint32_t>(dividend); } else if (dividend == static_cast<std::int32_t>(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast<std::uint32_t>(dividend / divisor); ctx.hi = static_cast<std::uint32_t>(dividend % divisor); } }
|
|
aot_gpr_4 = (ctx.lo);
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 2 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(32), static_cast<std::uint8_t>(ctx.gpr[20]));
|
|
if (branch_taken) {
|
|
goto L_08B6C1D8;
|
|
}
|
|
goto L_08B6C1A8;
|
|
}
|
|
L_08B6C1A8:
|
|
ctx.gpr[18] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(32))))));
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
goto L_08B6C1B0;
|
|
L_08B6C1B0:
|
|
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(-12));
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
ctx.gpr[31] = (0x08B6C1C0u);
|
|
aot_gpr_6 = (ctx.gpr[18] | 0u);
|
|
goto L_08B6C504;
|
|
L_08B6C1C0:
|
|
aot_gpr_4 = (ctx.gpr[17] - aot_gpr_16);
|
|
{ const std::int32_t dividend = static_cast<std::int32_t>(aot_gpr_4); const std::int32_t divisor = static_cast<std::int32_t>(ctx.gpr[22]); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast<std::uint32_t>(dividend); } else if (dividend == static_cast<std::int32_t>(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast<std::uint32_t>(dividend / divisor); ctx.hi = static_cast<std::uint32_t>(dividend % divisor); } }
|
|
aot_gpr_4 = (ctx.lo);
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 2 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6C1B0;
|
|
}
|
|
goto L_08B6C1D8;
|
|
}
|
|
L_08B6C1D8:
|
|
{ std::uint32_t aot_run_words[9]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(36), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[19] = aot_run_words[3];
|
|
ctx.gpr[20] = aot_run_words[4];
|
|
ctx.gpr[21] = aot_run_words[5];
|
|
ctx.gpr[22] = aot_run_words[6];
|
|
ctx.gpr[23] = aot_run_words[7];
|
|
ctx.gpr[31] = aot_run_words[8];
|
|
}
|
|
jump_target = ctx.gpr[31];
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(80));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B6C204:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-48));
|
|
{ const std::uint32_t aot_run_words[6]{aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(48), aot_gpr_6);
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(48))))));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(16), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_4 = (aot_gpr_5 - aot_gpr_16);
|
|
ctx.gpr[20] = (0u | 12u);
|
|
{ const std::int32_t dividend = static_cast<std::int32_t>(aot_gpr_4); const std::int32_t divisor = static_cast<std::int32_t>(ctx.gpr[20]); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast<std::uint32_t>(dividend); } else if (dividend == static_cast<std::int32_t>(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast<std::uint32_t>(dividend / divisor); ctx.hi = static_cast<std::uint32_t>(dividend % divisor); } }
|
|
aot_gpr_5 = (ctx.lo);
|
|
aot_gpr_5 = (static_cast<std::int32_t>(aot_gpr_5) < 2 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6C2A8;
|
|
}
|
|
goto L_08B6C24C;
|
|
}
|
|
L_08B6C24C:
|
|
{ const std::int32_t dividend = static_cast<std::int32_t>(aot_gpr_4); const std::int32_t divisor = static_cast<std::int32_t>(ctx.gpr[20]); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast<std::uint32_t>(dividend); } else if (dividend == static_cast<std::int32_t>(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast<std::uint32_t>(dividend / divisor); ctx.hi = static_cast<std::uint32_t>(dividend % divisor); } }
|
|
ctx.gpr[20] = (ctx.lo);
|
|
aot_gpr_4 = (ctx.gpr[20] + static_cast<std::uint32_t>(-2));
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_4) >> 1u));
|
|
aot_gpr_4 = (aot_gpr_4 >> 31u);
|
|
aot_gpr_4 = (ctx.gpr[20] + aot_gpr_4);
|
|
ctx.gpr[19] = (aot_gpr_4 + static_cast<std::uint32_t>(-2));
|
|
ctx.gpr[19] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[19]) >> 1u));
|
|
ctx.gpr[17] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(16))))));
|
|
aot_gpr_4 = (ctx.gpr[19] + ctx.gpr[19]);
|
|
aot_gpr_4 = (ctx.gpr[19] + aot_gpr_4);
|
|
ctx.gpr[18] = (aot_gpr_4 << 2u);
|
|
ctx.gpr[18] = (aot_gpr_16 + ctx.gpr[18]);
|
|
goto L_08B6C280;
|
|
L_08B6C280:
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
aot_gpr_5 = (ctx.gpr[19] | 0u);
|
|
aot_gpr_6 = (ctx.gpr[20] | 0u);
|
|
aot_gpr_7 = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[31] = (0x08B6C298u);
|
|
ctx.gpr[8] = (ctx.gpr[17] | 0u);
|
|
goto L_08B6C2C8;
|
|
L_08B6C298:
|
|
{ const bool branch_taken = ctx.gpr[19] == 0u;
|
|
ctx.gpr[19] = (ctx.gpr[19] + static_cast<std::uint32_t>(-1));
|
|
if (branch_taken) {
|
|
goto L_08B6C2A8;
|
|
}
|
|
goto L_08B6C2A0;
|
|
}
|
|
L_08B6C2A0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[18] = (ctx.gpr[18] + static_cast<std::uint32_t>(-12));
|
|
if (branch_taken) {
|
|
goto L_08B6C280;
|
|
}
|
|
goto L_08B6C2A8;
|
|
}
|
|
L_08B6C2A8:
|
|
{ std::uint32_t aot_run_words[6]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[19] = aot_run_words[3];
|
|
ctx.gpr[20] = aot_run_words[4];
|
|
ctx.gpr[31] = aot_run_words[5];
|
|
}
|
|
jump_target = ctx.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_08B6C2C8:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-48));
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_7 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[9] = (std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast<std::uint32_t>(8)));
|
|
{ const std::uint32_t aot_run_words[3]{ctx.gpr[9], ctx.gpr[10], aot_gpr_7};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_run_words); }
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(48), ctx.gpr[8]);
|
|
aot_gpr_7 = (aot_gpr_5 | 0u);
|
|
ctx.gpr[8] = (aot_gpr_5 + aot_gpr_5);
|
|
ctx.gpr[8] = (ctx.gpr[8] + static_cast<std::uint32_t>(2));
|
|
ctx.gpr[9] = (static_cast<std::int32_t>(ctx.gpr[8]) < static_cast<std::int32_t>(aot_gpr_6) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[9] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6C3B0;
|
|
}
|
|
goto L_08B6C304;
|
|
}
|
|
L_08B6C304:
|
|
ctx.gpr[9] = (ctx.gpr[8] + ctx.gpr[8]);
|
|
ctx.gpr[9] = (ctx.gpr[8] + ctx.gpr[9]);
|
|
ctx.gpr[9] = (ctx.gpr[9] << 2u);
|
|
ctx.gpr[2] = (aot_gpr_4 + ctx.gpr[9]);
|
|
ctx.gpr[10] = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[11] = (aot_gpr_4 + ctx.gpr[9]);
|
|
ctx.gpr[11] = (ctx.gpr[11] + static_cast<std::uint32_t>(-12));
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load8(ctx.gpr[11] + static_cast<std::uint32_t>(8)));
|
|
if (ctx.gpr[10] == ctx.gpr[9]) {
|
|
ctx.gpr[9] = (0u | 0u);
|
|
goto L_08B6C334;
|
|
}
|
|
goto L_08B6C32C;
|
|
L_08B6C32C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[10] = (static_cast<std::int32_t>(ctx.gpr[10]) < static_cast<std::int32_t>(ctx.gpr[9]) ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6C350;
|
|
}
|
|
goto L_08B6C334;
|
|
}
|
|
L_08B6C334:
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(0)));
|
|
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[11] + static_cast<std::uint32_t>(0)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_13)) ? 0x00800000u : 0u);
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.gpr[9] = (0u | 1u);
|
|
goto L_08B6C34C;
|
|
}
|
|
goto L_08B6C34C;
|
|
L_08B6C34C:
|
|
ctx.gpr[10] = (ctx.gpr[9] & 255u);
|
|
goto L_08B6C350;
|
|
L_08B6C350:
|
|
{ const bool branch_taken = ctx.gpr[10] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6C35C;
|
|
}
|
|
goto L_08B6C358;
|
|
}
|
|
L_08B6C358:
|
|
ctx.gpr[8] = (ctx.gpr[8] + static_cast<std::uint32_t>(-1));
|
|
goto L_08B6C35C;
|
|
L_08B6C35C:
|
|
ctx.gpr[9] = (aot_gpr_5 + aot_gpr_5);
|
|
aot_gpr_5 = (aot_gpr_5 + ctx.gpr[9]);
|
|
aot_gpr_5 = (aot_gpr_5 << 2u);
|
|
aot_gpr_5 = (aot_gpr_4 + aot_gpr_5);
|
|
ctx.gpr[9] = (ctx.gpr[8] + ctx.gpr[8]);
|
|
ctx.gpr[9] = (ctx.gpr[8] + ctx.gpr[9]);
|
|
ctx.gpr[9] = (ctx.gpr[9] << 2u);
|
|
ctx.gpr[9] = (aot_gpr_4 + ctx.gpr[9]);
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[9] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[10] = (std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
ctx.gpr[11] = (aot_mem.aot_direct_load32(ctx.gpr[9] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(ctx.gpr[9] + static_cast<std::uint32_t>(8)));
|
|
{ const std::uint32_t aot_run_words[3]{ctx.gpr[10], ctx.gpr[11], ctx.gpr[9]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_5 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (ctx.gpr[8] | 0u);
|
|
ctx.gpr[8] = (ctx.gpr[8] + ctx.gpr[8]);
|
|
ctx.gpr[8] = (ctx.gpr[8] + static_cast<std::uint32_t>(2));
|
|
ctx.gpr[9] = (static_cast<std::int32_t>(ctx.gpr[8]) < static_cast<std::int32_t>(aot_gpr_6) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[9] != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6C304;
|
|
}
|
|
goto L_08B6C3B0;
|
|
}
|
|
L_08B6C3B0:
|
|
{ const bool branch_taken = aot_gpr_6 != ctx.gpr[8];
|
|
if (branch_taken) {
|
|
goto L_08B6C3FC;
|
|
}
|
|
goto L_08B6C3B8;
|
|
}
|
|
L_08B6C3B8:
|
|
aot_gpr_6 = (aot_gpr_5 + aot_gpr_5);
|
|
aot_gpr_5 = (aot_gpr_5 + aot_gpr_6);
|
|
aot_gpr_5 = (aot_gpr_5 << 2u);
|
|
aot_gpr_5 = (aot_gpr_4 + aot_gpr_5);
|
|
aot_gpr_6 = (ctx.gpr[8] + ctx.gpr[8]);
|
|
aot_gpr_6 = (ctx.gpr[8] + aot_gpr_6);
|
|
aot_gpr_6 = (aot_gpr_6 << 2u);
|
|
aot_gpr_6 = (aot_gpr_4 + aot_gpr_6);
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(-12));
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[9] = (std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(8)));
|
|
{ const std::uint32_t aot_run_words[3]{ctx.gpr[9], ctx.gpr[10], aot_gpr_6};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_5 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (ctx.gpr[8] + static_cast<std::uint32_t>(-1));
|
|
goto L_08B6C3FC;
|
|
L_08B6C3FC:
|
|
aot_gpr_6 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(48))))));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(24), static_cast<std::uint8_t>(ctx.gpr[8]));
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(12)));
|
|
ctx.gpr[8] = (std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(20)));
|
|
{ const std::uint32_t aot_run_words[3]{ctx.gpr[8], ctx.gpr[10], ctx.gpr[9]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(28), aot_run_words); }
|
|
aot_gpr_6 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_6) >> 1u));
|
|
aot_gpr_6 = (aot_gpr_6 >> 31u);
|
|
aot_gpr_6 = (aot_gpr_5 + aot_gpr_6);
|
|
ctx.gpr[8] = (aot_gpr_6 + static_cast<std::uint32_t>(-1));
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[8]) >> 1u));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(36)));
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(28)));
|
|
ctx.gpr[11] = (static_cast<std::int32_t>(aot_gpr_7) < static_cast<std::int32_t>(aot_gpr_5) ? 1u : 0u);
|
|
ctx.gpr[2] = (aot_gpr_5 + aot_gpr_5);
|
|
aot_gpr_5 = (aot_gpr_5 + ctx.gpr[2]);
|
|
aot_gpr_5 = (aot_gpr_5 << 2u);
|
|
aot_gpr_5 = (aot_gpr_4 + aot_gpr_5);
|
|
goto L_08B6C454;
|
|
L_08B6C454:
|
|
{ const bool branch_taken = ctx.gpr[11] == 0u;
|
|
ctx.gpr[11] = (ctx.gpr[8] + ctx.gpr[8]);
|
|
if (branch_taken) {
|
|
goto L_08B6C4EC;
|
|
}
|
|
goto L_08B6C45C;
|
|
}
|
|
L_08B6C45C:
|
|
ctx.gpr[11] = (ctx.gpr[8] + ctx.gpr[11]);
|
|
ctx.gpr[11] = (ctx.gpr[11] << 2u);
|
|
ctx.gpr[11] = (aot_gpr_4 + ctx.gpr[11]);
|
|
ctx.gpr[2] = (aot_mem.aot_direct_load8(ctx.gpr[11] + static_cast<std::uint32_t>(8)));
|
|
if (ctx.gpr[2] == aot_gpr_6) {
|
|
ctx.gpr[2] = (0u | 0u);
|
|
goto L_08B6C47C;
|
|
}
|
|
goto L_08B6C474;
|
|
L_08B6C474:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (static_cast<std::int32_t>(ctx.gpr[2]) < static_cast<std::int32_t>(aot_gpr_6) ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6C494;
|
|
}
|
|
goto L_08B6C47C;
|
|
}
|
|
L_08B6C47C:
|
|
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[11] + static_cast<std::uint32_t>(0)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 <= aot_fpr_12)) ? 0x00800000u : 0u);
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.gpr[2] = (0u | 1u);
|
|
goto L_08B6C490;
|
|
}
|
|
goto L_08B6C490;
|
|
L_08B6C490:
|
|
ctx.gpr[2] = (ctx.gpr[2] & 255u);
|
|
goto L_08B6C494;
|
|
L_08B6C494:
|
|
if (ctx.gpr[2] == 0u) {
|
|
aot_gpr_4 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
goto L_08B6C4F0;
|
|
}
|
|
goto L_08B6C49C;
|
|
L_08B6C49C:
|
|
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[11] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[2] = (std::bit_cast<std::uint32_t>(aot_fpr_13));
|
|
ctx.gpr[3] = (aot_mem.aot_direct_load32(ctx.gpr[11] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[11] = (aot_mem.aot_direct_load32(ctx.gpr[11] + static_cast<std::uint32_t>(8)));
|
|
{ const std::uint32_t aot_run_words[3]{ctx.gpr[2], ctx.gpr[3], ctx.gpr[11]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_5 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (ctx.gpr[8] | 0u);
|
|
ctx.gpr[11] = (static_cast<std::int32_t>(aot_gpr_7) < static_cast<std::int32_t>(aot_gpr_5) ? 1u : 0u);
|
|
ctx.gpr[2] = (ctx.gpr[8] + static_cast<std::uint32_t>(-1));
|
|
ctx.gpr[2] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[2]) >> 1u));
|
|
ctx.gpr[2] = (ctx.gpr[2] >> 31u);
|
|
ctx.gpr[8] = (ctx.gpr[8] + ctx.gpr[2]);
|
|
ctx.gpr[8] = (ctx.gpr[8] + static_cast<std::uint32_t>(-1));
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[8]) >> 1u));
|
|
ctx.gpr[2] = (aot_gpr_5 + aot_gpr_5);
|
|
aot_gpr_5 = (aot_gpr_5 + ctx.gpr[2]);
|
|
aot_gpr_5 = (aot_gpr_5 << 2u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_5 = (aot_gpr_4 + aot_gpr_5);
|
|
if (branch_taken) {
|
|
goto L_08B6C454;
|
|
}
|
|
goto L_08B6C4EC;
|
|
}
|
|
L_08B6C4EC:
|
|
aot_gpr_4 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
goto L_08B6C4F0;
|
|
L_08B6C4F0:
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_4, ctx.gpr[10], ctx.gpr[9]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_5 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
jump_target = ctx.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_08B6C504:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-48));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(32), ctx.gpr[31]);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(48), aot_gpr_6);
|
|
aot_gpr_6 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(48))))));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(16), static_cast<std::uint8_t>(aot_gpr_6));
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-12));
|
|
aot_gpr_6 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(16))))));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(17), static_cast<std::uint8_t>(aot_gpr_6));
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_6 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(8)));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_6, aot_gpr_7, ctx.gpr[8]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_run_words); }
|
|
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_6 = (std::bit_cast<std::uint32_t>(aot_fpr_13));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_6, aot_gpr_7, ctx.gpr[8]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_5 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (aot_gpr_5 - aot_gpr_4);
|
|
aot_gpr_6 = (0u | 12u);
|
|
{ const std::int32_t dividend = static_cast<std::int32_t>(aot_gpr_5); const std::int32_t divisor = static_cast<std::int32_t>(aot_gpr_6); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast<std::uint32_t>(dividend); } else if (dividend == static_cast<std::int32_t>(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast<std::uint32_t>(dividend / divisor); ctx.hi = static_cast<std::uint32_t>(dividend % divisor); } }
|
|
aot_gpr_6 = (ctx.lo);
|
|
aot_gpr_7 = (aot_gpr_29 + static_cast<std::uint32_t>(20));
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(17))))));
|
|
ctx.gpr[31] = (0x08B6C57Cu);
|
|
aot_gpr_5 = (0u | 0u);
|
|
goto L_08B6C2C8;
|
|
L_08B6C57C:
|
|
ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(32)));
|
|
jump_target = ctx.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_08B6C588:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-48));
|
|
ctx.gpr[8] = (aot_gpr_5 | 0u);
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(8)));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_5, ctx.gpr[9], aot_gpr_6};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_run_words); }
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(48), aot_gpr_7);
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(20)));
|
|
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(12)));
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(24), aot_run_words);
|
|
aot_fpr_12 = std::bit_cast<float>(aot_run_words[0]);
|
|
aot_gpr_7 = aot_run_words[1];
|
|
aot_gpr_6 = aot_run_words[2];
|
|
}
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[8] = (ctx.gpr[8] + static_cast<std::uint32_t>(-12));
|
|
goto L_08B6C5CC;
|
|
L_08B6C5CC:
|
|
if (aot_gpr_5 == ctx.gpr[9]) {
|
|
aot_gpr_5 = (0u | 0u);
|
|
goto L_08B6C5DC;
|
|
}
|
|
goto L_08B6C5D4;
|
|
L_08B6C5D4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_5 = (static_cast<std::int32_t>(aot_gpr_5) < static_cast<std::int32_t>(ctx.gpr[9]) ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6C5F4;
|
|
}
|
|
goto L_08B6C5DC;
|
|
}
|
|
L_08B6C5DC:
|
|
aot_fpr_14 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_14 <= aot_fpr_13)) ? 0x00800000u : 0u);
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
aot_gpr_5 = (0u | 1u);
|
|
goto L_08B6C5F0;
|
|
}
|
|
goto L_08B6C5F0;
|
|
L_08B6C5F0:
|
|
aot_gpr_5 = (aot_gpr_5 & 255u);
|
|
goto L_08B6C5F4;
|
|
L_08B6C5F4:
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6C608;
|
|
}
|
|
goto L_08B6C5FC;
|
|
}
|
|
L_08B6C5FC:
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(12));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
if (branch_taken) {
|
|
goto L_08B6C5CC;
|
|
}
|
|
goto L_08B6C608;
|
|
}
|
|
L_08B6C608:
|
|
aot_gpr_5 = (ctx.gpr[8] | 0u);
|
|
ctx.gpr[10] = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast<std::uint32_t>(8)));
|
|
goto L_08B6C610;
|
|
L_08B6C610:
|
|
if (ctx.gpr[9] == ctx.gpr[10]) {
|
|
ctx.gpr[10] = (0u | 0u);
|
|
goto L_08B6C620;
|
|
}
|
|
goto L_08B6C618;
|
|
L_08B6C618:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[10] = (static_cast<std::int32_t>(ctx.gpr[9]) < static_cast<std::int32_t>(ctx.gpr[10]) ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6C638;
|
|
}
|
|
goto L_08B6C620;
|
|
}
|
|
L_08B6C620:
|
|
aot_fpr_14 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 <= aot_fpr_14)) ? 0x00800000u : 0u);
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.gpr[10] = (0u | 1u);
|
|
goto L_08B6C634;
|
|
}
|
|
goto L_08B6C634;
|
|
L_08B6C634:
|
|
ctx.gpr[10] = (ctx.gpr[10] & 255u);
|
|
goto L_08B6C638;
|
|
L_08B6C638:
|
|
{ const bool branch_taken = ctx.gpr[10] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6C650;
|
|
}
|
|
goto L_08B6C640;
|
|
}
|
|
L_08B6C640:
|
|
ctx.gpr[8] = (aot_gpr_5 + static_cast<std::uint32_t>(-12));
|
|
aot_gpr_5 = (ctx.gpr[8] | 0u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[10] = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast<std::uint32_t>(8)));
|
|
if (branch_taken) {
|
|
goto L_08B6C610;
|
|
}
|
|
goto L_08B6C650;
|
|
}
|
|
L_08B6C650:
|
|
ctx.gpr[10] = (aot_gpr_4 < ctx.gpr[8] ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[10] == 0u;
|
|
ctx.gpr[10] = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6C6AC;
|
|
}
|
|
goto L_08B6C65C;
|
|
}
|
|
L_08B6C65C:
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
aot_fpr_12 = std::bit_cast<float>(aot_gpr_5);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
aot_fpr_14 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[8] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (std::bit_cast<std::uint32_t>(aot_fpr_14));
|
|
ctx.gpr[11] = (aot_mem.aot_direct_load32(ctx.gpr[8] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[8] + static_cast<std::uint32_t>(8)));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_5, ctx.gpr[11], ctx.gpr[2]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_5 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_5, aot_gpr_7, aot_gpr_6};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[8] + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(12));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[8] = (ctx.gpr[10] + static_cast<std::uint32_t>(-12));
|
|
if (branch_taken) {
|
|
goto L_08B6C5CC;
|
|
}
|
|
goto L_08B6C6AC;
|
|
}
|
|
L_08B6C6AC:
|
|
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(aot_fpr_12), aot_gpr_7, aot_gpr_6};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(24), aot_run_words); }
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
jump_target = ctx.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_08B6C6C4:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, ctx.gpr[17], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(32), aot_gpr_6);
|
|
aot_gpr_5 = (aot_gpr_16 - aot_gpr_4);
|
|
aot_gpr_6 = (0u | 12u);
|
|
{ const std::int32_t dividend = static_cast<std::int32_t>(aot_gpr_5); const std::int32_t divisor = static_cast<std::int32_t>(aot_gpr_6); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast<std::uint32_t>(dividend); } else if (dividend == static_cast<std::int32_t>(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast<std::uint32_t>(dividend / divisor); ctx.hi = static_cast<std::uint32_t>(dividend % divisor); } }
|
|
aot_gpr_5 = (ctx.lo);
|
|
aot_gpr_6 = (static_cast<std::int32_t>(aot_gpr_5) < 17 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_6 != 0u;
|
|
aot_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(32))))));
|
|
if (branch_taken) {
|
|
goto L_08B6C72C;
|
|
}
|
|
goto L_08B6C6F8;
|
|
}
|
|
L_08B6C6F8:
|
|
aot_gpr_6 = (aot_gpr_5 | 0u);
|
|
ctx.gpr[17] = (aot_gpr_4 + static_cast<std::uint32_t>(192));
|
|
ctx.gpr[31] = (0x08B6C708u);
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
goto L_08B6C74C;
|
|
L_08B6C708:
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(32))))));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(16), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_7 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(16))))));
|
|
aot_gpr_4 = (ctx.gpr[17] | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 | 0u);
|
|
ctx.gpr[31] = (0x08B6C724u);
|
|
aot_gpr_6 = (0u | 0u);
|
|
goto L_08B6C99C;
|
|
L_08B6C724:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6C738;
|
|
}
|
|
goto L_08B6C72C;
|
|
}
|
|
L_08B6C72C:
|
|
aot_gpr_6 = (aot_gpr_5 | 0u);
|
|
ctx.gpr[31] = (0x08B6C738u);
|
|
aot_gpr_5 = (aot_gpr_16 | 0u);
|
|
goto L_08B6C74C;
|
|
L_08B6C738:
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6C74C:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-96));
|
|
{ const std::uint32_t aot_run_words[10]{aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], ctx.gpr[30], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(44), aot_run_words); }
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(96), aot_gpr_6);
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
|
|
ctx.gpr[17] = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6C790;
|
|
}
|
|
goto L_08B6C788;
|
|
}
|
|
L_08B6C788:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6C8BC;
|
|
}
|
|
goto L_08B6C790;
|
|
}
|
|
L_08B6C790:
|
|
ctx.gpr[18] = (aot_gpr_16 + static_cast<std::uint32_t>(12));
|
|
{ const bool branch_taken = ctx.gpr[18] == ctx.gpr[17];
|
|
if (branch_taken) {
|
|
goto L_08B6C8BC;
|
|
}
|
|
goto L_08B6C79C;
|
|
}
|
|
L_08B6C79C:
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(96))))));
|
|
ctx.gpr[23] = (0u | 12u);
|
|
ctx.gpr[30] = (aot_gpr_29 + static_cast<std::uint32_t>(20));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(16), static_cast<std::uint8_t>(aot_gpr_4));
|
|
ctx.gpr[19] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(32))))));
|
|
ctx.gpr[20] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(37))))));
|
|
ctx.gpr[21] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(35))))));
|
|
goto L_08B6C7B8;
|
|
L_08B6C7B8:
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(8)));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_4, aot_gpr_5, aot_gpr_6};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_run_words); }
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(28)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast<std::uint32_t>(8)));
|
|
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
|
|
ctx.gpr[22] = (ctx.gpr[18] + static_cast<std::uint32_t>(12));
|
|
if (branch_taken) {
|
|
goto L_08B6C7EC;
|
|
}
|
|
goto L_08B6C7E4;
|
|
}
|
|
L_08B6C7E4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < static_cast<std::int32_t>(aot_gpr_5) ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6C80C;
|
|
}
|
|
goto L_08B6C7EC;
|
|
}
|
|
L_08B6C7EC:
|
|
aot_gpr_4 = (0u | 0u);
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(20)));
|
|
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_13)) ? 0x00800000u : 0u);
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
aot_gpr_4 = (0u | 1u);
|
|
goto L_08B6C808;
|
|
}
|
|
goto L_08B6C808;
|
|
L_08B6C808:
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
goto L_08B6C80C;
|
|
L_08B6C80C:
|
|
if (aot_gpr_4 == 0u) {
|
|
aot_gpr_6 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(16))))));
|
|
goto L_08B6C898;
|
|
}
|
|
goto L_08B6C814;
|
|
L_08B6C814:
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(33), static_cast<std::uint8_t>(0u));
|
|
ctx.gpr[19] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(33))))));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(36), static_cast<std::uint8_t>(0u));
|
|
ctx.gpr[31] = (0x08B6C828u);
|
|
ctx.gpr[20] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(36))))));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 709u, 0x089574ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6C828u) goto L_08B6C828;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6C828:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(40), ctx.gpr[2]);
|
|
ctx.gpr[21] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(40))))));
|
|
aot_gpr_4 = (ctx.gpr[22] | 0u);
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(38), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_5 = (ctx.gpr[18] - aot_gpr_16);
|
|
{ const std::int32_t dividend = static_cast<std::int32_t>(aot_gpr_5); const std::int32_t divisor = static_cast<std::int32_t>(ctx.gpr[23]); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast<std::uint32_t>(dividend); } else if (dividend == static_cast<std::int32_t>(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast<std::uint32_t>(dividend / divisor); ctx.hi = static_cast<std::uint32_t>(dividend % divisor); } }
|
|
aot_gpr_5 = (ctx.lo);
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_5) <= 0;
|
|
if (branch_taken) {
|
|
goto L_08B6C878;
|
|
}
|
|
goto L_08B6C84C;
|
|
}
|
|
L_08B6C84C:
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-12));
|
|
ctx.gpr[18] = (ctx.gpr[18] + static_cast<std::uint32_t>(-12));
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_6 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(0), aot_gpr_6);
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(4), aot_gpr_7);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_5) > 0;
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(8), ctx.gpr[8]);
|
|
if (branch_taken) {
|
|
goto L_08B6C84C;
|
|
}
|
|
goto L_08B6C878;
|
|
}
|
|
L_08B6C878:
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(20)));
|
|
aot_gpr_4 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(24)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(28)));
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(0), aot_gpr_4);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(4), aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(8), aot_gpr_6);
|
|
if (branch_taken) {
|
|
goto L_08B6C8A4;
|
|
}
|
|
goto L_08B6C898;
|
|
}
|
|
L_08B6C898:
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[31] = (0x08B6C8A4u);
|
|
aot_gpr_5 = (ctx.gpr[30] | 0u);
|
|
goto L_08B6C8EC;
|
|
L_08B6C8A4:
|
|
ctx.gpr[18] = (ctx.gpr[22] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[18] != ctx.gpr[17];
|
|
if (branch_taken) {
|
|
goto L_08B6C7B8;
|
|
}
|
|
goto L_08B6C8B0;
|
|
}
|
|
L_08B6C8B0:
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(32), static_cast<std::uint8_t>(ctx.gpr[19]));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(37), static_cast<std::uint8_t>(ctx.gpr[20]));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(35), static_cast<std::uint8_t>(ctx.gpr[21]));
|
|
goto L_08B6C8BC;
|
|
L_08B6C8BC:
|
|
{ std::uint32_t aot_run_words[10]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(44), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[19] = aot_run_words[3];
|
|
ctx.gpr[20] = aot_run_words[4];
|
|
ctx.gpr[21] = aot_run_words[5];
|
|
ctx.gpr[22] = aot_run_words[6];
|
|
ctx.gpr[23] = aot_run_words[7];
|
|
ctx.gpr[30] = aot_run_words[8];
|
|
ctx.gpr[31] = aot_run_words[9];
|
|
}
|
|
jump_target = ctx.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_08B6C8EC:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(8)));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_7, ctx.gpr[9], ctx.gpr[8]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_run_words); }
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(32), aot_gpr_6);
|
|
aot_gpr_6 = (aot_gpr_4 + static_cast<std::uint32_t>(-12));
|
|
aot_gpr_7 = (aot_gpr_6 | 0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(20)));
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(12)));
|
|
ctx.gpr[10] = (aot_mem.aot_direct_load8(aot_gpr_7 + static_cast<std::uint32_t>(8)));
|
|
goto L_08B6C924;
|
|
L_08B6C924:
|
|
if (aot_gpr_5 == ctx.gpr[10]) {
|
|
ctx.gpr[10] = (0u | 0u);
|
|
goto L_08B6C934;
|
|
}
|
|
goto L_08B6C92C;
|
|
L_08B6C92C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[10] = (static_cast<std::int32_t>(aot_gpr_5) < static_cast<std::int32_t>(ctx.gpr[10]) ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6C94C;
|
|
}
|
|
goto L_08B6C934;
|
|
}
|
|
L_08B6C934:
|
|
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_7 + static_cast<std::uint32_t>(0)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_13)) ? 0x00800000u : 0u);
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.gpr[10] = (0u | 1u);
|
|
goto L_08B6C948;
|
|
}
|
|
goto L_08B6C948;
|
|
L_08B6C948:
|
|
ctx.gpr[10] = (ctx.gpr[10] & 255u);
|
|
goto L_08B6C94C;
|
|
L_08B6C94C:
|
|
{ const bool branch_taken = ctx.gpr[10] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6C984;
|
|
}
|
|
goto L_08B6C954;
|
|
}
|
|
L_08B6C954:
|
|
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[10] = (std::bit_cast<std::uint32_t>(aot_fpr_13));
|
|
ctx.gpr[11] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(8)));
|
|
{ const std::uint32_t aot_run_words[3]{ctx.gpr[10], ctx.gpr[11], ctx.gpr[2]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_gpr_4 = (aot_gpr_6 | 0u);
|
|
aot_gpr_6 = (aot_gpr_7 + static_cast<std::uint32_t>(-12));
|
|
aot_gpr_7 = (aot_gpr_6 | 0u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[10] = (aot_mem.aot_direct_load8(aot_gpr_7 + static_cast<std::uint32_t>(8)));
|
|
if (branch_taken) {
|
|
goto L_08B6C924;
|
|
}
|
|
goto L_08B6C984;
|
|
}
|
|
L_08B6C984:
|
|
aot_gpr_5 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_5, ctx.gpr[9], ctx.gpr[8]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
jump_target = ctx.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_08B6C99C:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
|
|
{ const std::uint32_t aot_run_words[5]{aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[31], aot_gpr_7};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
ctx.gpr[18] = (aot_gpr_4 | 0u);
|
|
{ const bool branch_taken = ctx.gpr[18] == aot_gpr_16;
|
|
if (branch_taken) {
|
|
goto L_08B6C9E4;
|
|
}
|
|
goto L_08B6C9C4;
|
|
}
|
|
L_08B6C9C4:
|
|
ctx.gpr[17] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(32))))));
|
|
goto L_08B6C9C8;
|
|
L_08B6C9C8:
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_5 = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[31] = (0x08B6C9D8u);
|
|
aot_gpr_6 = (ctx.gpr[17] | 0u);
|
|
goto L_08B6C8EC;
|
|
L_08B6C9D8:
|
|
ctx.gpr[18] = (ctx.gpr[18] + static_cast<std::uint32_t>(12));
|
|
{ const bool branch_taken = ctx.gpr[18] != aot_gpr_16;
|
|
if (branch_taken) {
|
|
goto L_08B6C9C8;
|
|
}
|
|
goto L_08B6C9E4;
|
|
}
|
|
L_08B6C9E4:
|
|
{ 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];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[31] = aot_run_words[3];
|
|
}
|
|
jump_target = ctx.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_08B6C9FC:
|
|
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), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08B6CA0Cu);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
goto L_08B6CA18;
|
|
L_08B6CA0C:
|
|
ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
|
|
jump_target = ctx.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_08B6CA18:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_7 + aot_gpr_4);
|
|
{ const bool branch_taken = aot_gpr_6 == aot_gpr_4;
|
|
if (branch_taken) {
|
|
goto L_08B6CA7C;
|
|
}
|
|
goto L_08B6CA2C;
|
|
}
|
|
L_08B6CA2C:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_gpr_7 + aot_gpr_5);
|
|
goto L_08B6CA38;
|
|
L_08B6CA38:
|
|
ctx.gpr[9] = (aot_gpr_7 | 0u);
|
|
{ const bool branch_taken = ctx.gpr[9] == aot_gpr_5;
|
|
if (branch_taken) {
|
|
goto L_08B6CA70;
|
|
}
|
|
goto L_08B6CA44;
|
|
}
|
|
L_08B6CA44:
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_6 + static_cast<std::uint32_t>(0))))));
|
|
goto L_08B6CA48;
|
|
L_08B6CA48:
|
|
ctx.gpr[10] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[9] + static_cast<std::uint32_t>(0))))));
|
|
{ const bool branch_taken = ctx.gpr[8] == ctx.gpr[10];
|
|
if (branch_taken) {
|
|
goto L_08B6CA68;
|
|
}
|
|
goto L_08B6CA54;
|
|
}
|
|
L_08B6CA54:
|
|
ctx.gpr[9] = (ctx.gpr[9] + static_cast<std::uint32_t>(1));
|
|
{ const bool branch_taken = ctx.gpr[9] != aot_gpr_5;
|
|
if (branch_taken) {
|
|
goto L_08B6CA48;
|
|
}
|
|
goto L_08B6CA60;
|
|
}
|
|
L_08B6CA60:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6CA70;
|
|
}
|
|
goto L_08B6CA68;
|
|
}
|
|
L_08B6CA68:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_6 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6CA80;
|
|
}
|
|
goto L_08B6CA70;
|
|
}
|
|
L_08B6CA70:
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(1));
|
|
{ const bool branch_taken = aot_gpr_6 != aot_gpr_4;
|
|
if (branch_taken) {
|
|
goto L_08B6CA38;
|
|
}
|
|
goto L_08B6CA7C;
|
|
}
|
|
L_08B6CA7C:
|
|
ctx.gpr[2] = (aot_gpr_6 | 0u);
|
|
goto L_08B6CA80;
|
|
L_08B6CA80:
|
|
jump_target = ctx.gpr[31];
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B6CA88:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-48));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(28), aot_gpr_16);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(32), ctx.gpr[17]);
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_6);
|
|
aot_gpr_4 = (aot_gpr_6 - aot_gpr_16);
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(8), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(1));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), aot_gpr_4);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(32));
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-32));
|
|
aot_gpr_5 = (aot_gpr_5 & aot_gpr_4);
|
|
aot_gpr_4 = (2236u << 16u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(36), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08B6CACCu);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(25856));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6CACCu) goto L_08B6CACC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6CACC:
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(10), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), ctx.gpr[2]);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(24), aot_gpr_16);
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(10))))));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(13), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(20), ctx.gpr[2]);
|
|
aot_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(13))))));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(9), static_cast<std::uint8_t>(aot_gpr_4));
|
|
ctx.gpr[31] = (0x08B6CAF4u);
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(14), static_cast<std::uint8_t>(aot_gpr_5));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 86u, 0x08964FC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6CAF4u) goto L_08B6CAF4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6CAF4:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), ctx.gpr[2]);
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(16))))));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(12), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = aot_gpr_6 == aot_gpr_5;
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(20)));
|
|
if (branch_taken) {
|
|
goto L_08B6CB24;
|
|
}
|
|
goto L_08B6CB10;
|
|
}
|
|
L_08B6CB10:
|
|
aot_gpr_16 = (aot_gpr_6 - aot_gpr_5);
|
|
ctx.gpr[31] = (0x08B6CB1Cu);
|
|
aot_gpr_6 = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6CB1Cu) goto L_08B6CB1C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6CB1C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_4 = (ctx.gpr[2] + aot_gpr_16);
|
|
if (branch_taken) {
|
|
goto L_08B6CB24;
|
|
}
|
|
goto L_08B6CB24;
|
|
}
|
|
L_08B6CB24:
|
|
aot_mem.aot_direct_store8(aot_gpr_4 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(0u));
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(28), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6CB3C:
|
|
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), ctx.gpr[31]);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_6 = (2235u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B6CB7C;
|
|
}
|
|
goto L_08B6CB4C;
|
|
}
|
|
L_08B6CB4C:
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(-27268));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(4), aot_gpr_6);
|
|
if (branch_taken) {
|
|
goto L_08B6CB64;
|
|
}
|
|
goto L_08B6CB58;
|
|
}
|
|
L_08B6CB58:
|
|
aot_gpr_6 = (2235u << 16u);
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(-28628));
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(4), aot_gpr_6);
|
|
goto L_08B6CB64;
|
|
L_08B6CB64:
|
|
aot_gpr_5 = (aot_gpr_5 & 1u);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
aot_gpr_5 = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6CB7C;
|
|
}
|
|
goto L_08B6CB70;
|
|
}
|
|
L_08B6CB70:
|
|
aot_gpr_4 = (2237u << 16u);
|
|
ctx.gpr[31] = (0x08B6CB7Cu);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-29120));
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE8F4, 174u, 556u, 0x08ABE8F4u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 556u, 0x08ABE8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6CB7Cu) goto L_08B6CB7C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6CB7C:
|
|
ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
|
|
jump_target = ctx.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_08B6CB88:
|
|
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>(4), ctx.gpr[17]);
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
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>(8), ctx.gpr[31]);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6CC14;
|
|
}
|
|
goto L_08B6CBA4;
|
|
}
|
|
L_08B6CBA4:
|
|
aot_gpr_4 = (2235u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-27076));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
aot_gpr_4 = (ctx.gpr[17] + static_cast<std::uint32_t>(32));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6CBD8;
|
|
}
|
|
goto L_08B6CBBC;
|
|
}
|
|
L_08B6CBBC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(36)));
|
|
aot_gpr_5 = (ctx.gpr[28] + static_cast<std::uint32_t>(5824));
|
|
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
|
|
aot_gpr_5 = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6CBD8;
|
|
}
|
|
goto L_08B6CBCC;
|
|
}
|
|
L_08B6CBCC:
|
|
aot_gpr_4 = (2236u << 16u);
|
|
ctx.gpr[31] = (0x08B6CBD8u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(25856));
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE8F4, 174u, 556u, 0x08ABE8F4u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 556u, 0x08ABE8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6CBD8u) goto L_08B6CBD8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6CBD8:
|
|
{ const bool branch_taken = ctx.gpr[17] == 0u;
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
if (branch_taken) {
|
|
goto L_08B6CC00;
|
|
}
|
|
goto L_08B6CBE0;
|
|
}
|
|
L_08B6CBE0:
|
|
aot_gpr_4 = (2235u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-27268));
|
|
{ const bool branch_taken = ctx.gpr[17] == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6CBFC;
|
|
}
|
|
goto L_08B6CBF0;
|
|
}
|
|
L_08B6CBF0:
|
|
aot_gpr_4 = (2235u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-28628));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
goto L_08B6CBFC;
|
|
L_08B6CBFC:
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
goto L_08B6CC00;
|
|
L_08B6CC00:
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_4 = (2237u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B6CC14;
|
|
}
|
|
goto L_08B6CC08;
|
|
}
|
|
L_08B6CC08:
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B6CC14u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-29120));
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE8F4, 174u, 556u, 0x08ABE8F4u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 556u, 0x08ABE8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6CC14u) goto L_08B6CC14;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6CC14:
|
|
{ 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];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6CC28:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (0u | 2080u);
|
|
aot_gpr_5 = (aot_gpr_5 - aot_gpr_6);
|
|
{ const std::int32_t dividend = static_cast<std::int32_t>(aot_gpr_5); const std::int32_t divisor = static_cast<std::int32_t>(aot_gpr_7); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast<std::uint32_t>(dividend); } else if (dividend == static_cast<std::int32_t>(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast<std::uint32_t>(dividend / divisor); ctx.hi = static_cast<std::uint32_t>(dividend % divisor); } }
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_5 = (ctx.lo);
|
|
aot_gpr_6 = (aot_gpr_5 < aot_gpr_6 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_6 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6CC64;
|
|
}
|
|
goto L_08B6CC4C;
|
|
}
|
|
L_08B6CC4C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[2] = (aot_gpr_5 << 8u);
|
|
aot_gpr_4 = (aot_gpr_4 + aot_gpr_5);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6CC68;
|
|
}
|
|
goto L_08B6CC64;
|
|
}
|
|
L_08B6CC64:
|
|
ctx.gpr[2] = (0u + static_cast<std::uint32_t>(-1));
|
|
goto L_08B6CC68;
|
|
L_08B6CC68:
|
|
jump_target = ctx.gpr[31];
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B6CC70:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-48));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(28), aot_gpr_16);
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
{ const std::uint32_t aot_run_words[3]{0u, 0u, 0u};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_16 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(32), ctx.gpr[17]);
|
|
ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(1), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(24), aot_gpr_4);
|
|
aot_gpr_5 = (aot_gpr_4 - ctx.gpr[17]);
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(2), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(1));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(36), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08B6CCB4u);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 641u, 0x08B66A74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6CCB4u) goto L_08B6CCB4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6CCB4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(5), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(20), ctx.gpr[17]);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), 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(aot_gpr_29 + static_cast<std::uint32_t>(5))))));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(8), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(3), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(8))))));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(4), static_cast<std::uint8_t>(aot_gpr_4));
|
|
ctx.gpr[31] = (0x08B6CCE0u);
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(9), static_cast<std::uint8_t>(aot_gpr_5));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 613u, 0x08972CF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6CCE0u) goto L_08B6CCE0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6CCE0:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), ctx.gpr[2]);
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(12))))));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(20)));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(7), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(24)));
|
|
{ const bool branch_taken = aot_gpr_6 == aot_gpr_5;
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
|
|
if (branch_taken) {
|
|
goto L_08B6CD10;
|
|
}
|
|
goto L_08B6CCFC;
|
|
}
|
|
L_08B6CCFC:
|
|
ctx.gpr[17] = (aot_gpr_6 - aot_gpr_5);
|
|
ctx.gpr[31] = (0x08B6CD08u);
|
|
aot_gpr_6 = (ctx.gpr[17] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6CD08u) goto L_08B6CD08;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6CD08:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_4 = (ctx.gpr[2] + ctx.gpr[17]);
|
|
if (branch_taken) {
|
|
goto L_08B6CD10;
|
|
}
|
|
goto L_08B6CD10;
|
|
}
|
|
L_08B6CD10:
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(10), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_direct_store8(aot_gpr_4 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(0u));
|
|
ctx.gpr[2] = (aot_gpr_16 | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(28), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6CD34:
|
|
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), ctx.gpr[31]);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_6 = (2235u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B6CD84;
|
|
}
|
|
goto L_08B6CD44;
|
|
}
|
|
L_08B6CD44:
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(-27044));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(4), aot_gpr_6);
|
|
if (branch_taken) {
|
|
goto L_08B6CD70;
|
|
}
|
|
goto L_08B6CD50;
|
|
}
|
|
L_08B6CD50:
|
|
aot_gpr_6 = (2235u << 16u);
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(-27060));
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(4), aot_gpr_6);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast<std::uint32_t>(5860), 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6CD70;
|
|
}
|
|
goto L_08B6CD64;
|
|
}
|
|
L_08B6CD64:
|
|
aot_gpr_6 = (2235u << 16u);
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(-28772));
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(4), aot_gpr_6);
|
|
goto L_08B6CD70;
|
|
L_08B6CD70:
|
|
aot_gpr_5 = (aot_gpr_5 & 1u);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6CD84;
|
|
}
|
|
goto L_08B6CD7C;
|
|
}
|
|
L_08B6CD7C:
|
|
ctx.gpr[31] = (0x08B6CD84u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2C0, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6CD84u) goto L_08B6CD84;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6CD84:
|
|
ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
|
|
jump_target = ctx.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_08B6CD90:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
|
|
{ const std::uint32_t aot_run_words[5]{aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
ctx.gpr[18] = (aot_gpr_4 | 0u);
|
|
ctx.gpr[17] = (aot_gpr_5 | 0u);
|
|
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
|
|
aot_gpr_16 = (aot_gpr_6 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6CDC0;
|
|
}
|
|
goto L_08B6CDB8;
|
|
}
|
|
L_08B6CDB8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6CE0C;
|
|
}
|
|
goto L_08B6CDC0;
|
|
}
|
|
L_08B6CDC0:
|
|
ctx.gpr[19] = (ctx.gpr[18] + static_cast<std::uint32_t>(2));
|
|
{ const bool branch_taken = ctx.gpr[19] == ctx.gpr[17];
|
|
if (branch_taken) {
|
|
goto L_08B6CE0C;
|
|
}
|
|
goto L_08B6CDCC;
|
|
}
|
|
L_08B6CDCC:
|
|
aot_gpr_4 = (ctx.gpr[19] - ctx.gpr[18]);
|
|
aot_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_4) >> 1u));
|
|
aot_gpr_5 = (aot_gpr_5 >> 31u);
|
|
aot_gpr_4 = (aot_gpr_4 + aot_gpr_5);
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_4) >> 1u));
|
|
jump_target = aot_gpr_16;
|
|
ctx.gpr[31] = (0x08B6CDE8u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(1));
|
|
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 == 0x08B6CDE8u) goto L_08B6CDE8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6CDE8:
|
|
aot_gpr_4 = (ctx.gpr[2] + ctx.gpr[2]);
|
|
aot_gpr_4 = (ctx.gpr[18] + aot_gpr_4);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store16(ctx.gpr[19] + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(aot_gpr_5));
|
|
aot_mem.aot_direct_store16(aot_gpr_4 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(aot_gpr_6));
|
|
ctx.gpr[19] = (ctx.gpr[19] + static_cast<std::uint32_t>(2));
|
|
{ const bool branch_taken = ctx.gpr[19] != ctx.gpr[17];
|
|
if (branch_taken) {
|
|
goto L_08B6CDCC;
|
|
}
|
|
goto L_08B6CE0C;
|
|
}
|
|
L_08B6CE0C:
|
|
{ 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];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[19] = aot_run_words[3];
|
|
ctx.gpr[31] = aot_run_words[4];
|
|
}
|
|
jump_target = ctx.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_08B6CE28:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[8] = (0u | 0u);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
|
|
goto L_08B6CE34;
|
|
L_08B6CE34:
|
|
aot_gpr_7 = (aot_gpr_7 + static_cast<std::uint32_t>(1));
|
|
{ const bool branch_taken = aot_gpr_7 != aot_gpr_6;
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(12), aot_gpr_7);
|
|
if (branch_taken) {
|
|
goto L_08B6CE60;
|
|
}
|
|
goto L_08B6CE40;
|
|
}
|
|
L_08B6CE40:
|
|
{ const bool branch_taken = ctx.gpr[8] != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6CE58;
|
|
}
|
|
goto L_08B6CE48;
|
|
}
|
|
L_08B6CE48:
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(12), 0u);
|
|
ctx.gpr[8] = (0u | 1u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_7 = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6CE60;
|
|
}
|
|
goto L_08B6CE58;
|
|
}
|
|
L_08B6CE58:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6CEDC;
|
|
}
|
|
goto L_08B6CE60;
|
|
}
|
|
L_08B6CE60:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[9] = (aot_gpr_5 + aot_gpr_7);
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load8(ctx.gpr[9] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[9] = (ctx.gpr[9] & 128u);
|
|
ctx.gpr[9] = (0u < ctx.gpr[9] ? 1u : 0u);
|
|
ctx.gpr[9] = (ctx.gpr[9] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[9] == 0u;
|
|
aot_gpr_5 = (aot_gpr_5 + aot_gpr_7);
|
|
if (branch_taken) {
|
|
goto L_08B6CE34;
|
|
}
|
|
goto L_08B6CE80;
|
|
}
|
|
L_08B6CE80:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (0u + static_cast<std::uint32_t>(-129));
|
|
aot_gpr_6 = (aot_gpr_6 & aot_gpr_7);
|
|
aot_mem.aot_direct_store8(aot_gpr_5 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(aot_gpr_6));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[8] = (0u + static_cast<std::uint32_t>(-128));
|
|
aot_gpr_7 = (aot_gpr_6 + aot_gpr_5);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_7 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_gpr_6 + aot_gpr_5);
|
|
aot_gpr_6 = (aot_gpr_7 & 127u);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(1));
|
|
aot_gpr_7 = (aot_gpr_7 & ctx.gpr[8]);
|
|
aot_gpr_6 = (aot_gpr_6 & 127u);
|
|
aot_gpr_6 = (aot_gpr_7 | aot_gpr_6);
|
|
aot_mem.aot_direct_store8(aot_gpr_5 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(aot_gpr_6));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
|
|
ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_5 << 4u);
|
|
aot_gpr_5 = (aot_gpr_5 << 2u);
|
|
aot_gpr_4 = (aot_gpr_4 + aot_gpr_5);
|
|
ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4);
|
|
goto L_08B6CEDC;
|
|
L_08B6CEDC:
|
|
jump_target = ctx.gpr[31];
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B6CEE4:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (0u | 20u);
|
|
aot_gpr_5 = (aot_gpr_5 - aot_gpr_6);
|
|
{ const std::int32_t dividend = static_cast<std::int32_t>(aot_gpr_5); const std::int32_t divisor = static_cast<std::int32_t>(aot_gpr_7); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast<std::uint32_t>(dividend); } else if (dividend == static_cast<std::int32_t>(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast<std::uint32_t>(dividend / divisor); ctx.hi = static_cast<std::uint32_t>(dividend % divisor); } }
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_5 = (ctx.lo);
|
|
aot_gpr_6 = (aot_gpr_6 + aot_gpr_5);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (aot_gpr_7 | 128u);
|
|
aot_mem.aot_direct_store8(aot_gpr_6 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(aot_gpr_7));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_6 = (static_cast<std::int32_t>(aot_gpr_5) < static_cast<std::int32_t>(aot_gpr_6) ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_6 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6CF20;
|
|
}
|
|
goto L_08B6CF1C;
|
|
}
|
|
L_08B6CF1C:
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(12), aot_gpr_5);
|
|
goto L_08B6CF20;
|
|
L_08B6CF20:
|
|
jump_target = ctx.gpr[31];
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B6CF28:
|
|
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), ctx.gpr[17]);
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[31]);
|
|
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_16)) * 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); }
|
|
aot_gpr_4 = (ctx.lo);
|
|
ctx.gpr[31] = (0x08B6CF54u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6CF54u) goto L_08B6CF54;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6CF54:
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), ctx.gpr[2]);
|
|
ctx.gpr[31] = (0x08B6CF60u);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6CF60u) goto L_08B6CF60;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6CF60:
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), ctx.gpr[2]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(8), aot_gpr_16);
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(12), aot_gpr_4);
|
|
aot_gpr_5 = (0u | 0u);
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_5) < static_cast<std::int32_t>(aot_gpr_16) ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-128));
|
|
if (branch_taken) {
|
|
goto L_08B6CFB8;
|
|
}
|
|
goto L_08B6CF80;
|
|
}
|
|
L_08B6CF80:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
goto L_08B6CF84;
|
|
L_08B6CF84:
|
|
aot_gpr_6 = (aot_gpr_6 + aot_gpr_5);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (aot_gpr_7 | 128u);
|
|
aot_mem.aot_direct_store8(aot_gpr_6 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(aot_gpr_7));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_6 = (aot_gpr_6 + aot_gpr_5);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(1));
|
|
aot_gpr_7 = (aot_gpr_7 & aot_gpr_4);
|
|
aot_mem.aot_direct_store8(aot_gpr_6 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(aot_gpr_7));
|
|
aot_gpr_6 = (static_cast<std::int32_t>(aot_gpr_5) < static_cast<std::int32_t>(aot_gpr_16) ? 1u : 0u);
|
|
if (aot_gpr_6 != 0u) {
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
goto L_08B6CF84;
|
|
}
|
|
goto L_08B6CFB8;
|
|
L_08B6CFB8:
|
|
ctx.gpr[2] = (ctx.gpr[17] | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6CFD0:
|
|
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), ctx.gpr[17]);
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[31]);
|
|
aot_gpr_4 = (aot_gpr_16 << 5u);
|
|
aot_gpr_5 = (0u + aot_gpr_4);
|
|
aot_gpr_4 = (aot_gpr_4 << 6u);
|
|
ctx.gpr[31] = (0x08B6CFFCu);
|
|
aot_gpr_4 = (aot_gpr_5 + aot_gpr_4);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6CFFCu) goto L_08B6CFFC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6CFFC:
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), ctx.gpr[2]);
|
|
ctx.gpr[31] = (0x08B6D008u);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D008u) goto L_08B6D008;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D008:
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), ctx.gpr[2]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(8), aot_gpr_16);
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(12), aot_gpr_4);
|
|
aot_gpr_5 = (0u | 0u);
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_5) < static_cast<std::int32_t>(aot_gpr_16) ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-128));
|
|
if (branch_taken) {
|
|
goto L_08B6D060;
|
|
}
|
|
goto L_08B6D028;
|
|
}
|
|
L_08B6D028:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
goto L_08B6D02C;
|
|
L_08B6D02C:
|
|
aot_gpr_6 = (aot_gpr_6 + aot_gpr_5);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (aot_gpr_7 | 128u);
|
|
aot_mem.aot_direct_store8(aot_gpr_6 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(aot_gpr_7));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_6 = (aot_gpr_6 + aot_gpr_5);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(1));
|
|
aot_gpr_7 = (aot_gpr_7 & aot_gpr_4);
|
|
aot_mem.aot_direct_store8(aot_gpr_6 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(aot_gpr_7));
|
|
aot_gpr_6 = (static_cast<std::int32_t>(aot_gpr_5) < static_cast<std::int32_t>(aot_gpr_16) ? 1u : 0u);
|
|
if (aot_gpr_6 != 0u) {
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
goto L_08B6D02C;
|
|
}
|
|
goto L_08B6D060;
|
|
L_08B6D060:
|
|
ctx.gpr[2] = (ctx.gpr[17] | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6D078:
|
|
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), ctx.gpr[17]);
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[31]);
|
|
aot_gpr_4 = (aot_gpr_16 << 5u);
|
|
aot_gpr_5 = (0u + aot_gpr_4);
|
|
aot_gpr_4 = (aot_gpr_4 << 4u);
|
|
ctx.gpr[31] = (0x08B6D0A4u);
|
|
aot_gpr_4 = (aot_gpr_5 + aot_gpr_4);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D0A4u) goto L_08B6D0A4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D0A4:
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), ctx.gpr[2]);
|
|
ctx.gpr[31] = (0x08B6D0B0u);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D0B0u) goto L_08B6D0B0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D0B0:
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), ctx.gpr[2]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(8), aot_gpr_16);
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(12), aot_gpr_4);
|
|
aot_gpr_5 = (0u | 0u);
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_5) < static_cast<std::int32_t>(aot_gpr_16) ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-128));
|
|
if (branch_taken) {
|
|
goto L_08B6D108;
|
|
}
|
|
goto L_08B6D0D0;
|
|
}
|
|
L_08B6D0D0:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
goto L_08B6D0D4;
|
|
L_08B6D0D4:
|
|
aot_gpr_6 = (aot_gpr_6 + aot_gpr_5);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (aot_gpr_7 | 128u);
|
|
aot_mem.aot_direct_store8(aot_gpr_6 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(aot_gpr_7));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_6 = (aot_gpr_6 + aot_gpr_5);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(1));
|
|
aot_gpr_7 = (aot_gpr_7 & aot_gpr_4);
|
|
aot_mem.aot_direct_store8(aot_gpr_6 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(aot_gpr_7));
|
|
aot_gpr_6 = (static_cast<std::int32_t>(aot_gpr_5) < static_cast<std::int32_t>(aot_gpr_16) ? 1u : 0u);
|
|
if (aot_gpr_6 != 0u) {
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
goto L_08B6D0D4;
|
|
}
|
|
goto L_08B6D108;
|
|
L_08B6D108:
|
|
ctx.gpr[2] = (ctx.gpr[17] | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6D120:
|
|
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), ctx.gpr[17]);
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[31]);
|
|
aot_gpr_4 = (aot_gpr_16 + aot_gpr_16);
|
|
aot_gpr_4 = (aot_gpr_16 + aot_gpr_4);
|
|
aot_gpr_5 = (aot_gpr_16 << 8u);
|
|
aot_gpr_4 = (aot_gpr_4 << 5u);
|
|
ctx.gpr[31] = (0x08B6D150u);
|
|
aot_gpr_4 = (aot_gpr_5 + aot_gpr_4);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D150u) goto L_08B6D150;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D150:
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), ctx.gpr[2]);
|
|
ctx.gpr[31] = (0x08B6D15Cu);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D15Cu) goto L_08B6D15C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D15C:
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), ctx.gpr[2]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(8), aot_gpr_16);
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(12), aot_gpr_4);
|
|
aot_gpr_5 = (0u | 0u);
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_5) < static_cast<std::int32_t>(aot_gpr_16) ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-128));
|
|
if (branch_taken) {
|
|
goto L_08B6D1B4;
|
|
}
|
|
goto L_08B6D17C;
|
|
}
|
|
L_08B6D17C:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
goto L_08B6D180;
|
|
L_08B6D180:
|
|
aot_gpr_6 = (aot_gpr_6 + aot_gpr_5);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (aot_gpr_7 | 128u);
|
|
aot_mem.aot_direct_store8(aot_gpr_6 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(aot_gpr_7));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_6 = (aot_gpr_6 + aot_gpr_5);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(1));
|
|
aot_gpr_7 = (aot_gpr_7 & aot_gpr_4);
|
|
aot_mem.aot_direct_store8(aot_gpr_6 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(aot_gpr_7));
|
|
aot_gpr_6 = (static_cast<std::int32_t>(aot_gpr_5) < static_cast<std::int32_t>(aot_gpr_16) ? 1u : 0u);
|
|
if (aot_gpr_6 != 0u) {
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
goto L_08B6D180;
|
|
}
|
|
goto L_08B6D1B4;
|
|
L_08B6D1B4:
|
|
ctx.gpr[2] = (ctx.gpr[17] | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6D1CC:
|
|
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), ctx.gpr[17]);
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[31]);
|
|
aot_gpr_4 = (aot_gpr_16 << 4u);
|
|
aot_gpr_5 = (aot_gpr_4 + aot_gpr_4);
|
|
ctx.gpr[31] = (0x08B6D1F4u);
|
|
aot_gpr_4 = (aot_gpr_4 + aot_gpr_5);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D1F4u) goto L_08B6D1F4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D1F4:
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), ctx.gpr[2]);
|
|
ctx.gpr[31] = (0x08B6D200u);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D200u) goto L_08B6D200;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D200:
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), ctx.gpr[2]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(8), aot_gpr_16);
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(12), aot_gpr_4);
|
|
aot_gpr_5 = (0u | 0u);
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_5) < static_cast<std::int32_t>(aot_gpr_16) ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-128));
|
|
if (branch_taken) {
|
|
goto L_08B6D258;
|
|
}
|
|
goto L_08B6D220;
|
|
}
|
|
L_08B6D220:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
goto L_08B6D224;
|
|
L_08B6D224:
|
|
aot_gpr_6 = (aot_gpr_6 + aot_gpr_5);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (aot_gpr_7 | 128u);
|
|
aot_mem.aot_direct_store8(aot_gpr_6 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(aot_gpr_7));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_6 = (aot_gpr_6 + aot_gpr_5);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(1));
|
|
aot_gpr_7 = (aot_gpr_7 & aot_gpr_4);
|
|
aot_mem.aot_direct_store8(aot_gpr_6 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(aot_gpr_7));
|
|
aot_gpr_6 = (static_cast<std::int32_t>(aot_gpr_5) < static_cast<std::int32_t>(aot_gpr_16) ? 1u : 0u);
|
|
if (aot_gpr_6 != 0u) {
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
goto L_08B6D224;
|
|
}
|
|
goto L_08B6D258;
|
|
L_08B6D258:
|
|
ctx.gpr[2] = (ctx.gpr[17] | 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6D270:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[17]);
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_16);
|
|
{ const std::uint32_t aot_run_words[4]{ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_run_words); }
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D32C;
|
|
}
|
|
goto L_08B6D298;
|
|
}
|
|
L_08B6D298:
|
|
ctx.gpr[20] = (ctx.gpr[17] + static_cast<std::uint32_t>(304));
|
|
{ const bool branch_taken = ctx.gpr[20] == 0u;
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
if (branch_taken) {
|
|
goto L_08B6D31C;
|
|
}
|
|
goto L_08B6D2A4;
|
|
}
|
|
L_08B6D2A4:
|
|
ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(304)));
|
|
ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(308)));
|
|
{ const bool branch_taken = ctx.gpr[18] == ctx.gpr[19];
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(0u));
|
|
if (branch_taken) {
|
|
goto L_08B6D2F4;
|
|
}
|
|
goto L_08B6D2B4;
|
|
}
|
|
L_08B6D2B4:
|
|
if (ctx.gpr[18] == 0u) {
|
|
ctx.gpr[18] = (ctx.gpr[18] + static_cast<std::uint32_t>(4));
|
|
goto L_08B6D2EC;
|
|
}
|
|
goto L_08B6D2BC;
|
|
L_08B6D2BC:
|
|
if (ctx.gpr[18] == 0u) {
|
|
ctx.gpr[18] = (ctx.gpr[18] + static_cast<std::uint32_t>(4));
|
|
goto L_08B6D2EC;
|
|
}
|
|
goto L_08B6D2C4;
|
|
L_08B6D2C4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
|
|
if (aot_gpr_4 == 0u) {
|
|
ctx.gpr[18] = (ctx.gpr[18] + static_cast<std::uint32_t>(4));
|
|
goto L_08B6D2EC;
|
|
}
|
|
goto L_08B6D2D0;
|
|
L_08B6D2D0:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(0), aot_gpr_5);
|
|
if (branch_taken) {
|
|
goto L_08B6D2E8;
|
|
}
|
|
goto L_08B6D2E0;
|
|
}
|
|
L_08B6D2E0:
|
|
ctx.gpr[31] = (0x08B6D2E8u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2C0, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D2E8u) goto L_08B6D2E8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D2E8:
|
|
ctx.gpr[18] = (ctx.gpr[18] + static_cast<std::uint32_t>(4));
|
|
goto L_08B6D2EC;
|
|
L_08B6D2EC:
|
|
{ const bool branch_taken = ctx.gpr[18] != ctx.gpr[19];
|
|
if (branch_taken) {
|
|
goto L_08B6D2B4;
|
|
}
|
|
goto L_08B6D2F4;
|
|
}
|
|
L_08B6D2F4:
|
|
{ const bool branch_taken = ctx.gpr[20] == 0u;
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
if (branch_taken) {
|
|
goto L_08B6D31C;
|
|
}
|
|
goto L_08B6D2FC;
|
|
}
|
|
L_08B6D2FC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(304)));
|
|
if (aot_gpr_4 == 0u) {
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
goto L_08B6D31C;
|
|
}
|
|
goto L_08B6D308;
|
|
L_08B6D308:
|
|
if (aot_gpr_4 == 0u) {
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
goto L_08B6D31C;
|
|
}
|
|
goto L_08B6D310;
|
|
L_08B6D310:
|
|
ctx.gpr[31] = (0x08B6D318u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D318u) goto L_08B6D318;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D318:
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
goto L_08B6D31C;
|
|
L_08B6D31C:
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6D32C;
|
|
}
|
|
goto L_08B6D324;
|
|
}
|
|
L_08B6D324:
|
|
ctx.gpr[31] = (0x08B6D32Cu);
|
|
aot_gpr_4 = (ctx.gpr[17] | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2C0, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D32Cu) goto L_08B6D32C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D32C:
|
|
{ std::uint32_t aot_run_words[6]{};
|
|
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];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[19] = aot_run_words[3];
|
|
ctx.gpr[20] = aot_run_words[4];
|
|
ctx.gpr[31] = aot_run_words[5];
|
|
}
|
|
jump_target = ctx.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_08B6D34C:
|
|
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), ctx.gpr[31]);
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
ctx.gpr[31] = (0x08B6D364u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 624u, 0x08B6B464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D364u) goto L_08B6D364;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D364:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[2] = (aot_gpr_4 - ctx.gpr[2]);
|
|
aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
jump_target = ctx.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_08B6D37C:
|
|
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>(4), ctx.gpr[17]);
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
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>(8), ctx.gpr[31]);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D430;
|
|
}
|
|
goto L_08B6D398;
|
|
}
|
|
L_08B6D398:
|
|
aot_gpr_4 = (2235u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-26788));
|
|
{ const bool branch_taken = ctx.gpr[17] == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6D418;
|
|
}
|
|
goto L_08B6D3A8;
|
|
}
|
|
L_08B6D3A8:
|
|
aot_gpr_4 = (2235u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-28580));
|
|
{ const bool branch_taken = ctx.gpr[17] == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6D418;
|
|
}
|
|
goto L_08B6D3B8;
|
|
}
|
|
L_08B6D3B8:
|
|
aot_gpr_4 = (2235u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-28596));
|
|
{ const bool branch_taken = ctx.gpr[17] == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6D418;
|
|
}
|
|
goto L_08B6D3C8;
|
|
}
|
|
L_08B6D3C8:
|
|
aot_gpr_4 = (2235u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-28612));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
aot_gpr_4 = (ctx.gpr[17] + static_cast<std::uint32_t>(16));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6D404;
|
|
}
|
|
goto L_08B6D3E0;
|
|
}
|
|
L_08B6D3E0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(88)));
|
|
aot_gpr_4 = (aot_gpr_4 & 1u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6D404;
|
|
}
|
|
goto L_08B6D3F0;
|
|
}
|
|
L_08B6D3F0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(80)));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6D404;
|
|
}
|
|
goto L_08B6D3FC;
|
|
}
|
|
L_08B6D3FC:
|
|
ctx.gpr[31] = (0x08B6D404u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D404u) goto L_08B6D404;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D404:
|
|
{ const bool branch_taken = ctx.gpr[17] == 0u;
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
if (branch_taken) {
|
|
goto L_08B6D41C;
|
|
}
|
|
goto L_08B6D40C;
|
|
}
|
|
L_08B6D40C:
|
|
aot_gpr_4 = (2235u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-28628));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
goto L_08B6D418;
|
|
L_08B6D418:
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
goto L_08B6D41C;
|
|
L_08B6D41C:
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_4 = (2237u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B6D430;
|
|
}
|
|
goto L_08B6D424;
|
|
}
|
|
L_08B6D424:
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B6D430u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-29120));
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE8F4, 174u, 556u, 0x08ABE8F4u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 556u, 0x08ABE8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D430u) goto L_08B6D430;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D430:
|
|
{ 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];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6D444:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, ctx.gpr[17], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D4A4;
|
|
}
|
|
goto L_08B6D460;
|
|
}
|
|
L_08B6D460:
|
|
aot_gpr_4 = (2234u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(25400));
|
|
{ const bool branch_taken = ctx.gpr[17] == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(108), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6D490;
|
|
}
|
|
goto L_08B6D470;
|
|
}
|
|
L_08B6D470:
|
|
aot_gpr_4 = (2235u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-26980));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(108), aot_gpr_4);
|
|
ctx.gpr[31] = (0x08B6D484u);
|
|
aot_gpr_4 = (ctx.gpr[17] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D484u) goto L_08B6D484;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D484:
|
|
aot_gpr_4 = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B6D490u);
|
|
aot_gpr_5 = (0u | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 161u, 0x08AACB80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D490u) goto L_08B6D490;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D490:
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6D4A4;
|
|
}
|
|
goto L_08B6D49C;
|
|
}
|
|
L_08B6D49C:
|
|
ctx.gpr[31] = (0x08B6D4A4u);
|
|
aot_gpr_4 = (ctx.gpr[17] | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2C0, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D4A4u) goto L_08B6D4A4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D4A4:
|
|
{ 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];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6D4B8:
|
|
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>(4), ctx.gpr[17]);
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
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>(8), ctx.gpr[31]);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D54C;
|
|
}
|
|
goto L_08B6D4D4;
|
|
}
|
|
L_08B6D4D4:
|
|
aot_gpr_4 = (2235u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-26772));
|
|
{ const bool branch_taken = ctx.gpr[17] == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6D534;
|
|
}
|
|
goto L_08B6D4E4;
|
|
}
|
|
L_08B6D4E4:
|
|
aot_gpr_4 = (2235u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-28612));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
aot_gpr_4 = (ctx.gpr[17] + static_cast<std::uint32_t>(16));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6D520;
|
|
}
|
|
goto L_08B6D4FC;
|
|
}
|
|
L_08B6D4FC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(88)));
|
|
aot_gpr_4 = (aot_gpr_4 & 1u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6D520;
|
|
}
|
|
goto L_08B6D50C;
|
|
}
|
|
L_08B6D50C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(80)));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6D520;
|
|
}
|
|
goto L_08B6D518;
|
|
}
|
|
L_08B6D518:
|
|
ctx.gpr[31] = (0x08B6D520u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D520u) goto L_08B6D520;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D520:
|
|
{ const bool branch_taken = ctx.gpr[17] == 0u;
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
if (branch_taken) {
|
|
goto L_08B6D538;
|
|
}
|
|
goto L_08B6D528;
|
|
}
|
|
L_08B6D528:
|
|
aot_gpr_4 = (2235u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-28628));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
goto L_08B6D534;
|
|
L_08B6D534:
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
goto L_08B6D538;
|
|
L_08B6D538:
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_4 = (2237u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B6D54C;
|
|
}
|
|
goto L_08B6D540;
|
|
}
|
|
L_08B6D540:
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B6D54Cu);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-29120));
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE8F4, 174u, 556u, 0x08ABE8F4u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 556u, 0x08ABE8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D54Cu) goto L_08B6D54C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D54C:
|
|
{ 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];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6D560:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
aot_gpr_7 = (aot_gpr_5 - aot_gpr_4);
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_7) >> 2u));
|
|
ctx.gpr[8] = (ctx.gpr[8] >> 30u);
|
|
aot_gpr_7 = (aot_gpr_7 + ctx.gpr[8]);
|
|
aot_gpr_7 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_7) >> 4u));
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_7) <= 0;
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(0u));
|
|
if (branch_taken) {
|
|
goto L_08B6D5DC;
|
|
}
|
|
goto L_08B6D580;
|
|
}
|
|
L_08B6D580:
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
goto L_08B6D584;
|
|
L_08B6D584:
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
if (ctx.gpr[9] != ctx.gpr[8]) {
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(4));
|
|
goto L_08B6D598;
|
|
}
|
|
goto L_08B6D590;
|
|
L_08B6D590:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D668;
|
|
}
|
|
goto L_08B6D598;
|
|
}
|
|
L_08B6D598:
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
if (ctx.gpr[9] != ctx.gpr[8]) {
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(4));
|
|
goto L_08B6D5AC;
|
|
}
|
|
goto L_08B6D5A4;
|
|
L_08B6D5A4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D668;
|
|
}
|
|
goto L_08B6D5AC;
|
|
}
|
|
L_08B6D5AC:
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
if (ctx.gpr[9] != ctx.gpr[8]) {
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(4));
|
|
goto L_08B6D5C0;
|
|
}
|
|
goto L_08B6D5B8;
|
|
L_08B6D5B8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D668;
|
|
}
|
|
goto L_08B6D5C0;
|
|
}
|
|
L_08B6D5C0:
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[9] != ctx.gpr[8];
|
|
aot_gpr_7 = (aot_gpr_7 + static_cast<std::uint32_t>(-1));
|
|
if (branch_taken) {
|
|
goto L_08B6D5D4;
|
|
}
|
|
goto L_08B6D5CC;
|
|
}
|
|
L_08B6D5CC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D668;
|
|
}
|
|
goto L_08B6D5D4;
|
|
}
|
|
L_08B6D5D4:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_7) > 0;
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(4));
|
|
if (branch_taken) {
|
|
goto L_08B6D584;
|
|
}
|
|
goto L_08B6D5DC;
|
|
}
|
|
L_08B6D5DC:
|
|
aot_gpr_7 = (aot_gpr_5 - aot_gpr_4);
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_7) >> 2u));
|
|
ctx.gpr[8] = (ctx.gpr[8] >> 30u);
|
|
aot_gpr_7 = (aot_gpr_7 + ctx.gpr[8]);
|
|
aot_gpr_7 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_7) >> 2u));
|
|
ctx.gpr[8] = (static_cast<std::int32_t>(aot_gpr_7) < 2 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[8] == 0u;
|
|
ctx.gpr[8] = (static_cast<std::int32_t>(aot_gpr_7) < 3 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D610;
|
|
}
|
|
goto L_08B6D5FC;
|
|
}
|
|
L_08B6D5FC:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_7) <= 0;
|
|
ctx.gpr[2] = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D668;
|
|
}
|
|
goto L_08B6D604;
|
|
}
|
|
L_08B6D604:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
if (branch_taken) {
|
|
goto L_08B6D654;
|
|
}
|
|
goto L_08B6D60C;
|
|
}
|
|
L_08B6D60C:
|
|
ctx.gpr[8] = (static_cast<std::int32_t>(aot_gpr_7) < 3 ? 1u : 0u);
|
|
goto L_08B6D610;
|
|
L_08B6D610:
|
|
{ const bool branch_taken = ctx.gpr[8] != 0u;
|
|
aot_gpr_7 = (static_cast<std::int32_t>(aot_gpr_7) < 4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D638;
|
|
}
|
|
goto L_08B6D618;
|
|
}
|
|
L_08B6D618:
|
|
{ const bool branch_taken = aot_gpr_7 == 0u;
|
|
ctx.gpr[2] = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D668;
|
|
}
|
|
goto L_08B6D620;
|
|
}
|
|
L_08B6D620:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
if (aot_gpr_7 != ctx.gpr[8]) {
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(4));
|
|
goto L_08B6D638;
|
|
}
|
|
goto L_08B6D630;
|
|
L_08B6D630:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D668;
|
|
}
|
|
goto L_08B6D638;
|
|
}
|
|
L_08B6D638:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
if (aot_gpr_7 != ctx.gpr[8]) {
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(4));
|
|
goto L_08B6D650;
|
|
}
|
|
goto L_08B6D648;
|
|
L_08B6D648:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D668;
|
|
}
|
|
goto L_08B6D650;
|
|
}
|
|
L_08B6D650:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
goto L_08B6D654;
|
|
L_08B6D654:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = aot_gpr_7 != aot_gpr_6;
|
|
ctx.gpr[2] = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D668;
|
|
}
|
|
goto L_08B6D660;
|
|
}
|
|
L_08B6D660:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D668;
|
|
}
|
|
goto L_08B6D668;
|
|
}
|
|
L_08B6D668:
|
|
jump_target = ctx.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_08B6D670:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
aot_gpr_7 = (aot_gpr_5 - aot_gpr_4);
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_7) >> 2u));
|
|
ctx.gpr[8] = (ctx.gpr[8] >> 30u);
|
|
aot_gpr_7 = (aot_gpr_7 + ctx.gpr[8]);
|
|
aot_gpr_7 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_7) >> 4u));
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_7) <= 0;
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(0u));
|
|
if (branch_taken) {
|
|
goto L_08B6D6EC;
|
|
}
|
|
goto L_08B6D690;
|
|
}
|
|
L_08B6D690:
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
goto L_08B6D694;
|
|
L_08B6D694:
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
if (ctx.gpr[9] != ctx.gpr[8]) {
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(4));
|
|
goto L_08B6D6A8;
|
|
}
|
|
goto L_08B6D6A0;
|
|
L_08B6D6A0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D778;
|
|
}
|
|
goto L_08B6D6A8;
|
|
}
|
|
L_08B6D6A8:
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
if (ctx.gpr[9] != ctx.gpr[8]) {
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(4));
|
|
goto L_08B6D6BC;
|
|
}
|
|
goto L_08B6D6B4;
|
|
L_08B6D6B4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D778;
|
|
}
|
|
goto L_08B6D6BC;
|
|
}
|
|
L_08B6D6BC:
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
if (ctx.gpr[9] != ctx.gpr[8]) {
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(4));
|
|
goto L_08B6D6D0;
|
|
}
|
|
goto L_08B6D6C8;
|
|
L_08B6D6C8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D778;
|
|
}
|
|
goto L_08B6D6D0;
|
|
}
|
|
L_08B6D6D0:
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[9] != ctx.gpr[8];
|
|
aot_gpr_7 = (aot_gpr_7 + static_cast<std::uint32_t>(-1));
|
|
if (branch_taken) {
|
|
goto L_08B6D6E4;
|
|
}
|
|
goto L_08B6D6DC;
|
|
}
|
|
L_08B6D6DC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D778;
|
|
}
|
|
goto L_08B6D6E4;
|
|
}
|
|
L_08B6D6E4:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_7) > 0;
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(4));
|
|
if (branch_taken) {
|
|
goto L_08B6D694;
|
|
}
|
|
goto L_08B6D6EC;
|
|
}
|
|
L_08B6D6EC:
|
|
aot_gpr_7 = (aot_gpr_5 - aot_gpr_4);
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_7) >> 2u));
|
|
ctx.gpr[8] = (ctx.gpr[8] >> 30u);
|
|
aot_gpr_7 = (aot_gpr_7 + ctx.gpr[8]);
|
|
aot_gpr_7 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_7) >> 2u));
|
|
ctx.gpr[8] = (static_cast<std::int32_t>(aot_gpr_7) < 2 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[8] == 0u;
|
|
ctx.gpr[8] = (static_cast<std::int32_t>(aot_gpr_7) < 3 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D720;
|
|
}
|
|
goto L_08B6D70C;
|
|
}
|
|
L_08B6D70C:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_7) <= 0;
|
|
ctx.gpr[2] = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D778;
|
|
}
|
|
goto L_08B6D714;
|
|
}
|
|
L_08B6D714:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
if (branch_taken) {
|
|
goto L_08B6D764;
|
|
}
|
|
goto L_08B6D71C;
|
|
}
|
|
L_08B6D71C:
|
|
ctx.gpr[8] = (static_cast<std::int32_t>(aot_gpr_7) < 3 ? 1u : 0u);
|
|
goto L_08B6D720;
|
|
L_08B6D720:
|
|
{ const bool branch_taken = ctx.gpr[8] != 0u;
|
|
aot_gpr_7 = (static_cast<std::int32_t>(aot_gpr_7) < 4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D748;
|
|
}
|
|
goto L_08B6D728;
|
|
}
|
|
L_08B6D728:
|
|
{ const bool branch_taken = aot_gpr_7 == 0u;
|
|
ctx.gpr[2] = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D778;
|
|
}
|
|
goto L_08B6D730;
|
|
}
|
|
L_08B6D730:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
if (aot_gpr_7 != ctx.gpr[8]) {
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(4));
|
|
goto L_08B6D748;
|
|
}
|
|
goto L_08B6D740;
|
|
L_08B6D740:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D778;
|
|
}
|
|
goto L_08B6D748;
|
|
}
|
|
L_08B6D748:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
if (aot_gpr_7 != ctx.gpr[8]) {
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(4));
|
|
goto L_08B6D760;
|
|
}
|
|
goto L_08B6D758;
|
|
L_08B6D758:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D778;
|
|
}
|
|
goto L_08B6D760;
|
|
}
|
|
L_08B6D760:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
goto L_08B6D764;
|
|
L_08B6D764:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = aot_gpr_7 != aot_gpr_6;
|
|
ctx.gpr[2] = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D778;
|
|
}
|
|
goto L_08B6D770;
|
|
}
|
|
L_08B6D770:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D778;
|
|
}
|
|
goto L_08B6D778;
|
|
}
|
|
L_08B6D778:
|
|
jump_target = ctx.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_08B6D780:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(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)));
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(0), aot_gpr_6);
|
|
jump_target = ctx.gpr[31];
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(4), aot_gpr_5);
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B6D794:
|
|
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>(4), ctx.gpr[17]);
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
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>(8), ctx.gpr[31]);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D848;
|
|
}
|
|
goto L_08B6D7B0;
|
|
}
|
|
L_08B6D7B0:
|
|
aot_gpr_4 = (2235u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-26564));
|
|
{ const bool branch_taken = ctx.gpr[17] == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6D830;
|
|
}
|
|
goto L_08B6D7C0;
|
|
}
|
|
L_08B6D7C0:
|
|
aot_gpr_4 = (2235u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-28580));
|
|
{ const bool branch_taken = ctx.gpr[17] == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6D830;
|
|
}
|
|
goto L_08B6D7D0;
|
|
}
|
|
L_08B6D7D0:
|
|
aot_gpr_4 = (2235u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-28596));
|
|
{ const bool branch_taken = ctx.gpr[17] == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6D830;
|
|
}
|
|
goto L_08B6D7E0;
|
|
}
|
|
L_08B6D7E0:
|
|
aot_gpr_4 = (2235u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-28612));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
aot_gpr_4 = (ctx.gpr[17] + static_cast<std::uint32_t>(16));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6D81C;
|
|
}
|
|
goto L_08B6D7F8;
|
|
}
|
|
L_08B6D7F8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(88)));
|
|
aot_gpr_4 = (aot_gpr_4 & 1u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6D81C;
|
|
}
|
|
goto L_08B6D808;
|
|
}
|
|
L_08B6D808:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(80)));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6D81C;
|
|
}
|
|
goto L_08B6D814;
|
|
}
|
|
L_08B6D814:
|
|
ctx.gpr[31] = (0x08B6D81Cu);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D81Cu) goto L_08B6D81C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D81C:
|
|
{ const bool branch_taken = ctx.gpr[17] == 0u;
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
if (branch_taken) {
|
|
goto L_08B6D834;
|
|
}
|
|
goto L_08B6D824;
|
|
}
|
|
L_08B6D824:
|
|
aot_gpr_4 = (2235u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-28628));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
goto L_08B6D830;
|
|
L_08B6D830:
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
goto L_08B6D834;
|
|
L_08B6D834:
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_4 = (2237u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B6D848;
|
|
}
|
|
goto L_08B6D83C;
|
|
}
|
|
L_08B6D83C:
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B6D848u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-29120));
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE8F4, 174u, 556u, 0x08ABE8F4u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 556u, 0x08ABE8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D848u) goto L_08B6D848;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D848:
|
|
{ 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];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6D85C:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, ctx.gpr[17], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D8BC;
|
|
}
|
|
goto L_08B6D878;
|
|
}
|
|
L_08B6D878:
|
|
aot_gpr_4 = (2234u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(27568));
|
|
{ const bool branch_taken = ctx.gpr[17] == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(108), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6D8A8;
|
|
}
|
|
goto L_08B6D888;
|
|
}
|
|
L_08B6D888:
|
|
aot_gpr_4 = (2235u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-26548));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(108), aot_gpr_4);
|
|
ctx.gpr[31] = (0x08B6D89Cu);
|
|
aot_gpr_4 = (ctx.gpr[17] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D89Cu) goto L_08B6D89C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D89C:
|
|
aot_gpr_4 = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B6D8A8u);
|
|
aot_gpr_5 = (0u | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 161u, 0x08AACB80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D8A8u) goto L_08B6D8A8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D8A8:
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6D8BC;
|
|
}
|
|
goto L_08B6D8B4;
|
|
}
|
|
L_08B6D8B4:
|
|
ctx.gpr[31] = (0x08B6D8BCu);
|
|
aot_gpr_4 = (ctx.gpr[17] | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2C0, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D8BCu) goto L_08B6D8BC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D8BC:
|
|
{ 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];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6D8D0:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, ctx.gpr[17], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D918;
|
|
}
|
|
goto L_08B6D8EC;
|
|
}
|
|
L_08B6D8EC:
|
|
aot_gpr_4 = (2234u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(27352));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(92), aot_gpr_4);
|
|
aot_gpr_4 = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B6D904u);
|
|
aot_gpr_5 = (0u | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 266u, 0x08AAD844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D904u) goto L_08B6D904;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D904:
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6D918;
|
|
}
|
|
goto L_08B6D910;
|
|
}
|
|
L_08B6D910:
|
|
ctx.gpr[31] = (0x08B6D918u);
|
|
aot_gpr_4 = (ctx.gpr[17] | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2C0, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D918u) goto L_08B6D918;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D918:
|
|
{ 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];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6D92C:
|
|
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), ctx.gpr[31]);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_6 = (2234u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B6D978;
|
|
}
|
|
goto L_08B6D93C;
|
|
}
|
|
L_08B6D93C:
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(27760));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(36), aot_gpr_6);
|
|
if (branch_taken) {
|
|
goto L_08B6D964;
|
|
}
|
|
goto L_08B6D948;
|
|
}
|
|
L_08B6D948:
|
|
aot_gpr_6 = (2234u << 16u);
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(20576));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(36), aot_gpr_6);
|
|
if (branch_taken) {
|
|
goto L_08B6D964;
|
|
}
|
|
goto L_08B6D958;
|
|
}
|
|
L_08B6D958:
|
|
aot_gpr_6 = (2234u << 16u);
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(22544));
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(36), aot_gpr_6);
|
|
goto L_08B6D964;
|
|
L_08B6D964:
|
|
aot_gpr_5 = (aot_gpr_5 & 1u);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6D978;
|
|
}
|
|
goto L_08B6D970;
|
|
}
|
|
L_08B6D970:
|
|
ctx.gpr[31] = (0x08B6D978u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2C0, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D978u) goto L_08B6D978;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D978:
|
|
ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
|
|
jump_target = ctx.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_08B6D984:
|
|
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), ctx.gpr[31]);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_6 = (2235u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B6D9C4;
|
|
}
|
|
goto L_08B6D994;
|
|
}
|
|
L_08B6D994:
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(-26188));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(4), aot_gpr_6);
|
|
if (branch_taken) {
|
|
goto L_08B6D9AC;
|
|
}
|
|
goto L_08B6D9A0;
|
|
}
|
|
L_08B6D9A0:
|
|
aot_gpr_6 = (2235u << 16u);
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(-28628));
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(4), aot_gpr_6);
|
|
goto L_08B6D9AC;
|
|
L_08B6D9AC:
|
|
aot_gpr_5 = (aot_gpr_5 & 1u);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
aot_gpr_5 = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6D9C4;
|
|
}
|
|
goto L_08B6D9B8;
|
|
}
|
|
L_08B6D9B8:
|
|
aot_gpr_4 = (2237u << 16u);
|
|
ctx.gpr[31] = (0x08B6D9C4u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-29120));
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE8F4, 174u, 556u, 0x08ABE8F4u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 556u, 0x08ABE8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D9C4u) goto L_08B6D9C4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6D9C4:
|
|
ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
|
|
jump_target = ctx.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_08B6D9D0:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (0u | 96u);
|
|
aot_gpr_5 = (aot_gpr_5 - aot_gpr_6);
|
|
{ const std::int32_t dividend = static_cast<std::int32_t>(aot_gpr_5); const std::int32_t divisor = static_cast<std::int32_t>(aot_gpr_7); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast<std::uint32_t>(dividend); } else if (dividend == static_cast<std::int32_t>(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast<std::uint32_t>(dividend / divisor); ctx.hi = static_cast<std::uint32_t>(dividend % divisor); } }
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_5 = (ctx.lo);
|
|
aot_gpr_6 = (aot_gpr_6 + aot_gpr_5);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (aot_gpr_7 | 128u);
|
|
aot_mem.aot_direct_store8(aot_gpr_6 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(aot_gpr_7));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_6 = (static_cast<std::int32_t>(aot_gpr_5) < static_cast<std::int32_t>(aot_gpr_6) ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_6 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6DA0C;
|
|
}
|
|
goto L_08B6DA08;
|
|
}
|
|
L_08B6DA08:
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(12), aot_gpr_5);
|
|
goto L_08B6DA0C;
|
|
L_08B6DA0C:
|
|
jump_target = ctx.gpr[31];
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B6DA14:
|
|
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), ctx.gpr[31]);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_6 = (2235u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B6DA60;
|
|
}
|
|
goto L_08B6DA24;
|
|
}
|
|
L_08B6DA24:
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(-26172));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(36), aot_gpr_6);
|
|
if (branch_taken) {
|
|
goto L_08B6DA4C;
|
|
}
|
|
goto L_08B6DA30;
|
|
}
|
|
L_08B6DA30:
|
|
aot_gpr_6 = (2234u << 16u);
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(20576));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(36), aot_gpr_6);
|
|
if (branch_taken) {
|
|
goto L_08B6DA4C;
|
|
}
|
|
goto L_08B6DA40;
|
|
}
|
|
L_08B6DA40:
|
|
aot_gpr_6 = (2234u << 16u);
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(22544));
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(36), aot_gpr_6);
|
|
goto L_08B6DA4C;
|
|
L_08B6DA4C:
|
|
aot_gpr_5 = (aot_gpr_5 & 1u);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6DA60;
|
|
}
|
|
goto L_08B6DA58;
|
|
}
|
|
L_08B6DA58:
|
|
ctx.gpr[31] = (0x08B6DA60u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2C0, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6DA60u) goto L_08B6DA60;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6DA60:
|
|
ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
|
|
jump_target = ctx.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_08B6DA6C:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (0u | 96u);
|
|
aot_gpr_5 = (aot_gpr_5 - aot_gpr_6);
|
|
{ const std::int32_t dividend = static_cast<std::int32_t>(aot_gpr_5); const std::int32_t divisor = static_cast<std::int32_t>(aot_gpr_7); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast<std::uint32_t>(dividend); } else if (dividend == static_cast<std::int32_t>(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast<std::uint32_t>(dividend / divisor); ctx.hi = static_cast<std::uint32_t>(dividend % divisor); } }
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_5 = (ctx.lo);
|
|
aot_gpr_6 = (aot_gpr_6 + aot_gpr_5);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (aot_gpr_7 | 128u);
|
|
aot_mem.aot_direct_store8(aot_gpr_6 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(aot_gpr_7));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_6 = (static_cast<std::int32_t>(aot_gpr_5) < static_cast<std::int32_t>(aot_gpr_6) ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_6 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6DAA8;
|
|
}
|
|
goto L_08B6DAA4;
|
|
}
|
|
L_08B6DAA4:
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(12), aot_gpr_5);
|
|
goto L_08B6DAA8;
|
|
L_08B6DAA8:
|
|
jump_target = ctx.gpr[31];
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B6DAB0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_6 = (0u | 96u);
|
|
aot_gpr_4 = (aot_gpr_5 - aot_gpr_4);
|
|
{ const std::int32_t dividend = static_cast<std::int32_t>(aot_gpr_4); const std::int32_t divisor = static_cast<std::int32_t>(aot_gpr_6); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast<std::uint32_t>(dividend); } else if (dividend == static_cast<std::int32_t>(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast<std::uint32_t>(dividend / divisor); ctx.hi = static_cast<std::uint32_t>(dividend % divisor); } }
|
|
ctx.gpr[2] = (ctx.lo);
|
|
jump_target = ctx.gpr[31];
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B6DACC:
|
|
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>(4), ctx.gpr[17]);
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
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>(8), ctx.gpr[31]);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6DB2C;
|
|
}
|
|
goto L_08B6DAE8;
|
|
}
|
|
L_08B6DAE8:
|
|
aot_gpr_4 = (ctx.gpr[17] + static_cast<std::uint32_t>(16));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
if (branch_taken) {
|
|
goto L_08B6DB1C;
|
|
}
|
|
goto L_08B6DAF4;
|
|
}
|
|
L_08B6DAF4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(88)));
|
|
aot_gpr_4 = (aot_gpr_4 & 1u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
if (branch_taken) {
|
|
goto L_08B6DB1C;
|
|
}
|
|
goto L_08B6DB04;
|
|
}
|
|
L_08B6DB04:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(80)));
|
|
if (aot_gpr_4 == 0u) {
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
goto L_08B6DB1C;
|
|
}
|
|
goto L_08B6DB10;
|
|
L_08B6DB10:
|
|
ctx.gpr[31] = (0x08B6DB18u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6DB18u) goto L_08B6DB18;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6DB18:
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
goto L_08B6DB1C;
|
|
L_08B6DB1C:
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6DB2C;
|
|
}
|
|
goto L_08B6DB24;
|
|
}
|
|
L_08B6DB24:
|
|
ctx.gpr[31] = (0x08B6DB2Cu);
|
|
aot_gpr_4 = (ctx.gpr[17] | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2C0, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6DB2Cu) goto L_08B6DB2C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6DB2C:
|
|
{ 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];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6DB40:
|
|
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), ctx.gpr[31]);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_6 = (2235u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B6DB80;
|
|
}
|
|
goto L_08B6DB50;
|
|
}
|
|
L_08B6DB50:
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(-25908));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(4), aot_gpr_6);
|
|
if (branch_taken) {
|
|
goto L_08B6DB68;
|
|
}
|
|
goto L_08B6DB5C;
|
|
}
|
|
L_08B6DB5C:
|
|
aot_gpr_6 = (2235u << 16u);
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(-28628));
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(4), aot_gpr_6);
|
|
goto L_08B6DB68;
|
|
L_08B6DB68:
|
|
aot_gpr_5 = (aot_gpr_5 & 1u);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
aot_gpr_5 = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6DB80;
|
|
}
|
|
goto L_08B6DB74;
|
|
}
|
|
L_08B6DB74:
|
|
aot_gpr_4 = (2237u << 16u);
|
|
ctx.gpr[31] = (0x08B6DB80u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-29120));
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE8F4, 174u, 556u, 0x08ABE8F4u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 556u, 0x08ABE8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6DB80u) goto L_08B6DB80;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6DB80:
|
|
ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
|
|
jump_target = ctx.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_08B6DB8C:
|
|
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>(4), ctx.gpr[17]);
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
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>(8), ctx.gpr[18]);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), ctx.gpr[31]);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6DBD8;
|
|
}
|
|
goto L_08B6DBAC;
|
|
}
|
|
L_08B6DBAC:
|
|
aot_gpr_4 = (aot_gpr_16 + static_cast<std::uint32_t>(12));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[31] = (0x08B6DBBCu);
|
|
aot_gpr_4 = (ctx.gpr[17] | 0u);
|
|
goto L_08B6DB8C;
|
|
L_08B6DBBC:
|
|
aot_gpr_4 = (aot_gpr_16 + static_cast<std::uint32_t>(8));
|
|
{ const bool branch_taken = aot_gpr_16 == 0u;
|
|
ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
if (branch_taken) {
|
|
goto L_08B6DBD0;
|
|
}
|
|
goto L_08B6DBC8;
|
|
}
|
|
L_08B6DBC8:
|
|
ctx.gpr[31] = (0x08B6DBD0u);
|
|
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_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6DBD0u) goto L_08B6DBD0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6DBD0:
|
|
{ const bool branch_taken = ctx.gpr[18] != 0u;
|
|
aot_gpr_16 = (ctx.gpr[18] | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6DBAC;
|
|
}
|
|
goto L_08B6DBD8;
|
|
}
|
|
L_08B6DBD8:
|
|
{ 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];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[31] = aot_run_words[3];
|
|
}
|
|
jump_target = ctx.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_08B6DBF0:
|
|
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>(4), ctx.gpr[17]);
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
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>(8), ctx.gpr[31]);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6DC7C;
|
|
}
|
|
goto L_08B6DC0C;
|
|
}
|
|
L_08B6DC0C:
|
|
aot_gpr_4 = (2235u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-25860));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
aot_gpr_4 = (ctx.gpr[17] + static_cast<std::uint32_t>(72));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6DC40;
|
|
}
|
|
goto L_08B6DC24;
|
|
}
|
|
L_08B6DC24:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(76)));
|
|
aot_gpr_5 = (ctx.gpr[28] + static_cast<std::uint32_t>(5824));
|
|
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
|
|
aot_gpr_5 = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6DC40;
|
|
}
|
|
goto L_08B6DC34;
|
|
}
|
|
L_08B6DC34:
|
|
aot_gpr_4 = (2236u << 16u);
|
|
ctx.gpr[31] = (0x08B6DC40u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(25856));
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE8F4, 174u, 556u, 0x08ABE8F4u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 556u, 0x08ABE8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6DC40u) goto L_08B6DC40;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6DC40:
|
|
{ const bool branch_taken = ctx.gpr[17] == 0u;
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
if (branch_taken) {
|
|
goto L_08B6DC6C;
|
|
}
|
|
goto L_08B6DC48;
|
|
}
|
|
L_08B6DC48:
|
|
aot_gpr_4 = (2235u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-25876));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
{ const bool branch_taken = ctx.gpr[17] == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast<std::uint32_t>(5868), 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6DC68;
|
|
}
|
|
goto L_08B6DC5C;
|
|
}
|
|
L_08B6DC5C:
|
|
aot_gpr_4 = (2235u << 16u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-28772));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
goto L_08B6DC68;
|
|
L_08B6DC68:
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
goto L_08B6DC6C;
|
|
L_08B6DC6C:
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6DC7C;
|
|
}
|
|
goto L_08B6DC74;
|
|
}
|
|
L_08B6DC74:
|
|
ctx.gpr[31] = (0x08B6DC7Cu);
|
|
aot_gpr_4 = (ctx.gpr[17] | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2C0, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6DC7Cu) goto L_08B6DC7C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6DC7C:
|
|
{ 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];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6DC90:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(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)));
|
|
ctx.gpr[8] = (2234u << 16u);
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(0), 0u);
|
|
ctx.gpr[8] = (ctx.gpr[8] + static_cast<std::uint32_t>(30744));
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(4), ctx.gpr[8]);
|
|
ctx.gpr[8] = (aot_gpr_4 + static_cast<std::uint32_t>(8));
|
|
aot_mem.aot_direct_store32(ctx.gpr[8] + static_cast<std::uint32_t>(0), aot_gpr_7);
|
|
aot_mem.aot_direct_store32(ctx.gpr[8] + static_cast<std::uint32_t>(4), aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(16), aot_gpr_6);
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B6DCC0:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(32), aot_gpr_7);
|
|
ctx.gpr[9] = (ctx.gpr[8] & 255u);
|
|
ctx.gpr[10] = (aot_gpr_6 | 0u);
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(16)));
|
|
aot_gpr_6 = (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>(8))))));
|
|
aot_gpr_7 = (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>(10))))));
|
|
ctx.gpr[8] = (ctx.gpr[8] + aot_gpr_6);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
{ const bool branch_taken = aot_gpr_7 == 0u;
|
|
aot_gpr_4 = (ctx.gpr[10] | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6DD10;
|
|
}
|
|
goto L_08B6DCF0;
|
|
}
|
|
L_08B6DCF0:
|
|
aot_gpr_6 = (ctx.gpr[8] + aot_gpr_6);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (aot_gpr_7 << 3u);
|
|
aot_gpr_6 = (aot_gpr_6 + aot_gpr_7);
|
|
aot_gpr_7 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(aot_gpr_6 + static_cast<std::uint32_t>(0))))));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[8] = (ctx.gpr[8] + aot_gpr_7);
|
|
if (branch_taken) {
|
|
goto L_08B6DD10;
|
|
}
|
|
goto L_08B6DD10;
|
|
}
|
|
L_08B6DD10:
|
|
ctx.gpr[11] = (aot_gpr_6 | 0u);
|
|
aot_gpr_6 = (aot_gpr_4 | 0u);
|
|
aot_gpr_4 = (ctx.gpr[8] | 0u);
|
|
aot_gpr_7 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast<std::uint32_t>(32))))));
|
|
jump_target = ctx.gpr[11];
|
|
ctx.gpr[31] = (0x08B6DD28u);
|
|
ctx.gpr[8] = (ctx.gpr[9] | 0u);
|
|
ctx.pc = jump_target;
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6DD28u) goto L_08B6DD28;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6DD28:
|
|
ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.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_08B6DD34:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-48));
|
|
{ const std::uint32_t aot_run_words[4]{aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_run_words); }
|
|
ctx.gpr[17] = (aot_gpr_5 | 0u);
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_5 = (ctx.gpr[9] | 0u);
|
|
aot_gpr_4 = (aot_gpr_7 | 0u);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
if (aot_gpr_4 == aot_gpr_7) {
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_gpr_4);
|
|
goto L_08B6DD98;
|
|
}
|
|
goto L_08B6DD64;
|
|
L_08B6DD64:
|
|
if (aot_gpr_5 != 0u) {
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_gpr_4);
|
|
goto L_08B6DE4C;
|
|
}
|
|
goto L_08B6DD6C;
|
|
L_08B6DD6C:
|
|
if (aot_gpr_6 != 0u) {
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_gpr_4);
|
|
goto L_08B6DD98;
|
|
}
|
|
goto L_08B6DD74;
|
|
L_08B6DD74:
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(1), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[8] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(16)));
|
|
aot_gpr_5 = (static_cast<std::int32_t>(aot_gpr_5) < static_cast<std::int32_t>(aot_gpr_6) ? 1u : 0u);
|
|
aot_gpr_5 = (aot_gpr_5 & 255u);
|
|
if (aot_gpr_5 == 0u) {
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_gpr_4);
|
|
goto L_08B6DE4C;
|
|
}
|
|
goto L_08B6DD94;
|
|
L_08B6DD94:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_gpr_4);
|
|
goto L_08B6DD98;
|
|
L_08B6DD98:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[8]);
|
|
aot_gpr_4 = (0u | 28u);
|
|
ctx.gpr[31] = (0x08B6DDA8u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_gpr_4);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6DDA8u) goto L_08B6DDA8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6DDA8:
|
|
ctx.gpr[18] = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(12)));
|
|
{ const bool branch_taken = ctx.gpr[18] != 0u;
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
|
|
if (branch_taken) {
|
|
goto L_08B6DDD8;
|
|
}
|
|
goto L_08B6DDBC;
|
|
}
|
|
L_08B6DDBC:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_gpr_4);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[8]);
|
|
ctx.gpr[31] = (0x08B6DDCCu);
|
|
aot_gpr_4 = (aot_gpr_5 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 289u, 0x08B65438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6DDCCu) goto L_08B6DDCC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6DDCC:
|
|
ctx.gpr[18] = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
|
|
goto L_08B6DDD8;
|
|
L_08B6DDD8:
|
|
aot_gpr_5 = (ctx.gpr[18] + static_cast<std::uint32_t>(16));
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6DDFC;
|
|
}
|
|
goto L_08B6DDE4;
|
|
}
|
|
L_08B6DDE4:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[8] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(0), aot_gpr_6);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[8] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(4), aot_gpr_6);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[8] + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store8(aot_gpr_5 + static_cast<std::uint32_t>(8), static_cast<std::uint8_t>(aot_gpr_6));
|
|
goto L_08B6DDFC;
|
|
L_08B6DDFC:
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(8));
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(0), ctx.gpr[18]);
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_6 = (ctx.gpr[18] + static_cast<std::uint32_t>(4));
|
|
aot_gpr_7 = (ctx.gpr[18] + static_cast<std::uint32_t>(8));
|
|
{ const bool branch_taken = aot_gpr_4 != ctx.gpr[9];
|
|
ctx.gpr[8] = (ctx.gpr[18] + static_cast<std::uint32_t>(12));
|
|
if (branch_taken) {
|
|
goto L_08B6DE34;
|
|
}
|
|
goto L_08B6DE1C;
|
|
}
|
|
L_08B6DE1C:
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(4));
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(0), ctx.gpr[18]);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(12));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(0), ctx.gpr[18]);
|
|
if (branch_taken) {
|
|
goto L_08B6DED8;
|
|
}
|
|
goto L_08B6DE34;
|
|
}
|
|
L_08B6DE34:
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(8));
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = aot_gpr_4 != ctx.gpr[9];
|
|
if (branch_taken) {
|
|
goto L_08B6DED8;
|
|
}
|
|
goto L_08B6DE44;
|
|
}
|
|
L_08B6DE44:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(0), ctx.gpr[18]);
|
|
if (branch_taken) {
|
|
goto L_08B6DED8;
|
|
}
|
|
goto L_08B6DE4C;
|
|
}
|
|
L_08B6DE4C:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[8]);
|
|
aot_gpr_4 = (0u | 28u);
|
|
ctx.gpr[31] = (0x08B6DE5Cu);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6DE5Cu) goto L_08B6DE5C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6DE5C:
|
|
ctx.gpr[18] = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(8)));
|
|
{ const bool branch_taken = ctx.gpr[18] != 0u;
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
|
|
if (branch_taken) {
|
|
goto L_08B6DE8C;
|
|
}
|
|
goto L_08B6DE70;
|
|
}
|
|
L_08B6DE70:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_gpr_4);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[8]);
|
|
ctx.gpr[31] = (0x08B6DE80u);
|
|
aot_gpr_4 = (aot_gpr_5 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 289u, 0x08B65438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6DE80u) goto L_08B6DE80;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6DE80:
|
|
ctx.gpr[18] = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
|
|
goto L_08B6DE8C;
|
|
L_08B6DE8C:
|
|
aot_gpr_5 = (ctx.gpr[18] + static_cast<std::uint32_t>(16));
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6DEB0;
|
|
}
|
|
goto L_08B6DE98;
|
|
}
|
|
L_08B6DE98:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[8] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(0), aot_gpr_6);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[8] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(4), aot_gpr_6);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[8] + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store8(aot_gpr_5 + static_cast<std::uint32_t>(8), static_cast<std::uint8_t>(aot_gpr_6));
|
|
goto L_08B6DEB0;
|
|
L_08B6DEB0:
|
|
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(12));
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(0), ctx.gpr[18]);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(12));
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_6 = (ctx.gpr[18] + static_cast<std::uint32_t>(4));
|
|
aot_gpr_7 = (ctx.gpr[18] + static_cast<std::uint32_t>(8));
|
|
{ const bool branch_taken = aot_gpr_4 != ctx.gpr[9];
|
|
ctx.gpr[8] = (ctx.gpr[18] + static_cast<std::uint32_t>(12));
|
|
if (branch_taken) {
|
|
goto L_08B6DED8;
|
|
}
|
|
goto L_08B6DED4;
|
|
}
|
|
L_08B6DED4:
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(0), ctx.gpr[18]);
|
|
goto L_08B6DED8;
|
|
L_08B6DED8:
|
|
aot_mem.aot_direct_store32(aot_gpr_6 + static_cast<std::uint32_t>(0), aot_gpr_4);
|
|
aot_mem.aot_direct_store32(aot_gpr_7 + static_cast<std::uint32_t>(0), 0u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[8] + static_cast<std::uint32_t>(0), 0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(4));
|
|
ctx.gpr[31] = (0x08B6DEF4u);
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 368u, 0x08B6A46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6DEF4u) goto L_08B6DEF4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6DEF4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(1));
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), ctx.gpr[18]);
|
|
{ std::uint32_t aot_run_words[4]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[31] = aot_run_words[3];
|
|
}
|
|
jump_target = ctx.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_08B6DF1C:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[4]{aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6DF70;
|
|
}
|
|
goto L_08B6DF3C;
|
|
}
|
|
L_08B6DF3C:
|
|
aot_gpr_4 = (aot_gpr_16 + static_cast<std::uint32_t>(12));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[31] = (0x08B6DF4Cu);
|
|
aot_gpr_4 = (ctx.gpr[17] | 0u);
|
|
goto L_08B6DF1C;
|
|
L_08B6DF4C:
|
|
aot_gpr_4 = (aot_gpr_16 + static_cast<std::uint32_t>(8));
|
|
ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = aot_gpr_16 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6DF64;
|
|
}
|
|
goto L_08B6DF5C;
|
|
}
|
|
L_08B6DF5C:
|
|
ctx.gpr[31] = (0x08B6DF64u);
|
|
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_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6DF64u) goto L_08B6DF64;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6DF64:
|
|
aot_gpr_16 = (ctx.gpr[18] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[18] != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6DF3C;
|
|
}
|
|
goto L_08B6DF70;
|
|
}
|
|
L_08B6DF70:
|
|
{ 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];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[31] = aot_run_words[3];
|
|
}
|
|
jump_target = ctx.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_08B6DF88:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-64));
|
|
{ const std::uint32_t aot_run_words[6]{aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(32), aot_run_words); }
|
|
ctx.gpr[18] = (aot_gpr_4 | 0u);
|
|
ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (ctx.gpr[20] + static_cast<std::uint32_t>(4));
|
|
ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (0u | 1u);
|
|
ctx.gpr[17] = (aot_gpr_5 | 0u);
|
|
{ const bool branch_taken = ctx.gpr[19] == 0u;
|
|
aot_gpr_16 = (aot_gpr_6 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6DFFC;
|
|
}
|
|
goto L_08B6DFC4;
|
|
}
|
|
L_08B6DFC4:
|
|
ctx.gpr[20] = (ctx.gpr[19] | 0u);
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(8), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(29), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(16)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < static_cast<std::int32_t>(aot_gpr_5) ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_5 = (ctx.gpr[19] + static_cast<std::uint32_t>(12));
|
|
if (branch_taken) {
|
|
goto L_08B6DFF0;
|
|
}
|
|
goto L_08B6DFE4;
|
|
}
|
|
L_08B6DFE4:
|
|
aot_gpr_5 = (ctx.gpr[19] + static_cast<std::uint32_t>(8));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
if (branch_taken) {
|
|
goto L_08B6DFF4;
|
|
}
|
|
goto L_08B6DFF0;
|
|
}
|
|
L_08B6DFF0:
|
|
ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
goto L_08B6DFF4;
|
|
L_08B6DFF4:
|
|
{ const bool branch_taken = ctx.gpr[19] != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6DFC4;
|
|
}
|
|
goto L_08B6DFFC;
|
|
}
|
|
L_08B6DFFC:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[20]);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E070;
|
|
}
|
|
goto L_08B6E008;
|
|
}
|
|
L_08B6E008:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(8));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_gpr_4);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_4 = (aot_gpr_5 ^ aot_gpr_4);
|
|
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_08B6E040;
|
|
}
|
|
goto L_08B6E030;
|
|
}
|
|
L_08B6E030:
|
|
ctx.gpr[31] = (0x08B6E038u);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 401u, 0x08B6A64Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E038u) goto L_08B6E038;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6E038:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[2]);
|
|
if (branch_taken) {
|
|
goto L_08B6E070;
|
|
}
|
|
goto L_08B6E040;
|
|
}
|
|
L_08B6E040:
|
|
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_6 = (ctx.gpr[20] | 0u);
|
|
aot_gpr_7 = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[8] = (aot_gpr_16 | 0u);
|
|
ctx.gpr[31] = (0x08B6E05Cu);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
goto L_08B6DD34;
|
|
L_08B6E05C:
|
|
aot_gpr_4 = (0u | 1u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast<std::uint32_t>(4), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B6E0D8;
|
|
}
|
|
goto L_08B6E070;
|
|
}
|
|
L_08B6E070:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(30), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < static_cast<std::int32_t>(aot_gpr_5) ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E0C8;
|
|
}
|
|
goto L_08B6E098;
|
|
}
|
|
L_08B6E098:
|
|
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(24));
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_6 = (ctx.gpr[19] | 0u);
|
|
aot_gpr_7 = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[8] = (aot_gpr_16 | 0u);
|
|
ctx.gpr[31] = (0x08B6E0B4u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
goto L_08B6DD34;
|
|
L_08B6E0B4:
|
|
aot_gpr_4 = (0u | 1u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), aot_gpr_5);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast<std::uint32_t>(4), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B6E0D8;
|
|
}
|
|
goto L_08B6E0C8;
|
|
}
|
|
L_08B6E0C8:
|
|
aot_gpr_4 = (0u | 0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), aot_gpr_5);
|
|
aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast<std::uint32_t>(4), static_cast<std::uint8_t>(aot_gpr_4));
|
|
goto L_08B6E0D8;
|
|
L_08B6E0D8:
|
|
{ std::uint32_t aot_run_words[6]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(32), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[19] = aot_run_words[3];
|
|
ctx.gpr[20] = aot_run_words[4];
|
|
ctx.gpr[31] = aot_run_words[5];
|
|
}
|
|
jump_target = ctx.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_08B6E0F8:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-112));
|
|
{ const std::uint32_t aot_run_words[6]{aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(80), aot_run_words); }
|
|
ctx.gpr[20] = (aot_gpr_6 | 0u);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(ctx.gpr[8] + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[18] = (aot_gpr_4 | 0u);
|
|
ctx.gpr[17] = (aot_gpr_5 | 0u);
|
|
{ const bool branch_taken = aot_gpr_6 != ctx.gpr[8];
|
|
aot_gpr_16 = (aot_gpr_7 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6E2C4;
|
|
}
|
|
goto L_08B6E134;
|
|
}
|
|
L_08B6E134:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E18C;
|
|
}
|
|
goto L_08B6E140;
|
|
}
|
|
L_08B6E140:
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(4), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(72), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_5) < static_cast<std::int32_t>(aot_gpr_4) ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E1A8;
|
|
}
|
|
goto L_08B6E168;
|
|
}
|
|
L_08B6E168:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
aot_gpr_6 = (aot_gpr_7 | 0u);
|
|
ctx.gpr[8] = (aot_gpr_16 | 0u);
|
|
ctx.gpr[31] = (0x08B6E184u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
goto L_08B6DD34;
|
|
L_08B6E184:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E518;
|
|
}
|
|
goto L_08B6E18C;
|
|
}
|
|
L_08B6E18C:
|
|
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(8));
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[31] = (0x08B6E19Cu);
|
|
aot_gpr_6 = (aot_gpr_16 | 0u);
|
|
goto L_08B6DF88;
|
|
L_08B6E19C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(8)));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6E518;
|
|
}
|
|
goto L_08B6E1A8;
|
|
}
|
|
L_08B6E1A8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(73), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(16), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < static_cast<std::int32_t>(aot_gpr_5) ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E240;
|
|
}
|
|
goto L_08B6E1CC;
|
|
}
|
|
L_08B6E1CC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_gpr_4);
|
|
ctx.gpr[31] = (0x08B6E1DCu);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E1DCu) goto L_08B6E1DC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6E1DC:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(20), ctx.gpr[2]);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[2] == aot_gpr_4;
|
|
if (branch_taken) {
|
|
goto L_08B6E21C;
|
|
}
|
|
goto L_08B6E1EC;
|
|
}
|
|
L_08B6E1EC:
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(16), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(20)));
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(74), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_5) < static_cast<std::int32_t>(aot_gpr_4) ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E24C;
|
|
}
|
|
goto L_08B6E214;
|
|
}
|
|
L_08B6E214:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E2A8;
|
|
}
|
|
goto L_08B6E21C;
|
|
}
|
|
L_08B6E21C:
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
aot_gpr_6 = (0u | 0u);
|
|
aot_gpr_7 = (ctx.gpr[9] | 0u);
|
|
ctx.gpr[31] = (0x08B6E238u);
|
|
ctx.gpr[8] = (aot_gpr_16 | 0u);
|
|
goto L_08B6DD34;
|
|
L_08B6E238:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E518;
|
|
}
|
|
goto L_08B6E240;
|
|
}
|
|
L_08B6E240:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6E518;
|
|
}
|
|
goto L_08B6E24C;
|
|
}
|
|
L_08B6E24C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(12));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E284;
|
|
}
|
|
goto L_08B6E260;
|
|
}
|
|
L_08B6E260:
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
aot_gpr_6 = (0u | 0u);
|
|
aot_gpr_7 = (ctx.gpr[9] | 0u);
|
|
ctx.gpr[31] = (0x08B6E27Cu);
|
|
ctx.gpr[8] = (aot_gpr_16 | 0u);
|
|
goto L_08B6DD34;
|
|
L_08B6E27C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E518;
|
|
}
|
|
goto L_08B6E284;
|
|
}
|
|
L_08B6E284:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(20)));
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
aot_gpr_6 = (aot_gpr_7 | 0u);
|
|
ctx.gpr[8] = (aot_gpr_16 | 0u);
|
|
ctx.gpr[31] = (0x08B6E2A0u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
goto L_08B6DD34;
|
|
L_08B6E2A0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E518;
|
|
}
|
|
goto L_08B6E2A8;
|
|
}
|
|
L_08B6E2A8:
|
|
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(24));
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[31] = (0x08B6E2B8u);
|
|
aot_gpr_6 = (aot_gpr_16 | 0u);
|
|
goto L_08B6DF88;
|
|
L_08B6E2B8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(24)));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6E518;
|
|
}
|
|
goto L_08B6E2C4;
|
|
}
|
|
L_08B6E2C4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
|
|
if (branch_taken) {
|
|
goto L_08B6E34C;
|
|
}
|
|
goto L_08B6E2D4;
|
|
}
|
|
L_08B6E2D4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(12));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(75), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(32), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < static_cast<std::int32_t>(aot_gpr_5) ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E330;
|
|
}
|
|
goto L_08B6E304;
|
|
}
|
|
L_08B6E304:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(12));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
aot_gpr_6 = (0u | 0u);
|
|
ctx.gpr[31] = (0x08B6E328u);
|
|
ctx.gpr[8] = (aot_gpr_16 | 0u);
|
|
goto L_08B6DD34;
|
|
L_08B6E328:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E518;
|
|
}
|
|
goto L_08B6E330;
|
|
}
|
|
L_08B6E330:
|
|
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(36));
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[31] = (0x08B6E340u);
|
|
aot_gpr_6 = (aot_gpr_16 | 0u);
|
|
goto L_08B6DF88;
|
|
L_08B6E340:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(36)));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6E518;
|
|
}
|
|
goto L_08B6E34C;
|
|
}
|
|
L_08B6E34C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(48), aot_gpr_4);
|
|
ctx.gpr[31] = (0x08B6E35Cu);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 401u, 0x08B6A64Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E35Cu) goto L_08B6E35C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6E35C:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(48), ctx.gpr[2]);
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(44), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(76), static_cast<std::uint8_t>(0u));
|
|
ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[19] = (static_cast<std::int32_t>(aot_gpr_4) < static_cast<std::int32_t>(ctx.gpr[19]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[19] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E408;
|
|
}
|
|
goto L_08B6E384;
|
|
}
|
|
L_08B6E384:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(48)));
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(77), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(44), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < static_cast<std::int32_t>(aot_gpr_5) ? 1u : 0u);
|
|
aot_gpr_4 = (aot_gpr_4 & 255u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E408;
|
|
}
|
|
goto L_08B6E3AC;
|
|
}
|
|
L_08B6E3AC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(48)));
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(12));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E3E4;
|
|
}
|
|
goto L_08B6E3C0;
|
|
}
|
|
L_08B6E3C0:
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(48)));
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
aot_gpr_6 = (0u | 0u);
|
|
aot_gpr_7 = (ctx.gpr[9] | 0u);
|
|
ctx.gpr[31] = (0x08B6E3DCu);
|
|
ctx.gpr[8] = (aot_gpr_16 | 0u);
|
|
goto L_08B6DD34;
|
|
L_08B6E3DC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E518;
|
|
}
|
|
goto L_08B6E3E4;
|
|
}
|
|
L_08B6E3E4:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
aot_gpr_6 = (aot_gpr_7 | 0u);
|
|
ctx.gpr[8] = (aot_gpr_16 | 0u);
|
|
ctx.gpr[31] = (0x08B6E400u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
goto L_08B6DD34;
|
|
L_08B6E400:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E518;
|
|
}
|
|
goto L_08B6E408;
|
|
}
|
|
L_08B6E408:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(56), aot_gpr_4);
|
|
ctx.gpr[31] = (0x08B6E418u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E418u) goto L_08B6E418;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6E418:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(56), ctx.gpr[2]);
|
|
aot_gpr_4 = (ctx.gpr[19] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[19] != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E444;
|
|
}
|
|
goto L_08B6E428;
|
|
}
|
|
L_08B6E428:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(78), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(60), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < static_cast<std::int32_t>(aot_gpr_5) ? 1u : 0u);
|
|
goto L_08B6E444;
|
|
L_08B6E444:
|
|
{ const bool branch_taken = ctx.gpr[19] != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E4E8;
|
|
}
|
|
goto L_08B6E44C;
|
|
}
|
|
L_08B6E44C:
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E4E8;
|
|
}
|
|
goto L_08B6E454;
|
|
}
|
|
L_08B6E454:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(56)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = aot_gpr_5 == aot_gpr_6;
|
|
if (branch_taken) {
|
|
goto L_08B6E48C;
|
|
}
|
|
goto L_08B6E464;
|
|
}
|
|
L_08B6E464:
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(52), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(56)));
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(16));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(79), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (static_cast<std::int32_t>(aot_gpr_6) < static_cast<std::int32_t>(aot_gpr_5) ? 1u : 0u);
|
|
aot_gpr_5 = (aot_gpr_5 & 255u);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E4E8;
|
|
}
|
|
goto L_08B6E48C;
|
|
}
|
|
L_08B6E48C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(12));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E4C4;
|
|
}
|
|
goto L_08B6E4A0;
|
|
}
|
|
L_08B6E4A0:
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
aot_gpr_6 = (0u | 0u);
|
|
aot_gpr_7 = (ctx.gpr[9] | 0u);
|
|
ctx.gpr[31] = (0x08B6E4BCu);
|
|
ctx.gpr[8] = (aot_gpr_16 | 0u);
|
|
goto L_08B6DD34;
|
|
L_08B6E4BC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E518;
|
|
}
|
|
goto L_08B6E4C4;
|
|
}
|
|
L_08B6E4C4:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(56)));
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
aot_gpr_6 = (aot_gpr_7 | 0u);
|
|
ctx.gpr[8] = (aot_gpr_16 | 0u);
|
|
ctx.gpr[31] = (0x08B6E4E0u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
goto L_08B6DD34;
|
|
L_08B6E4E0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E518;
|
|
}
|
|
goto L_08B6E4E8;
|
|
}
|
|
L_08B6E4E8:
|
|
{ const bool branch_taken = ctx.gpr[19] != aot_gpr_4;
|
|
if (branch_taken) {
|
|
goto L_08B6E4FC;
|
|
}
|
|
goto L_08B6E4F0;
|
|
}
|
|
L_08B6E4F0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6E518;
|
|
}
|
|
goto L_08B6E4FC;
|
|
}
|
|
L_08B6E4FC:
|
|
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(64));
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[31] = (0x08B6E50Cu);
|
|
aot_gpr_6 = (aot_gpr_16 | 0u);
|
|
goto L_08B6DF88;
|
|
L_08B6E50C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(64)));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6E518;
|
|
}
|
|
goto L_08B6E518;
|
|
}
|
|
L_08B6E518:
|
|
{ std::uint32_t aot_run_words[6]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(80), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[19] = aot_run_words[3];
|
|
ctx.gpr[20] = aot_run_words[4];
|
|
ctx.gpr[31] = aot_run_words[5];
|
|
}
|
|
jump_target = ctx.gpr[31];
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(112));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B6E538:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[18]);
|
|
ctx.gpr[18] = (aot_gpr_5 | 0u);
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_gpr_16);
|
|
{ const std::uint32_t aot_run_words[3]{ctx.gpr[19], ctx.gpr[20], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_run_words); }
|
|
ctx.gpr[31] = (0x08B6E564u);
|
|
aot_gpr_4 = (ctx.gpr[18] << 4u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E564u) goto L_08B6E564;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6E564:
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(64), ctx.gpr[2]);
|
|
aot_gpr_4 = (ctx.gpr[17] + static_cast<std::uint32_t>(16));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(12), aot_gpr_4);
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(24), ctx.gpr[17]);
|
|
aot_gpr_4 = (ctx.gpr[17] + static_cast<std::uint32_t>(48));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(44), aot_gpr_4);
|
|
ctx.gpr[20] = (ctx.gpr[17] + static_cast<std::uint32_t>(32));
|
|
ctx.gpr[19] = (ctx.gpr[18] + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(56), ctx.gpr[20]);
|
|
{ const bool branch_taken = ctx.gpr[18] == 0u;
|
|
aot_gpr_16 = (ctx.gpr[19] | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6E5B8;
|
|
}
|
|
goto L_08B6E590;
|
|
}
|
|
L_08B6E590:
|
|
ctx.gpr[18] = (ctx.gpr[19] << 4u);
|
|
goto L_08B6E594;
|
|
L_08B6E594:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(64)));
|
|
aot_gpr_4 = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[31] = (0x08B6E5A4u);
|
|
aot_gpr_5 = (aot_gpr_5 + ctx.gpr[18]);
|
|
goto L_08B6E71C;
|
|
L_08B6E5A4:
|
|
aot_gpr_4 = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[19] = (aot_gpr_16 + static_cast<std::uint32_t>(-1));
|
|
aot_gpr_16 = (ctx.gpr[19] | 0u);
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
ctx.gpr[18] = (ctx.gpr[18] + static_cast<std::uint32_t>(-16));
|
|
if (branch_taken) {
|
|
goto L_08B6E594;
|
|
}
|
|
goto L_08B6E5B8;
|
|
}
|
|
L_08B6E5B8:
|
|
{ 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);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[19] = aot_run_words[3];
|
|
ctx.gpr[20] = aot_run_words[4];
|
|
ctx.gpr[31] = aot_run_words[5];
|
|
}
|
|
jump_target = ctx.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_08B6E5D8:
|
|
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_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
|
|
ctx.gpr[17] = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[31]);
|
|
{ const bool branch_taken = aot_gpr_4 == ctx.gpr[17];
|
|
if (branch_taken) {
|
|
goto L_08B6E614;
|
|
}
|
|
goto L_08B6E5FC;
|
|
}
|
|
L_08B6E5FC:
|
|
aot_gpr_5 = (aot_gpr_4 | 0u);
|
|
ctx.gpr[31] = (0x08B6E608u);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
goto L_08B6E6DC;
|
|
L_08B6E608:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(12)));
|
|
{ const bool branch_taken = aot_gpr_4 != ctx.gpr[17];
|
|
if (branch_taken) {
|
|
goto L_08B6E5FC;
|
|
}
|
|
goto L_08B6E614;
|
|
}
|
|
L_08B6E614:
|
|
{ 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];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6E628:
|
|
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_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_7 = (aot_gpr_4 + static_cast<std::uint32_t>(16));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[31]);
|
|
{ const bool branch_taken = aot_gpr_16 == aot_gpr_7;
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(44)));
|
|
if (branch_taken) {
|
|
goto L_08B6E684;
|
|
}
|
|
goto L_08B6E648;
|
|
}
|
|
L_08B6E648:
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(4)));
|
|
goto L_08B6E64C;
|
|
L_08B6E64C:
|
|
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[8] = (0u | 0u);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 < aot_fpr_12)) ? 0x00800000u : 0u);
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.gpr[8] = (0u | 1u);
|
|
goto L_08B6E664;
|
|
}
|
|
goto L_08B6E664;
|
|
L_08B6E664:
|
|
ctx.gpr[8] = (ctx.gpr[8] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[8] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E678;
|
|
}
|
|
goto L_08B6E670;
|
|
}
|
|
L_08B6E670:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E684;
|
|
}
|
|
goto L_08B6E678;
|
|
}
|
|
L_08B6E678:
|
|
aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(12)));
|
|
{ const bool branch_taken = aot_gpr_16 != aot_gpr_7;
|
|
if (branch_taken) {
|
|
goto L_08B6E64C;
|
|
}
|
|
goto L_08B6E684;
|
|
}
|
|
L_08B6E684:
|
|
ctx.gpr[17] = (aot_gpr_6 | 0u);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(48));
|
|
{ const bool branch_taken = ctx.gpr[17] == aot_gpr_4;
|
|
if (branch_taken) {
|
|
goto L_08B6E6C4;
|
|
}
|
|
goto L_08B6E694;
|
|
}
|
|
L_08B6E694:
|
|
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
|
|
aot_gpr_4 = (ctx.gpr[17] | 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_6 + static_cast<std::uint32_t>(0), aot_gpr_5);
|
|
ctx.gpr[31] = (0x08B6E6B0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_6 + static_cast<std::uint32_t>(4), aot_gpr_7);
|
|
goto L_08B6E734;
|
|
L_08B6E6B0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[31] = (0x08B6E6BCu);
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
goto L_08B6E71C;
|
|
L_08B6E6BC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (ctx.gpr[17] | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6E6C8;
|
|
}
|
|
goto L_08B6E6C4;
|
|
}
|
|
L_08B6E6C4:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
goto L_08B6E6C8;
|
|
L_08B6E6C8:
|
|
{ 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];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6E6DC:
|
|
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), ctx.gpr[17]);
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08B6E6FCu);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
goto L_08B6E734;
|
|
L_08B6E6FC:
|
|
aot_gpr_4 = (ctx.gpr[17] + static_cast<std::uint32_t>(32));
|
|
ctx.gpr[31] = (0x08B6E708u);
|
|
aot_gpr_5 = (aot_gpr_16 | 0u);
|
|
goto L_08B6E71C;
|
|
L_08B6E708:
|
|
{ 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];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6E71C:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(12), aot_gpr_6);
|
|
aot_mem.aot_direct_store32(aot_gpr_6 + static_cast<std::uint32_t>(8), aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
jump_target = ctx.gpr[31];
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(12), aot_gpr_5);
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B6E734:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_direct_store32(aot_gpr_6 + static_cast<std::uint32_t>(8), aot_gpr_5);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
|
|
jump_target = ctx.gpr[31];
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(12), aot_gpr_4);
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B6E74C:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-64));
|
|
{ const std::uint32_t aot_run_words[6]{aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(28), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
{ const bool branch_taken = aot_gpr_5 == aot_gpr_4;
|
|
ctx.gpr[17] = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6E914;
|
|
}
|
|
goto L_08B6E774;
|
|
}
|
|
L_08B6E774:
|
|
ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[18] = (ctx.gpr[18] - aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_4 - aot_gpr_5);
|
|
aot_gpr_4 = (aot_gpr_4 < ctx.gpr[18] ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_4 = (ctx.gpr[17] | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6E830;
|
|
}
|
|
goto L_08B6E798;
|
|
}
|
|
L_08B6E798:
|
|
ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = ctx.gpr[18] == 0u;
|
|
ctx.gpr[20] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6E7C8;
|
|
}
|
|
goto L_08B6E7A8;
|
|
}
|
|
L_08B6E7A8:
|
|
ctx.gpr[31] = (0x08B6E7B0u);
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E7B0u) goto L_08B6E7B0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6E7B0:
|
|
ctx.gpr[20] = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[20] != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E7C8;
|
|
}
|
|
goto L_08B6E7BC;
|
|
}
|
|
L_08B6E7BC:
|
|
ctx.gpr[31] = (0x08B6E7C4u);
|
|
aot_gpr_4 = (ctx.gpr[18] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 289u, 0x08B65438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E7C4u) goto L_08B6E7C4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6E7C4:
|
|
ctx.gpr[20] = (ctx.gpr[2] | 0u);
|
|
goto L_08B6E7C8;
|
|
L_08B6E7C8:
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(3), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(5), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(5))))));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(4), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(8), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(8))))));
|
|
ctx.gpr[31] = (0x08B6E7E8u);
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(9), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 577u, 0x08A87A98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E7E8u) goto L_08B6E7E8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6E7E8:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(20), ctx.gpr[2]);
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(20))))));
|
|
{ const bool branch_taken = ctx.gpr[19] == ctx.gpr[17];
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(7), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B6E808;
|
|
}
|
|
goto L_08B6E7F8;
|
|
}
|
|
L_08B6E7F8:
|
|
aot_gpr_6 = (ctx.gpr[19] - ctx.gpr[17]);
|
|
aot_gpr_4 = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[31] = (0x08B6E808u);
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E808u) goto L_08B6E808;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6E808:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(10), static_cast<std::uint8_t>(0u));
|
|
if (branch_taken) {
|
|
goto L_08B6E81C;
|
|
}
|
|
goto L_08B6E814;
|
|
}
|
|
L_08B6E814:
|
|
ctx.gpr[31] = (0x08B6E81Cu);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E81Cu) goto L_08B6E81C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6E81C:
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(0), ctx.gpr[20]);
|
|
aot_gpr_4 = (ctx.gpr[20] + ctx.gpr[18]);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E908;
|
|
}
|
|
goto L_08B6E830;
|
|
}
|
|
L_08B6E830:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_4 - aot_gpr_5);
|
|
aot_gpr_4 = (aot_gpr_4 < ctx.gpr[18] ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E87C;
|
|
}
|
|
goto L_08B6E848;
|
|
}
|
|
L_08B6E848:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[17] == aot_gpr_4;
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(0u));
|
|
if (branch_taken) {
|
|
goto L_08B6E870;
|
|
}
|
|
goto L_08B6E85C;
|
|
}
|
|
L_08B6E85C:
|
|
aot_gpr_7 = (aot_gpr_4 | 0u);
|
|
aot_gpr_6 = (ctx.gpr[17] - aot_gpr_7);
|
|
aot_gpr_4 = (aot_gpr_5 | 0u);
|
|
ctx.gpr[31] = (0x08B6E870u);
|
|
aot_gpr_5 = (aot_gpr_7 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E870u) goto L_08B6E870;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6E870:
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(11), static_cast<std::uint8_t>(0u));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6E908;
|
|
}
|
|
goto L_08B6E87C;
|
|
}
|
|
L_08B6E87C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_gpr_5 - aot_gpr_6);
|
|
aot_gpr_5 = (aot_gpr_4 + aot_gpr_5);
|
|
{ const bool branch_taken = aot_gpr_5 == aot_gpr_4;
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(1), static_cast<std::uint8_t>(0u));
|
|
if (branch_taken) {
|
|
goto L_08B6E8AC;
|
|
}
|
|
goto L_08B6E898;
|
|
}
|
|
L_08B6E898:
|
|
aot_gpr_7 = (aot_gpr_4 | 0u);
|
|
aot_gpr_4 = (aot_gpr_6 | 0u);
|
|
aot_gpr_6 = (aot_gpr_5 - aot_gpr_7);
|
|
ctx.gpr[31] = (0x08B6E8ACu);
|
|
aot_gpr_5 = (aot_gpr_7 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E8ACu) goto L_08B6E8AC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6E8AC:
|
|
aot_gpr_4 = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (ctx.gpr[20] - aot_gpr_5);
|
|
ctx.gpr[17] = (ctx.gpr[17] + aot_gpr_5);
|
|
ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(2), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(13), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(13))))));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(12), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(16), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(16))))));
|
|
ctx.gpr[31] = (0x08B6E8E8u);
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(17), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 577u, 0x08A87A98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E8E8u) goto L_08B6E8E8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6E8E8:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(24), ctx.gpr[2]);
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(24))))));
|
|
{ const bool branch_taken = ctx.gpr[19] == ctx.gpr[17];
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(15), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B6E908;
|
|
}
|
|
goto L_08B6E8F8;
|
|
}
|
|
L_08B6E8F8:
|
|
aot_gpr_6 = (ctx.gpr[19] - ctx.gpr[17]);
|
|
aot_gpr_4 = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[31] = (0x08B6E908u);
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E908u) goto L_08B6E908;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6E908:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
goto L_08B6E914;
|
|
L_08B6E914:
|
|
ctx.gpr[2] = (aot_gpr_16 | 0u);
|
|
{ std::uint32_t aot_run_words[6]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(28), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[19] = aot_run_words[3];
|
|
ctx.gpr[20] = aot_run_words[4];
|
|
ctx.gpr[31] = aot_run_words[5];
|
|
}
|
|
jump_target = ctx.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_08B6E938:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-96));
|
|
{ const std::uint32_t aot_run_words[9]{aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(48), aot_run_words); }
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
ctx.gpr[17] = (aot_gpr_5 | 0u);
|
|
ctx.gpr[20] = (aot_gpr_6 | 0u);
|
|
{ const bool branch_taken = aot_gpr_6 == 0u;
|
|
ctx.gpr[18] = (aot_gpr_7 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6EC3C;
|
|
}
|
|
goto L_08B6E974;
|
|
}
|
|
L_08B6E974:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[22] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_4 = (aot_gpr_4 - ctx.gpr[22]);
|
|
aot_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_4) >> 2u));
|
|
aot_gpr_5 = (aot_gpr_5 >> 30u);
|
|
aot_gpr_4 = (aot_gpr_4 + aot_gpr_5);
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_4) >> 2u));
|
|
aot_gpr_4 = (aot_gpr_4 < ctx.gpr[20] ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6EB20;
|
|
}
|
|
goto L_08B6E99C;
|
|
}
|
|
L_08B6E99C:
|
|
ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (ctx.gpr[22] - ctx.gpr[17]);
|
|
aot_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_4) >> 2u));
|
|
aot_gpr_5 = (aot_gpr_5 >> 30u);
|
|
aot_gpr_4 = (aot_gpr_4 + aot_gpr_5);
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_4) >> 2u));
|
|
ctx.gpr[19] = (ctx.gpr[22] | 0u);
|
|
aot_gpr_5 = (ctx.gpr[20] < aot_gpr_4 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
ctx.gpr[21] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6EA70;
|
|
}
|
|
goto L_08B6E9C4;
|
|
}
|
|
L_08B6E9C4:
|
|
ctx.gpr[20] = (ctx.gpr[20] << 2u);
|
|
ctx.gpr[21] = (ctx.gpr[22] - ctx.gpr[20]);
|
|
ctx.gpr[23] = (ctx.gpr[22] | 0u);
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(4), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(9), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(9))))));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(8), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(12), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(12))))));
|
|
ctx.gpr[31] = (0x08B6E9F0u);
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(13), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 576u, 0x08A87A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E9F0u) goto L_08B6E9F0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6E9F0:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(36), ctx.gpr[2]);
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(36))))));
|
|
{ const bool branch_taken = ctx.gpr[23] != ctx.gpr[21];
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(11), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B6EA0C;
|
|
}
|
|
goto L_08B6EA00;
|
|
}
|
|
L_08B6EA00:
|
|
ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[21] = (ctx.gpr[21] + ctx.gpr[20]);
|
|
if (branch_taken) {
|
|
goto L_08B6EA24;
|
|
}
|
|
goto L_08B6EA0C;
|
|
}
|
|
L_08B6EA0C:
|
|
aot_gpr_6 = (ctx.gpr[22] - ctx.gpr[21]);
|
|
aot_gpr_4 = (ctx.gpr[23] | 0u);
|
|
ctx.gpr[31] = (0x08B6EA1Cu);
|
|
aot_gpr_5 = (ctx.gpr[21] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6EA1Cu) goto L_08B6EA1C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6EA1C:
|
|
ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[21] = (ctx.gpr[21] + ctx.gpr[20]);
|
|
goto L_08B6EA24;
|
|
L_08B6EA24:
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(4), ctx.gpr[21]);
|
|
aot_gpr_16 = (ctx.gpr[19] - ctx.gpr[20]);
|
|
aot_gpr_16 = (aot_gpr_16 - ctx.gpr[17]);
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_16) <= 0;
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(5), static_cast<std::uint8_t>(0u));
|
|
if (branch_taken) {
|
|
goto L_08B6EA48;
|
|
}
|
|
goto L_08B6EA38;
|
|
}
|
|
L_08B6EA38:
|
|
aot_gpr_4 = (ctx.gpr[19] - aot_gpr_16);
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B6EA48u);
|
|
aot_gpr_6 = (aot_gpr_16 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6EA48u) goto L_08B6EA48;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6EA48:
|
|
aot_gpr_4 = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[17] = (ctx.gpr[17] + ctx.gpr[20]);
|
|
{ const bool branch_taken = aot_gpr_4 == ctx.gpr[17];
|
|
if (branch_taken) {
|
|
goto L_08B6EA68;
|
|
}
|
|
goto L_08B6EA58;
|
|
}
|
|
L_08B6EA58:
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(0), ctx.gpr[18]);
|
|
goto L_08B6EA5C;
|
|
L_08B6EA5C:
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(4));
|
|
if (aot_gpr_4 != ctx.gpr[17]) {
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(0), ctx.gpr[18]);
|
|
goto L_08B6EA5C;
|
|
}
|
|
goto L_08B6EA68;
|
|
L_08B6EA68:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6EB18;
|
|
}
|
|
goto L_08B6EA70;
|
|
}
|
|
L_08B6EA70:
|
|
ctx.gpr[20] = (ctx.gpr[20] - ctx.gpr[21]);
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(14), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_4 = (ctx.gpr[22] | 0u);
|
|
aot_gpr_5 = (ctx.gpr[20] | 0u);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
ctx.gpr[21] = (ctx.gpr[21] << 2u);
|
|
if (branch_taken) {
|
|
goto L_08B6EA9C;
|
|
}
|
|
goto L_08B6EA88;
|
|
}
|
|
L_08B6EA88:
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(0), ctx.gpr[18]);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(4));
|
|
if (branch_taken) {
|
|
goto L_08B6EA88;
|
|
}
|
|
goto L_08B6EA98;
|
|
}
|
|
L_08B6EA98:
|
|
ctx.gpr[22] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
goto L_08B6EA9C;
|
|
L_08B6EA9C:
|
|
ctx.gpr[20] = (ctx.gpr[20] << 2u);
|
|
ctx.gpr[20] = (ctx.gpr[22] + ctx.gpr[20]);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(4), ctx.gpr[20]);
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(6), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(16), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(16))))));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(15), static_cast<std::uint8_t>(aot_gpr_4));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(19), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(19))))));
|
|
ctx.gpr[31] = (0x08B6EAC8u);
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(20), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 576u, 0x08A87A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6EAC8u) goto L_08B6EAC8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6EAC8:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(40), ctx.gpr[2]);
|
|
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(40))))));
|
|
{ const bool branch_taken = ctx.gpr[19] != ctx.gpr[17];
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(18), static_cast<std::uint8_t>(aot_gpr_4));
|
|
if (branch_taken) {
|
|
goto L_08B6EAE4;
|
|
}
|
|
goto L_08B6EAD8;
|
|
}
|
|
L_08B6EAD8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[21] = (aot_gpr_4 + ctx.gpr[21]);
|
|
if (branch_taken) {
|
|
goto L_08B6EAFC;
|
|
}
|
|
goto L_08B6EAE4;
|
|
}
|
|
L_08B6EAE4:
|
|
aot_gpr_6 = (ctx.gpr[19] - ctx.gpr[17]);
|
|
aot_gpr_4 = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[31] = (0x08B6EAF4u);
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6EAF4u) goto L_08B6EAF4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6EAF4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[21] = (aot_gpr_4 + ctx.gpr[21]);
|
|
goto L_08B6EAFC;
|
|
L_08B6EAFC:
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(4), ctx.gpr[21]);
|
|
{ const bool branch_taken = ctx.gpr[17] == ctx.gpr[19];
|
|
if (branch_taken) {
|
|
goto L_08B6EB18;
|
|
}
|
|
goto L_08B6EB08;
|
|
}
|
|
L_08B6EB08:
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), ctx.gpr[18]);
|
|
goto L_08B6EB0C;
|
|
L_08B6EB0C:
|
|
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(4));
|
|
if (ctx.gpr[17] != ctx.gpr[19]) {
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), ctx.gpr[18]);
|
|
goto L_08B6EB0C;
|
|
}
|
|
goto L_08B6EB18;
|
|
L_08B6EB18:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6EC3C;
|
|
}
|
|
goto L_08B6EB20;
|
|
}
|
|
L_08B6EB20:
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(7), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(24), ctx.gpr[20]);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_4 - aot_gpr_5);
|
|
aot_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_4) >> 2u));
|
|
aot_gpr_5 = (aot_gpr_5 >> 30u);
|
|
ctx.gpr[19] = (aot_gpr_4 + aot_gpr_5);
|
|
ctx.gpr[19] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[19]) >> 2u));
|
|
aot_gpr_4 = (ctx.gpr[19] < ctx.gpr[20] ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(28), ctx.gpr[19]);
|
|
if (branch_taken) {
|
|
goto L_08B6EB60;
|
|
}
|
|
goto L_08B6EB50;
|
|
}
|
|
L_08B6EB50:
|
|
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(24));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[19] = (ctx.gpr[19] + aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6EB6C;
|
|
}
|
|
goto L_08B6EB60;
|
|
}
|
|
L_08B6EB60:
|
|
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(28));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[19] = (ctx.gpr[19] + aot_gpr_4);
|
|
goto L_08B6EB6C;
|
|
L_08B6EB6C:
|
|
{ const bool branch_taken = ctx.gpr[19] == 0u;
|
|
aot_gpr_4 = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6EB98;
|
|
}
|
|
goto L_08B6EB74;
|
|
}
|
|
L_08B6EB74:
|
|
aot_gpr_4 = (ctx.gpr[19] << 2u);
|
|
ctx.gpr[31] = (0x08B6EB80u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(44), aot_gpr_4);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6EB80u) goto L_08B6EB80;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6EB80:
|
|
aot_gpr_4 = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(44)));
|
|
if (branch_taken) {
|
|
goto L_08B6EB98;
|
|
}
|
|
goto L_08B6EB8C;
|
|
}
|
|
L_08B6EB8C:
|
|
ctx.gpr[31] = (0x08B6EB94u);
|
|
aot_gpr_4 = (aot_gpr_5 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 289u, 0x08B65438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6EB94u) goto L_08B6EB94;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6EB94:
|
|
aot_gpr_4 = (ctx.gpr[2] | 0u);
|
|
goto L_08B6EB98;
|
|
L_08B6EB98:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[17] != aot_gpr_5;
|
|
ctx.gpr[20] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6EBB0;
|
|
}
|
|
goto L_08B6EBA4;
|
|
}
|
|
L_08B6EBA4:
|
|
aot_gpr_5 = (aot_gpr_4 | 0u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(24)));
|
|
if (branch_taken) {
|
|
goto L_08B6EBC8;
|
|
}
|
|
goto L_08B6EBB0;
|
|
}
|
|
L_08B6EBB0:
|
|
ctx.gpr[21] = (ctx.gpr[17] - aot_gpr_5);
|
|
aot_gpr_4 = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[31] = (0x08B6EBC0u);
|
|
aot_gpr_6 = (ctx.gpr[21] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6EBC0u) goto L_08B6EBC0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6EBC0:
|
|
aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[21]);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(24)));
|
|
goto L_08B6EBC8;
|
|
L_08B6EBC8:
|
|
if (aot_gpr_4 == 0u) {
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
goto L_08B6EBE8;
|
|
}
|
|
goto L_08B6EBD0;
|
|
L_08B6EBD0:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(0), aot_gpr_6);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-1));
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(4));
|
|
if (branch_taken) {
|
|
goto L_08B6EBD0;
|
|
}
|
|
goto L_08B6EBE4;
|
|
}
|
|
L_08B6EBE4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
goto L_08B6EBE8;
|
|
L_08B6EBE8:
|
|
{ const bool branch_taken = aot_gpr_4 != ctx.gpr[17];
|
|
aot_gpr_6 = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6EBFC;
|
|
}
|
|
goto L_08B6EBF0;
|
|
}
|
|
L_08B6EBF0:
|
|
ctx.gpr[17] = (aot_gpr_5 | 0u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
if (branch_taken) {
|
|
goto L_08B6EC18;
|
|
}
|
|
goto L_08B6EBFC;
|
|
}
|
|
L_08B6EBFC:
|
|
ctx.gpr[18] = (aot_gpr_4 - ctx.gpr[17]);
|
|
aot_gpr_4 = (aot_gpr_6 | 0u);
|
|
aot_gpr_5 = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B6EC10u);
|
|
aot_gpr_6 = (ctx.gpr[18] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6EC10u) goto L_08B6EC10;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6EC10:
|
|
ctx.gpr[17] = (ctx.gpr[2] + ctx.gpr[18]);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
goto L_08B6EC18;
|
|
L_08B6EC18:
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(32), static_cast<std::uint8_t>(0u));
|
|
if (branch_taken) {
|
|
goto L_08B6EC28;
|
|
}
|
|
goto L_08B6EC20;
|
|
}
|
|
L_08B6EC20:
|
|
ctx.gpr[31] = (0x08B6EC28u);
|
|
aot_gpr_4 = (aot_gpr_5 | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6EC28u) goto L_08B6EC28;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6EC28:
|
|
aot_gpr_4 = (ctx.gpr[19] << 2u);
|
|
aot_gpr_4 = (ctx.gpr[20] + aot_gpr_4);
|
|
{ const std::uint32_t aot_run_words[3]{ctx.gpr[20], ctx.gpr[17], aot_gpr_4};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_16 + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
goto L_08B6EC3C;
|
|
L_08B6EC3C:
|
|
{ std::uint32_t aot_run_words[9]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(48), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[19] = aot_run_words[3];
|
|
ctx.gpr[20] = aot_run_words[4];
|
|
ctx.gpr[21] = aot_run_words[5];
|
|
ctx.gpr[22] = aot_run_words[6];
|
|
ctx.gpr[23] = aot_run_words[7];
|
|
ctx.gpr[31] = aot_run_words[8];
|
|
}
|
|
jump_target = ctx.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_08B6EC68:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
aot_gpr_7 = (aot_gpr_5 - aot_gpr_4);
|
|
aot_gpr_7 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_7) >> 2u));
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_7) <= 0;
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(0u));
|
|
if (branch_taken) {
|
|
goto L_08B6ECD8;
|
|
}
|
|
goto L_08B6EC7C;
|
|
}
|
|
L_08B6EC7C:
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
goto L_08B6EC80;
|
|
L_08B6EC80:
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
if (ctx.gpr[9] != ctx.gpr[8]) {
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(1));
|
|
goto L_08B6EC94;
|
|
}
|
|
goto L_08B6EC8C;
|
|
L_08B6EC8C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6ED54;
|
|
}
|
|
goto L_08B6EC94;
|
|
}
|
|
L_08B6EC94:
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
if (ctx.gpr[9] != ctx.gpr[8]) {
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(1));
|
|
goto L_08B6ECA8;
|
|
}
|
|
goto L_08B6ECA0;
|
|
L_08B6ECA0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6ED54;
|
|
}
|
|
goto L_08B6ECA8;
|
|
}
|
|
L_08B6ECA8:
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
if (ctx.gpr[9] != ctx.gpr[8]) {
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(1));
|
|
goto L_08B6ECBC;
|
|
}
|
|
goto L_08B6ECB4;
|
|
L_08B6ECB4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6ED54;
|
|
}
|
|
goto L_08B6ECBC;
|
|
}
|
|
L_08B6ECBC:
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[9] != ctx.gpr[8];
|
|
aot_gpr_7 = (aot_gpr_7 + static_cast<std::uint32_t>(-1));
|
|
if (branch_taken) {
|
|
goto L_08B6ECD0;
|
|
}
|
|
goto L_08B6ECC8;
|
|
}
|
|
L_08B6ECC8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6ED54;
|
|
}
|
|
goto L_08B6ECD0;
|
|
}
|
|
L_08B6ECD0:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_7) > 0;
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(1));
|
|
if (branch_taken) {
|
|
goto L_08B6EC80;
|
|
}
|
|
goto L_08B6ECD8;
|
|
}
|
|
L_08B6ECD8:
|
|
aot_gpr_7 = (aot_gpr_5 - aot_gpr_4);
|
|
ctx.gpr[8] = (static_cast<std::int32_t>(aot_gpr_7) < 2 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[8] == 0u;
|
|
ctx.gpr[8] = (static_cast<std::int32_t>(aot_gpr_7) < 3 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6ECFC;
|
|
}
|
|
goto L_08B6ECE8;
|
|
}
|
|
L_08B6ECE8:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_7) <= 0;
|
|
ctx.gpr[2] = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6ED54;
|
|
}
|
|
goto L_08B6ECF0;
|
|
}
|
|
L_08B6ECF0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
if (branch_taken) {
|
|
goto L_08B6ED40;
|
|
}
|
|
goto L_08B6ECF8;
|
|
}
|
|
L_08B6ECF8:
|
|
ctx.gpr[8] = (static_cast<std::int32_t>(aot_gpr_7) < 3 ? 1u : 0u);
|
|
goto L_08B6ECFC;
|
|
L_08B6ECFC:
|
|
{ const bool branch_taken = ctx.gpr[8] != 0u;
|
|
aot_gpr_7 = (static_cast<std::int32_t>(aot_gpr_7) < 4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6ED24;
|
|
}
|
|
goto L_08B6ED04;
|
|
}
|
|
L_08B6ED04:
|
|
{ const bool branch_taken = aot_gpr_7 == 0u;
|
|
ctx.gpr[2] = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6ED54;
|
|
}
|
|
goto L_08B6ED0C;
|
|
}
|
|
L_08B6ED0C:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
if (aot_gpr_7 != ctx.gpr[8]) {
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(1));
|
|
goto L_08B6ED24;
|
|
}
|
|
goto L_08B6ED1C;
|
|
L_08B6ED1C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6ED54;
|
|
}
|
|
goto L_08B6ED24;
|
|
}
|
|
L_08B6ED24:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
if (aot_gpr_7 != ctx.gpr[8]) {
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(1));
|
|
goto L_08B6ED3C;
|
|
}
|
|
goto L_08B6ED34;
|
|
L_08B6ED34:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6ED54;
|
|
}
|
|
goto L_08B6ED3C;
|
|
}
|
|
L_08B6ED3C:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
goto L_08B6ED40;
|
|
L_08B6ED40:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = aot_gpr_7 != aot_gpr_6;
|
|
ctx.gpr[2] = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6ED54;
|
|
}
|
|
goto L_08B6ED4C;
|
|
}
|
|
L_08B6ED4C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6ED54;
|
|
}
|
|
goto L_08B6ED54;
|
|
}
|
|
L_08B6ED54:
|
|
jump_target = ctx.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_08B6ED5C:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(0u));
|
|
ctx.gpr[2] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(0))))));
|
|
jump_target = ctx.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_08B6ED70:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_gpr_7);
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(12), static_cast<std::uint8_t>(0u));
|
|
aot_gpr_4 = (aot_gpr_5 - ctx.gpr[2]);
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_4) <= 0;
|
|
if (branch_taken) {
|
|
goto L_08B6EDCC;
|
|
}
|
|
goto L_08B6ED8C;
|
|
}
|
|
L_08B6ED8C:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(13), static_cast<std::uint8_t>(0u));
|
|
goto L_08B6ED94;
|
|
L_08B6ED94:
|
|
aot_gpr_7 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_4) >> 1u));
|
|
aot_gpr_6 = (ctx.gpr[2] + aot_gpr_7);
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[8] = (ctx.gpr[8] < aot_gpr_5 ? 1u : 0u);
|
|
ctx.gpr[8] = (ctx.gpr[8] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[8] == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6EDC0;
|
|
}
|
|
goto L_08B6EDB0;
|
|
}
|
|
L_08B6EDB0:
|
|
ctx.gpr[2] = (aot_gpr_6 + static_cast<std::uint32_t>(1));
|
|
aot_gpr_4 = (aot_gpr_4 - aot_gpr_7);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-1));
|
|
if (branch_taken) {
|
|
goto L_08B6EDC4;
|
|
}
|
|
goto L_08B6EDC0;
|
|
}
|
|
L_08B6EDC0:
|
|
aot_gpr_4 = (aot_gpr_7 | 0u);
|
|
goto L_08B6EDC4;
|
|
L_08B6EDC4:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_4) > 0;
|
|
if (branch_taken) {
|
|
goto L_08B6ED94;
|
|
}
|
|
goto L_08B6EDCC;
|
|
}
|
|
L_08B6EDCC:
|
|
jump_target = ctx.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_08B6EDD4:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
aot_gpr_7 = (aot_gpr_5 - aot_gpr_4);
|
|
aot_gpr_7 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_7) >> 2u));
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_7) <= 0;
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(0u));
|
|
if (branch_taken) {
|
|
goto L_08B6EE44;
|
|
}
|
|
goto L_08B6EDE8;
|
|
}
|
|
L_08B6EDE8:
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
goto L_08B6EDEC;
|
|
L_08B6EDEC:
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
if (ctx.gpr[9] != ctx.gpr[8]) {
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(1));
|
|
goto L_08B6EE00;
|
|
}
|
|
goto L_08B6EDF8;
|
|
L_08B6EDF8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6EEC0;
|
|
}
|
|
goto L_08B6EE00;
|
|
}
|
|
L_08B6EE00:
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
if (ctx.gpr[9] != ctx.gpr[8]) {
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(1));
|
|
goto L_08B6EE14;
|
|
}
|
|
goto L_08B6EE0C;
|
|
L_08B6EE0C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6EEC0;
|
|
}
|
|
goto L_08B6EE14;
|
|
}
|
|
L_08B6EE14:
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
if (ctx.gpr[9] != ctx.gpr[8]) {
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(1));
|
|
goto L_08B6EE28;
|
|
}
|
|
goto L_08B6EE20;
|
|
L_08B6EE20:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6EEC0;
|
|
}
|
|
goto L_08B6EE28;
|
|
}
|
|
L_08B6EE28:
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[9] != ctx.gpr[8];
|
|
aot_gpr_7 = (aot_gpr_7 + static_cast<std::uint32_t>(-1));
|
|
if (branch_taken) {
|
|
goto L_08B6EE3C;
|
|
}
|
|
goto L_08B6EE34;
|
|
}
|
|
L_08B6EE34:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6EEC0;
|
|
}
|
|
goto L_08B6EE3C;
|
|
}
|
|
L_08B6EE3C:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_7) > 0;
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(1));
|
|
if (branch_taken) {
|
|
goto L_08B6EDEC;
|
|
}
|
|
goto L_08B6EE44;
|
|
}
|
|
L_08B6EE44:
|
|
aot_gpr_7 = (aot_gpr_5 - aot_gpr_4);
|
|
ctx.gpr[8] = (static_cast<std::int32_t>(aot_gpr_7) < 2 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[8] == 0u;
|
|
ctx.gpr[8] = (static_cast<std::int32_t>(aot_gpr_7) < 3 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6EE68;
|
|
}
|
|
goto L_08B6EE54;
|
|
}
|
|
L_08B6EE54:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_7) <= 0;
|
|
ctx.gpr[2] = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6EEC0;
|
|
}
|
|
goto L_08B6EE5C;
|
|
}
|
|
L_08B6EE5C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
if (branch_taken) {
|
|
goto L_08B6EEAC;
|
|
}
|
|
goto L_08B6EE64;
|
|
}
|
|
L_08B6EE64:
|
|
ctx.gpr[8] = (static_cast<std::int32_t>(aot_gpr_7) < 3 ? 1u : 0u);
|
|
goto L_08B6EE68;
|
|
L_08B6EE68:
|
|
{ const bool branch_taken = ctx.gpr[8] != 0u;
|
|
aot_gpr_7 = (static_cast<std::int32_t>(aot_gpr_7) < 4 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6EE90;
|
|
}
|
|
goto L_08B6EE70;
|
|
}
|
|
L_08B6EE70:
|
|
{ const bool branch_taken = aot_gpr_7 == 0u;
|
|
ctx.gpr[2] = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6EEC0;
|
|
}
|
|
goto L_08B6EE78;
|
|
}
|
|
L_08B6EE78:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
if (aot_gpr_7 != ctx.gpr[8]) {
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(1));
|
|
goto L_08B6EE90;
|
|
}
|
|
goto L_08B6EE88;
|
|
L_08B6EE88:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6EEC0;
|
|
}
|
|
goto L_08B6EE90;
|
|
}
|
|
L_08B6EE90:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
if (aot_gpr_7 != ctx.gpr[8]) {
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(1));
|
|
goto L_08B6EEA8;
|
|
}
|
|
goto L_08B6EEA0;
|
|
L_08B6EEA0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6EEC0;
|
|
}
|
|
goto L_08B6EEA8;
|
|
}
|
|
L_08B6EEA8:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
goto L_08B6EEAC;
|
|
L_08B6EEAC:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = aot_gpr_7 != aot_gpr_6;
|
|
ctx.gpr[2] = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6EEC0;
|
|
}
|
|
goto L_08B6EEB8;
|
|
}
|
|
L_08B6EEB8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6EEC0;
|
|
}
|
|
goto L_08B6EEC0;
|
|
}
|
|
L_08B6EEC0:
|
|
jump_target = ctx.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_08B6EEC8:
|
|
aot_gpr_6 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_5) >> 8u));
|
|
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_6) < 0;
|
|
if (branch_taken) {
|
|
goto L_08B6EF14;
|
|
}
|
|
goto L_08B6EED4;
|
|
}
|
|
L_08B6EED4:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_7 = (static_cast<std::int32_t>(aot_gpr_6) < static_cast<std::int32_t>(aot_gpr_7) ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_7 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6EF14;
|
|
}
|
|
goto L_08B6EEE4;
|
|
}
|
|
L_08B6EEE4:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_5 = (aot_gpr_5 & 255u);
|
|
aot_gpr_7 = (aot_gpr_7 + aot_gpr_6);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_7 + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = aot_gpr_7 != aot_gpr_5;
|
|
if (branch_taken) {
|
|
goto L_08B6EF1C;
|
|
}
|
|
goto L_08B6EEFC;
|
|
}
|
|
L_08B6EEFC:
|
|
aot_gpr_5 = (aot_gpr_6 << 4u);
|
|
ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_5 + aot_gpr_5);
|
|
aot_gpr_4 = (aot_gpr_5 + aot_gpr_4);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6EF20;
|
|
}
|
|
goto L_08B6EF14;
|
|
}
|
|
L_08B6EF14:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6EF20;
|
|
}
|
|
goto L_08B6EF1C;
|
|
}
|
|
L_08B6EF1C:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
goto L_08B6EF20;
|
|
L_08B6EF20:
|
|
jump_target = ctx.gpr[31];
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B6EF28:
|
|
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>(4), ctx.gpr[17]);
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
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>(8), ctx.gpr[31]);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6EF88;
|
|
}
|
|
goto L_08B6EF44;
|
|
}
|
|
L_08B6EF44:
|
|
aot_gpr_4 = (ctx.gpr[17] + static_cast<std::uint32_t>(32));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
if (branch_taken) {
|
|
goto L_08B6EF78;
|
|
}
|
|
goto L_08B6EF50;
|
|
}
|
|
L_08B6EF50:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(104)));
|
|
aot_gpr_4 = (aot_gpr_4 & 1u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
if (branch_taken) {
|
|
goto L_08B6EF78;
|
|
}
|
|
goto L_08B6EF60;
|
|
}
|
|
L_08B6EF60:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(96)));
|
|
if (aot_gpr_4 == 0u) {
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
goto L_08B6EF78;
|
|
}
|
|
goto L_08B6EF6C;
|
|
L_08B6EF6C:
|
|
ctx.gpr[31] = (0x08B6EF74u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6EF74u) goto L_08B6EF74;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6EF74:
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
goto L_08B6EF78;
|
|
L_08B6EF78:
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6EF88;
|
|
}
|
|
goto L_08B6EF80;
|
|
}
|
|
L_08B6EF80:
|
|
ctx.gpr[31] = (0x08B6EF88u);
|
|
aot_gpr_4 = (ctx.gpr[17] | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2C0, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6EF88u) goto L_08B6EF88;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6EF88:
|
|
{ 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];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6EF9C:
|
|
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>(4), ctx.gpr[17]);
|
|
ctx.gpr[17] = (aot_gpr_4 | 0u);
|
|
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>(8), ctx.gpr[31]);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6F000;
|
|
}
|
|
goto L_08B6EFB8;
|
|
}
|
|
L_08B6EFB8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(32)));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
if (branch_taken) {
|
|
goto L_08B6EFF0;
|
|
}
|
|
goto L_08B6EFC4;
|
|
}
|
|
L_08B6EFC4:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(28)));
|
|
aot_gpr_4 = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B6EFD8u);
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(4));
|
|
goto L_08B6F1DC;
|
|
L_08B6EFD8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(32)));
|
|
if (aot_gpr_4 == 0u) {
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
goto L_08B6EFF0;
|
|
}
|
|
goto L_08B6EFE4;
|
|
L_08B6EFE4:
|
|
ctx.gpr[31] = (0x08B6EFECu);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6EFECu) goto L_08B6EFEC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6EFEC:
|
|
aot_gpr_4 = (aot_gpr_16 & 1u);
|
|
goto L_08B6EFF0;
|
|
L_08B6EFF0:
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6F000;
|
|
}
|
|
goto L_08B6EFF8;
|
|
}
|
|
L_08B6EFF8:
|
|
ctx.gpr[31] = (0x08B6F000u);
|
|
aot_gpr_4 = (ctx.gpr[17] | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2C0, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6F000u) goto L_08B6F000;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6F000:
|
|
{ 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];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6F014:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-48));
|
|
aot_gpr_7 = (aot_gpr_5 >> 4u);
|
|
aot_gpr_6 = (0u | 8u);
|
|
aot_gpr_7 = (aot_gpr_7 + static_cast<std::uint32_t>(1));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_gpr_6);
|
|
ctx.gpr[8] = (aot_gpr_7 + static_cast<std::uint32_t>(2));
|
|
aot_gpr_6 = (0u | 8u);
|
|
aot_gpr_6 = (aot_gpr_6 < ctx.gpr[8] ? 1u : 0u);
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_16, ctx.gpr[17], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(24), aot_run_words); }
|
|
{ const bool branch_taken = aot_gpr_6 == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[8]);
|
|
if (branch_taken) {
|
|
goto L_08B6F054;
|
|
}
|
|
goto L_08B6F048;
|
|
}
|
|
L_08B6F048:
|
|
aot_gpr_6 = (aot_gpr_29 + static_cast<std::uint32_t>(4));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
if (branch_taken) {
|
|
goto L_08B6F058;
|
|
}
|
|
goto L_08B6F054;
|
|
}
|
|
L_08B6F054:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
|
|
goto L_08B6F058;
|
|
L_08B6F058:
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(36), aot_gpr_6);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(36)));
|
|
{ const bool branch_taken = aot_gpr_6 == 0u;
|
|
ctx.gpr[8] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6F0C0;
|
|
}
|
|
goto L_08B6F068;
|
|
}
|
|
L_08B6F068:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_gpr_7);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_gpr_5);
|
|
aot_gpr_4 = (aot_gpr_6 << 2u);
|
|
ctx.gpr[31] = (0x08B6F080u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_gpr_4);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6F080u) goto L_08B6F080;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6F080:
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_run_words);
|
|
aot_gpr_4 = aot_run_words[0];
|
|
aot_gpr_5 = aot_run_words[1];
|
|
ctx.gpr[8] = aot_run_words[2];
|
|
}
|
|
aot_gpr_6 = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = aot_gpr_6 != 0u;
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(20)));
|
|
if (branch_taken) {
|
|
goto L_08B6F0BC;
|
|
}
|
|
goto L_08B6F098;
|
|
}
|
|
L_08B6F098:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_gpr_7);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_gpr_5);
|
|
ctx.gpr[31] = (0x08B6F0ACu);
|
|
aot_gpr_4 = (ctx.gpr[8] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 289u, 0x08B65438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6F0ACu) goto L_08B6F0AC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6F0AC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_6 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(20)));
|
|
goto L_08B6F0BC;
|
|
L_08B6F0BC:
|
|
ctx.gpr[8] = (aot_gpr_6 | 0u);
|
|
goto L_08B6F0C0;
|
|
L_08B6F0C0:
|
|
aot_gpr_6 = (aot_gpr_4 | 0u);
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(36)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_gpr_5);
|
|
aot_gpr_5 = (ctx.gpr[9] - aot_gpr_7);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
aot_gpr_4 = (aot_gpr_5 >> 1u);
|
|
aot_gpr_4 = (aot_gpr_4 << 2u);
|
|
aot_gpr_16 = (ctx.gpr[8] + aot_gpr_4);
|
|
aot_gpr_4 = (aot_gpr_7 << 2u);
|
|
ctx.gpr[17] = (aot_gpr_16 + aot_gpr_4);
|
|
aot_mem.aot_direct_store32(aot_gpr_6 + static_cast<std::uint32_t>(32), ctx.gpr[8]);
|
|
aot_gpr_4 = (aot_gpr_6 | 0u);
|
|
aot_gpr_5 = (aot_gpr_16 | 0u);
|
|
ctx.gpr[31] = (0x08B6F0FCu);
|
|
aot_gpr_6 = (ctx.gpr[17] | 0u);
|
|
goto L_08B6F160;
|
|
L_08B6F0FC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(12), aot_gpr_16);
|
|
aot_gpr_6 = (aot_gpr_5 + static_cast<std::uint32_t>(128));
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(4), aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(8), aot_gpr_6);
|
|
aot_gpr_5 = (ctx.gpr[17] + static_cast<std::uint32_t>(-4));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(28), aot_gpr_5);
|
|
aot_gpr_5 = (aot_gpr_6 + static_cast<std::uint32_t>(128));
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(20), aot_gpr_6);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(24), aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(0), aot_gpr_6);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(20)));
|
|
aot_gpr_5 = (aot_gpr_5 & 15u);
|
|
aot_gpr_5 = (aot_gpr_5 << 3u);
|
|
aot_gpr_5 = (aot_gpr_6 + aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(16), aot_gpr_5);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(24), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6F160:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
|
|
aot_gpr_4 = (aot_gpr_5 | 0u);
|
|
aot_gpr_5 = (aot_gpr_4 < aot_gpr_6 ? 1u : 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), ctx.gpr[31]);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6F1D0;
|
|
}
|
|
goto L_08B6F178;
|
|
}
|
|
L_08B6F178:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_gpr_6);
|
|
aot_gpr_4 = (0u | 128u);
|
|
ctx.gpr[31] = (0x08B6F18Cu);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6F18Cu) goto L_08B6F18C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6F18C:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(8)));
|
|
if (branch_taken) {
|
|
goto L_08B6F1BC;
|
|
}
|
|
goto L_08B6F1A0;
|
|
}
|
|
L_08B6F1A0:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_gpr_6);
|
|
ctx.gpr[31] = (0x08B6F1B0u);
|
|
aot_gpr_4 = (aot_gpr_7 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 289u, 0x08B65438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6F1B0u) goto L_08B6F1B0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6F1B0:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(8)));
|
|
goto L_08B6F1BC;
|
|
L_08B6F1BC:
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(0), aot_gpr_5);
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(4));
|
|
aot_gpr_5 = (aot_gpr_4 < aot_gpr_6 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6F178;
|
|
}
|
|
goto L_08B6F1D0;
|
|
}
|
|
L_08B6F1D0:
|
|
ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(12)));
|
|
jump_target = ctx.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_08B6F1DC:
|
|
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_gpr_16 = (aot_gpr_6 | 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[31]);
|
|
ctx.gpr[17] = (aot_gpr_5 | 0u);
|
|
aot_gpr_4 = (ctx.gpr[17] < aot_gpr_16 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6F224;
|
|
}
|
|
goto L_08B6F200;
|
|
}
|
|
L_08B6F200:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6F214;
|
|
}
|
|
goto L_08B6F20C;
|
|
}
|
|
L_08B6F20C:
|
|
ctx.gpr[31] = (0x08B6F214u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6F214u) goto L_08B6F214;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6F214:
|
|
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(4));
|
|
aot_gpr_4 = (ctx.gpr[17] < aot_gpr_16 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6F200;
|
|
}
|
|
goto L_08B6F224;
|
|
}
|
|
L_08B6F224:
|
|
{ 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];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6F238:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-384));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(352), aot_gpr_16);
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_4 = (aot_gpr_6 | 0u);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_6 = (aot_gpr_6 ^ ctx.gpr[8]);
|
|
aot_gpr_6 = (aot_gpr_6 < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(356), ctx.gpr[17]);
|
|
ctx.gpr[17] = (aot_gpr_5 | 0u);
|
|
aot_gpr_6 = (aot_gpr_6 & 255u);
|
|
{ const std::uint32_t aot_run_words[5]{ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(360), aot_run_words); }
|
|
{ const bool branch_taken = aot_gpr_6 == 0u;
|
|
aot_gpr_5 = (aot_gpr_7 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6F2C8;
|
|
}
|
|
goto L_08B6F280;
|
|
}
|
|
L_08B6F280:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(16)));
|
|
aot_gpr_6 = (aot_gpr_6 ^ aot_gpr_7);
|
|
aot_gpr_6 = (aot_gpr_6 < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
aot_gpr_6 = (aot_gpr_6 & 255u);
|
|
if (aot_gpr_6 == 0u) {
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(12)));
|
|
goto L_08B6F2CC;
|
|
}
|
|
goto L_08B6F29C;
|
|
L_08B6F29C:
|
|
ctx.gpr[31] = (0x08B6F2A4u);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
goto L_08B6F90C;
|
|
L_08B6F2A4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(20)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(28)));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(12), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6F8E8;
|
|
}
|
|
goto L_08B6F2C8;
|
|
}
|
|
L_08B6F2C8:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(12)));
|
|
goto L_08B6F2CC;
|
|
L_08B6F2CC:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_6 = (aot_gpr_6 - aot_gpr_7);
|
|
ctx.gpr[9] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_6) >> 2u));
|
|
ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[9] = (ctx.gpr[9] >> 30u);
|
|
aot_gpr_6 = (aot_gpr_6 + ctx.gpr[9]);
|
|
ctx.gpr[8] = (ctx.gpr[8] - ctx.gpr[10]);
|
|
ctx.gpr[9] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[8]) >> 3u));
|
|
ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[9] = (ctx.gpr[9] >> 29u);
|
|
ctx.gpr[11] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_6 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_6) >> 2u));
|
|
ctx.gpr[8] = (ctx.gpr[8] + ctx.gpr[9]);
|
|
aot_gpr_6 = (aot_gpr_6 << 4u);
|
|
ctx.gpr[9] = (ctx.gpr[10] - ctx.gpr[11]);
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[8]) >> 3u));
|
|
ctx.gpr[2] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[9]) >> 3u));
|
|
aot_gpr_6 = (aot_gpr_6 + ctx.gpr[8]);
|
|
ctx.gpr[8] = (ctx.gpr[2] >> 29u);
|
|
ctx.gpr[8] = (ctx.gpr[9] + ctx.gpr[8]);
|
|
ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(12)));
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[8]) >> 3u));
|
|
ctx.gpr[18] = (aot_gpr_6 + ctx.gpr[8]);
|
|
aot_gpr_6 = (aot_gpr_7 - ctx.gpr[10]);
|
|
aot_gpr_7 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_6) >> 2u));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_7 = (aot_gpr_7 >> 30u);
|
|
aot_gpr_6 = (aot_gpr_6 + aot_gpr_7);
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_7 = (ctx.gpr[11] - ctx.gpr[8]);
|
|
ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_7) >> 3u));
|
|
ctx.gpr[11] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(28)));
|
|
ctx.gpr[8] = (ctx.gpr[8] >> 29u);
|
|
aot_gpr_6 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_6) >> 2u));
|
|
aot_gpr_7 = (aot_gpr_7 + ctx.gpr[8]);
|
|
aot_gpr_6 = (aot_gpr_6 << 4u);
|
|
ctx.gpr[8] = (ctx.gpr[11] - ctx.gpr[10]);
|
|
aot_gpr_7 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_7) >> 3u));
|
|
ctx.gpr[10] = (ctx.gpr[9] - ctx.gpr[2]);
|
|
aot_gpr_6 = (aot_gpr_6 + aot_gpr_7);
|
|
ctx.gpr[3] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[10]) >> 3u));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[11] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[8]) >> 2u));
|
|
ctx.gpr[12] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(20)));
|
|
ctx.gpr[3] = (ctx.gpr[3] >> 29u);
|
|
ctx.gpr[11] = (ctx.gpr[11] >> 30u);
|
|
ctx.gpr[10] = (ctx.gpr[10] + ctx.gpr[3]);
|
|
ctx.gpr[8] = (ctx.gpr[8] + ctx.gpr[11]);
|
|
aot_gpr_7 = (aot_gpr_7 - ctx.gpr[12]);
|
|
ctx.gpr[10] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[10]) >> 3u));
|
|
ctx.gpr[11] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_7) >> 3u));
|
|
ctx.gpr[19] = (aot_gpr_6 + ctx.gpr[10]);
|
|
aot_gpr_6 = (ctx.gpr[11] >> 29u);
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[8]) >> 2u));
|
|
aot_gpr_6 = (aot_gpr_7 + aot_gpr_6);
|
|
ctx.gpr[8] = (ctx.gpr[8] << 4u);
|
|
aot_gpr_7 = (ctx.gpr[9] - ctx.gpr[2]);
|
|
aot_gpr_6 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_6) >> 3u));
|
|
ctx.gpr[9] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_7) >> 3u));
|
|
aot_gpr_6 = (ctx.gpr[8] + aot_gpr_6);
|
|
ctx.gpr[8] = (ctx.gpr[9] >> 29u);
|
|
aot_gpr_7 = (aot_gpr_7 + ctx.gpr[8]);
|
|
aot_gpr_7 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_7) >> 3u));
|
|
aot_gpr_6 = (aot_gpr_6 + aot_gpr_7);
|
|
ctx.gpr[18] = (ctx.gpr[18] + static_cast<std::uint32_t>(-16));
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(-16));
|
|
aot_gpr_6 = (aot_gpr_6 - ctx.gpr[18]);
|
|
aot_gpr_7 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_6) >> 1u));
|
|
aot_gpr_7 = (aot_gpr_7 >> 31u);
|
|
aot_gpr_6 = (aot_gpr_6 + aot_gpr_7);
|
|
ctx.gpr[19] = (ctx.gpr[19] + static_cast<std::uint32_t>(-16));
|
|
aot_gpr_6 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_6) >> 1u));
|
|
aot_gpr_6 = (static_cast<std::int32_t>(ctx.gpr[19]) < static_cast<std::int32_t>(aot_gpr_6) ? 1u : 0u);
|
|
if (aot_gpr_6 == 0u) {
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
goto L_08B6F64C;
|
|
}
|
|
goto L_08B6F400;
|
|
L_08B6F400:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(24), aot_gpr_6);
|
|
aot_gpr_6 = (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>(28), aot_gpr_7);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(32), aot_gpr_6);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(36), aot_gpr_7);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(40), aot_gpr_6);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(44), aot_gpr_6);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(48), aot_gpr_6);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(52), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(56), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_7 = (aot_gpr_29 + static_cast<std::uint32_t>(8));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(60), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_6 = (aot_gpr_29 + static_cast<std::uint32_t>(24));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(64), aot_gpr_4);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(12)));
|
|
ctx.gpr[20] = (aot_gpr_29 + static_cast<std::uint32_t>(40));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(68), aot_gpr_5);
|
|
ctx.gpr[21] = (aot_gpr_29 + static_cast<std::uint32_t>(56));
|
|
aot_gpr_4 = (aot_gpr_7 | 0u);
|
|
aot_gpr_5 = (aot_gpr_6 | 0u);
|
|
aot_gpr_6 = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[31] = (0x08B6F484u);
|
|
aot_gpr_7 = (ctx.gpr[21] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 9u, 0x08A9C198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6F484u) goto L_08B6F484;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6F484:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(168), aot_gpr_4);
|
|
aot_gpr_4 = (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>(172), aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(176), aot_gpr_4);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(180), aot_gpr_5);
|
|
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(168));
|
|
ctx.gpr[31] = (0x08B6F4B0u);
|
|
aot_gpr_5 = (ctx.gpr[18] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 386u, 0x08A9B124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6F4B0u) goto L_08B6F4B0;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6F4B0:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(72), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(76), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(80), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(84), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(56), aot_gpr_5);
|
|
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>(60), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(64), aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(72)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(68), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(76)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(40), aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(80)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(44), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(84)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(48), aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(52), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(216), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(220), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(224), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(228), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(232), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(216));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(236), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(240), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(244), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(248), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_6 = (aot_gpr_29 + static_cast<std::uint32_t>(232));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(252), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(256), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(260), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(264), aot_gpr_4);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(248));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(268), aot_gpr_5);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(264));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(272), aot_gpr_7);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(280), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(276), aot_gpr_6);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_6 = (aot_gpr_6 ^ aot_gpr_7);
|
|
aot_gpr_6 = (0u < aot_gpr_6 ? 1u : 0u);
|
|
aot_gpr_6 = (aot_gpr_6 & 255u);
|
|
{ const bool branch_taken = aot_gpr_6 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6F618;
|
|
}
|
|
goto L_08B6F5C0;
|
|
}
|
|
L_08B6F5C0:
|
|
aot_gpr_6 = (aot_gpr_4 | 0u);
|
|
goto L_08B6F5C4;
|
|
L_08B6F5C4:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_7 = (aot_gpr_7 + static_cast<std::uint32_t>(8));
|
|
{ const bool branch_taken = aot_gpr_7 != ctx.gpr[8];
|
|
aot_mem.aot_direct_store32(aot_gpr_6 + static_cast<std::uint32_t>(0), aot_gpr_7);
|
|
if (branch_taken) {
|
|
goto L_08B6F5FC;
|
|
}
|
|
goto L_08B6F5D8;
|
|
}
|
|
L_08B6F5D8:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_7 = (aot_gpr_7 + static_cast<std::uint32_t>(4));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_6 + static_cast<std::uint32_t>(12), aot_gpr_7);
|
|
aot_mem.aot_direct_store32(aot_gpr_6 + static_cast<std::uint32_t>(4), ctx.gpr[8]);
|
|
aot_gpr_7 = (ctx.gpr[8] + static_cast<std::uint32_t>(128));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_6 + static_cast<std::uint32_t>(8), aot_gpr_7);
|
|
aot_mem.aot_direct_store32(aot_gpr_6 + static_cast<std::uint32_t>(0), ctx.gpr[8]);
|
|
goto L_08B6F5FC;
|
|
L_08B6F5FC:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_6 = (aot_gpr_6 ^ aot_gpr_7);
|
|
aot_gpr_6 = (0u < aot_gpr_6 ? 1u : 0u);
|
|
aot_gpr_6 = (aot_gpr_6 & 255u);
|
|
{ const bool branch_taken = aot_gpr_6 != 0u;
|
|
aot_gpr_6 = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6F5C4;
|
|
}
|
|
goto L_08B6F618;
|
|
}
|
|
L_08B6F618:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(84)));
|
|
ctx.gpr[31] = (0x08B6F628u);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
goto L_08B6F1DC;
|
|
L_08B6F628:
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(72), aot_run_words);
|
|
aot_gpr_4 = aot_run_words[0];
|
|
aot_gpr_5 = aot_run_words[1];
|
|
aot_gpr_6 = aot_run_words[2];
|
|
}
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(0), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(84)));
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(4), aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(8), aot_gpr_6);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(12), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6F898;
|
|
}
|
|
goto L_08B6F64C;
|
|
}
|
|
L_08B6F64C:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(104), aot_gpr_6);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(108), aot_gpr_6);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(112), aot_gpr_6);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(20)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(116), aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(120), aot_gpr_7);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(124), aot_gpr_6);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(28)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(128), aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(132), aot_gpr_6);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(136), aot_gpr_6);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_7 = (aot_gpr_29 + static_cast<std::uint32_t>(88));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(140), aot_gpr_6);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[20] = (aot_gpr_29 + static_cast<std::uint32_t>(120));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(144), aot_gpr_6);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
|
|
ctx.gpr[21] = (aot_gpr_29 + static_cast<std::uint32_t>(136));
|
|
aot_gpr_4 = (aot_gpr_7 | 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(148), aot_gpr_6);
|
|
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(104));
|
|
aot_gpr_6 = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[31] = (0x08B6F6C8u);
|
|
aot_gpr_7 = (ctx.gpr[21] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 508u, 0x08A9BF74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6F6C8u) goto L_08B6F6C8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6F6C8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(16)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(20)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(184), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(188), aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(28)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(192), aot_gpr_4);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(196), aot_gpr_5);
|
|
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(184));
|
|
ctx.gpr[31] = (0x08B6F6F4u);
|
|
aot_gpr_5 = (ctx.gpr[18] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 500u, 0x08A9BEB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6F6F4u) goto L_08B6F6F4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6F6F4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(152), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(156), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(160), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(152)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(164), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(156)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(136), aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(160)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(140), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(164)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(144), aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(148), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(20)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(120), aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(124), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(28)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(128), aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(132), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(284), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(288), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(292), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(296), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(300), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(284));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(304), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(308), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(312), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(316), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_6 = (aot_gpr_29 + static_cast<std::uint32_t>(300));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(320), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(324), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(328), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(332), aot_gpr_4);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(316));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(336), aot_gpr_5);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(332));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(340), aot_gpr_7);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(348), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(344), aot_gpr_6);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_6 = (aot_gpr_6 ^ aot_gpr_7);
|
|
aot_gpr_6 = (0u < aot_gpr_6 ? 1u : 0u);
|
|
aot_gpr_6 = (aot_gpr_6 & 255u);
|
|
{ const bool branch_taken = aot_gpr_6 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6F85C;
|
|
}
|
|
goto L_08B6F804;
|
|
}
|
|
L_08B6F804:
|
|
aot_gpr_6 = (aot_gpr_4 | 0u);
|
|
goto L_08B6F808;
|
|
L_08B6F808:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_7 = (aot_gpr_7 + static_cast<std::uint32_t>(8));
|
|
{ const bool branch_taken = aot_gpr_7 != ctx.gpr[8];
|
|
aot_mem.aot_direct_store32(aot_gpr_6 + static_cast<std::uint32_t>(0), aot_gpr_7);
|
|
if (branch_taken) {
|
|
goto L_08B6F840;
|
|
}
|
|
goto L_08B6F81C;
|
|
}
|
|
L_08B6F81C:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_7 = (aot_gpr_7 + static_cast<std::uint32_t>(4));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_6 + static_cast<std::uint32_t>(12), aot_gpr_7);
|
|
aot_mem.aot_direct_store32(aot_gpr_6 + static_cast<std::uint32_t>(4), ctx.gpr[8]);
|
|
aot_gpr_7 = (ctx.gpr[8] + static_cast<std::uint32_t>(128));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_6 + static_cast<std::uint32_t>(8), aot_gpr_7);
|
|
aot_mem.aot_direct_store32(aot_gpr_6 + static_cast<std::uint32_t>(0), ctx.gpr[8]);
|
|
goto L_08B6F840;
|
|
L_08B6F840:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_6 = (aot_gpr_6 ^ aot_gpr_7);
|
|
aot_gpr_6 = (0u < aot_gpr_6 ? 1u : 0u);
|
|
aot_gpr_6 = (aot_gpr_6 & 255u);
|
|
{ const bool branch_taken = aot_gpr_6 != 0u;
|
|
aot_gpr_6 = (aot_gpr_4 | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B6F808;
|
|
}
|
|
goto L_08B6F85C;
|
|
}
|
|
L_08B6F85C:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(164)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(28)));
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(4));
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(4));
|
|
ctx.gpr[31] = (0x08B6F874u);
|
|
aot_gpr_4 = (aot_gpr_16 | 0u);
|
|
goto L_08B6F1DC;
|
|
L_08B6F874:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(152)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(156)));
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(160)));
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(0), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(164)));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_6, aot_gpr_7, aot_gpr_4};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_5 + static_cast<std::uint32_t>(4), aot_run_words); }
|
|
goto L_08B6F898;
|
|
L_08B6F898:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(200), aot_gpr_4);
|
|
aot_gpr_4 = (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>(204), aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(208), aot_gpr_4);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(212), aot_gpr_5);
|
|
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(200));
|
|
ctx.gpr[31] = (0x08B6F8C4u);
|
|
aot_gpr_5 = (ctx.gpr[19] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 386u, 0x08A9B124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6F8C4u) goto L_08B6F8C4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6F8C4:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(12)));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(12), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6F8E8;
|
|
}
|
|
goto L_08B6F8E8;
|
|
}
|
|
L_08B6F8E8:
|
|
{ std::uint32_t aot_run_words[7]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(352), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[19] = aot_run_words[3];
|
|
ctx.gpr[20] = aot_run_words[4];
|
|
ctx.gpr[21] = aot_run_words[5];
|
|
ctx.gpr[31] = aot_run_words[6];
|
|
}
|
|
jump_target = ctx.gpr[31];
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(384));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B6F90C:
|
|
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>(4), aot_gpr_16);
|
|
aot_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(28)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[17]);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), ctx.gpr[31]);
|
|
ctx.gpr[17] = (aot_gpr_4 + static_cast<std::uint32_t>(4));
|
|
aot_gpr_6 = (ctx.gpr[17] < aot_gpr_5 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_6 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6F980;
|
|
}
|
|
goto L_08B6F938;
|
|
}
|
|
L_08B6F938:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_4 = (aot_gpr_5 + static_cast<std::uint32_t>(128));
|
|
{ const bool branch_taken = aot_gpr_5 == aot_gpr_4;
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(0u));
|
|
if (branch_taken) {
|
|
goto L_08B6F954;
|
|
}
|
|
goto L_08B6F948;
|
|
}
|
|
L_08B6F948:
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(8));
|
|
goto L_08B6F94C;
|
|
L_08B6F94C:
|
|
{ const bool branch_taken = aot_gpr_5 != aot_gpr_4;
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(8));
|
|
if (branch_taken) {
|
|
goto L_08B6F94C;
|
|
}
|
|
goto L_08B6F954;
|
|
}
|
|
L_08B6F954:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = aot_gpr_4 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6F968;
|
|
}
|
|
goto L_08B6F960;
|
|
}
|
|
L_08B6F960:
|
|
ctx.gpr[31] = (0x08B6F968u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6F968u) goto L_08B6F968;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6F968:
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(28)));
|
|
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(4));
|
|
aot_gpr_4 = (ctx.gpr[17] < aot_gpr_5 ? 1u : 0u);
|
|
{ const bool branch_taken = aot_gpr_4 != 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6F938;
|
|
}
|
|
goto L_08B6F97C;
|
|
}
|
|
L_08B6F97C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(12)));
|
|
goto L_08B6F980;
|
|
L_08B6F980:
|
|
aot_gpr_7 = (aot_gpr_4 | 0u);
|
|
aot_gpr_6 = (aot_gpr_5 | 0u);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = aot_gpr_7 == aot_gpr_6;
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(16)));
|
|
if (branch_taken) {
|
|
goto L_08B6F9E4;
|
|
}
|
|
goto L_08B6F994;
|
|
}
|
|
L_08B6F994:
|
|
aot_gpr_6 = (aot_gpr_4 | 0u);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(1), static_cast<std::uint8_t>(0u));
|
|
{ const bool branch_taken = aot_gpr_6 == aot_gpr_4;
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(20)));
|
|
if (branch_taken) {
|
|
goto L_08B6F9B4;
|
|
}
|
|
goto L_08B6F9A8;
|
|
}
|
|
L_08B6F9A8:
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(8));
|
|
goto L_08B6F9AC;
|
|
L_08B6F9AC:
|
|
{ const bool branch_taken = aot_gpr_6 != aot_gpr_4;
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(8));
|
|
if (branch_taken) {
|
|
goto L_08B6F9AC;
|
|
}
|
|
goto L_08B6F9B4;
|
|
}
|
|
L_08B6F9B4:
|
|
aot_gpr_4 = (aot_gpr_7 | 0u);
|
|
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(2), static_cast<std::uint8_t>(0u));
|
|
if (branch_taken) {
|
|
goto L_08B6F9CC;
|
|
}
|
|
goto L_08B6F9C0;
|
|
}
|
|
L_08B6F9C0:
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(8));
|
|
goto L_08B6F9C4;
|
|
L_08B6F9C4:
|
|
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(8));
|
|
if (branch_taken) {
|
|
goto L_08B6F9C4;
|
|
}
|
|
goto L_08B6F9CC;
|
|
}
|
|
L_08B6F9CC:
|
|
if (aot_gpr_7 == 0u) {
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
goto L_08B6F9FC;
|
|
}
|
|
goto L_08B6F9D4;
|
|
L_08B6F9D4:
|
|
ctx.gpr[31] = (0x08B6F9DCu);
|
|
aot_gpr_4 = (aot_gpr_7 | 0u);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6F9DCu) goto L_08B6F9DC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6F9DC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
if (branch_taken) {
|
|
goto L_08B6F9FC;
|
|
}
|
|
goto L_08B6F9E4;
|
|
}
|
|
L_08B6F9E4:
|
|
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
|
|
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(3), static_cast<std::uint8_t>(0u));
|
|
if (branch_taken) {
|
|
goto L_08B6F9F8;
|
|
}
|
|
goto L_08B6F9EC;
|
|
}
|
|
L_08B6F9EC:
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(8));
|
|
goto L_08B6F9F0;
|
|
L_08B6F9F0:
|
|
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(8));
|
|
if (branch_taken) {
|
|
goto L_08B6F9F0;
|
|
}
|
|
goto L_08B6F9F8;
|
|
}
|
|
L_08B6F9F8:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
goto L_08B6F9FC;
|
|
L_08B6F9FC:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_5 = (aot_gpr_16 + static_cast<std::uint32_t>(16));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(0), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(12)));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_6, aot_gpr_7, aot_gpr_4};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_5 + static_cast<std::uint32_t>(4), aot_run_words); }
|
|
{ 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];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6FA30:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(28)));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(32)));
|
|
ctx.gpr[8] = (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)));
|
|
aot_gpr_6 = (aot_gpr_6 - aot_gpr_7);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(36)));
|
|
aot_mem.aot_direct_store16(aot_gpr_29 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[8]));
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_6) >> 2u));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_5);
|
|
aot_gpr_5 = (ctx.gpr[8] >> 30u);
|
|
aot_gpr_5 = (aot_gpr_6 + aot_gpr_5);
|
|
aot_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_5) >> 2u));
|
|
aot_gpr_5 = (aot_gpr_7 - aot_gpr_5);
|
|
aot_gpr_5 = (aot_gpr_5 < static_cast<std::uint32_t>(2) ? 1u : 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6FA8C;
|
|
}
|
|
goto L_08B6FA78;
|
|
}
|
|
L_08B6FA78:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
aot_gpr_5 = (0u | 1u);
|
|
ctx.gpr[31] = (0x08B6FA88u);
|
|
aot_gpr_6 = (0u | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0219_entry, 219u, 20u, 0x08B70280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6FA88u) goto L_08B6FA88;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6FA88:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(8)));
|
|
goto L_08B6FA8C;
|
|
L_08B6FA8C:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
aot_gpr_4 = (0u | 128u);
|
|
ctx.gpr[31] = (0x08B6FA9Cu);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_gpr_4);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6FA9Cu) goto L_08B6FA9C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6FA9C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(12)));
|
|
if (branch_taken) {
|
|
goto L_08B6FAC0;
|
|
}
|
|
goto L_08B6FAAC;
|
|
}
|
|
L_08B6FAAC:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
ctx.gpr[31] = (0x08B6FAB8u);
|
|
aot_gpr_4 = (aot_gpr_6 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 289u, 0x08B65438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6FAB8u) goto L_08B6FAB8;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6FAB8:
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(8)));
|
|
goto L_08B6FAC0;
|
|
L_08B6FAC0:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(28)));
|
|
aot_mem.aot_direct_store32(aot_gpr_6 + static_cast<std::uint32_t>(4), aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(16)));
|
|
if (aot_gpr_5 == 0u) {
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(28)));
|
|
goto L_08B6FAE8;
|
|
}
|
|
goto L_08B6FAD4;
|
|
L_08B6FAD4:
|
|
aot_gpr_6 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast<std::uint32_t>(0))))));
|
|
aot_mem.aot_direct_store16(aot_gpr_5 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(aot_gpr_6));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(4), aot_gpr_6);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(28)));
|
|
goto L_08B6FAE8;
|
|
L_08B6FAE8:
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(4));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(28), aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(20), aot_gpr_6);
|
|
aot_gpr_5 = (aot_gpr_6 + static_cast<std::uint32_t>(128));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(20)));
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(24), aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(16), aot_gpr_6);
|
|
ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.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_08B6FB14:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(32)));
|
|
ctx.gpr[8] = (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)));
|
|
aot_gpr_6 = (aot_gpr_6 - aot_gpr_7);
|
|
aot_mem.aot_direct_store16(aot_gpr_29 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[8]));
|
|
aot_gpr_7 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_6) >> 2u));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_5);
|
|
aot_gpr_5 = (aot_gpr_7 >> 30u);
|
|
aot_gpr_5 = (aot_gpr_6 + aot_gpr_5);
|
|
aot_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_5) >> 2u));
|
|
aot_gpr_5 = (aot_gpr_5 < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
if (branch_taken) {
|
|
goto L_08B6FB68;
|
|
}
|
|
goto L_08B6FB54;
|
|
}
|
|
L_08B6FB54:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
aot_gpr_5 = (0u | 1u);
|
|
ctx.gpr[31] = (0x08B6FB64u);
|
|
aot_gpr_6 = (0u | 1u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0219_entry, 219u, 20u, 0x08B70280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6FB64u) goto L_08B6FB64;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6FB64:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(8)));
|
|
goto L_08B6FB68;
|
|
L_08B6FB68:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
aot_gpr_4 = (0u | 128u);
|
|
ctx.gpr[31] = (0x08B6FB78u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_gpr_4);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6FB78u) goto L_08B6FB78;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6FB78:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = aot_gpr_5 != 0u;
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(12)));
|
|
if (branch_taken) {
|
|
goto L_08B6FB9C;
|
|
}
|
|
goto L_08B6FB88;
|
|
}
|
|
L_08B6FB88:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
ctx.gpr[31] = (0x08B6FB94u);
|
|
aot_gpr_4 = (aot_gpr_6 | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 289u, 0x08B65438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6FB94u) goto L_08B6FB94;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6FB94:
|
|
aot_gpr_5 = (ctx.gpr[2] | 0u);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(8)));
|
|
goto L_08B6FB9C;
|
|
L_08B6FB9C:
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_direct_store32(aot_gpr_6 + static_cast<std::uint32_t>(-4), aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-4));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(12), aot_gpr_5);
|
|
aot_gpr_5 = (aot_gpr_6 + static_cast<std::uint32_t>(128));
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(4), aot_gpr_6);
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(8), aot_gpr_5);
|
|
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-8));
|
|
{ const bool branch_taken = aot_gpr_5 == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(0), aot_gpr_5);
|
|
if (branch_taken) {
|
|
goto L_08B6FBDC;
|
|
}
|
|
goto L_08B6FBCC;
|
|
}
|
|
L_08B6FBCC:
|
|
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_29 + static_cast<std::uint32_t>(0))))));
|
|
aot_mem.aot_direct_store16(aot_gpr_5 + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(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(aot_gpr_5 + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
goto L_08B6FBDC;
|
|
L_08B6FBDC:
|
|
ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.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_08B6FBE8:
|
|
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_gpr_16 = (aot_gpr_4 | 0u);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[31]);
|
|
if (aot_gpr_4 == 0u) {
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(12)));
|
|
goto L_08B6FC10;
|
|
}
|
|
goto L_08B6FC04;
|
|
L_08B6FC04:
|
|
ctx.gpr[31] = (0x08B6FC0Cu);
|
|
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, ctx.gpr[31]); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6FC0Cu) goto L_08B6FC0C;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6FC0C:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(12)));
|
|
goto L_08B6FC10;
|
|
L_08B6FC10:
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(4));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(12), aot_gpr_4);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(4), aot_gpr_5);
|
|
aot_gpr_4 = (aot_gpr_5 + static_cast<std::uint32_t>(128));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(0), aot_gpr_5);
|
|
aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
jump_target = ctx.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_08B6FC40:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-64));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(44), aot_gpr_16);
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(aot_gpr_7 + static_cast<std::uint32_t>(0))))));
|
|
aot_gpr_16 = (aot_gpr_6 | 0u);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store16(aot_gpr_29 + static_cast<std::uint32_t>(36), static_cast<std::uint16_t>(ctx.gpr[8]));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(40), aot_gpr_6);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_gpr_6);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(24), aot_gpr_6);
|
|
aot_gpr_7 = (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>(48), ctx.gpr[17]);
|
|
ctx.gpr[17] = (aot_gpr_5 | 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(28), aot_gpr_7);
|
|
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(4));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_6 = (aot_gpr_29 + static_cast<std::uint32_t>(20));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(52), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08B6FC94u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(32), aot_gpr_7);
|
|
goto L_08B6FCFC;
|
|
L_08B6FC94:
|
|
{ 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_4 = aot_run_words[0];
|
|
aot_gpr_5 = aot_run_words[1];
|
|
aot_gpr_6 = aot_run_words[2];
|
|
}
|
|
aot_mem.aot_direct_store32(aot_gpr_16 + static_cast<std::uint32_t>(0), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_5, aot_gpr_6, aot_gpr_4};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_16 + static_cast<std::uint32_t>(4), aot_run_words); }
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(36)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(40)));
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(0), aot_gpr_5);
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(4), aot_gpr_6);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(12), aot_gpr_4);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(44), aot_run_words);
|
|
aot_gpr_16 = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[31] = aot_run_words[2];
|
|
}
|
|
jump_target = ctx.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_08B6FCFC:
|
|
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-320));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(300), aot_gpr_16);
|
|
aot_gpr_16 = (aot_gpr_5 | 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(304), ctx.gpr[17]);
|
|
ctx.gpr[17] = (aot_gpr_6 | 0u);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_6 = (aot_gpr_6 - aot_gpr_5);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_6) >> 2u));
|
|
ctx.gpr[8] = (ctx.gpr[8] >> 30u);
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_6 = (aot_gpr_6 + ctx.gpr[8]);
|
|
ctx.gpr[8] = (aot_gpr_7 - ctx.gpr[9]);
|
|
aot_gpr_6 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_6) >> 2u));
|
|
ctx.gpr[9] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[8]) >> 3u));
|
|
ctx.gpr[10] = (aot_gpr_6 << 4u);
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[9] = (ctx.gpr[9] >> 29u);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[8] = (ctx.gpr[8] + ctx.gpr[9]);
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[8]) >> 3u));
|
|
ctx.gpr[11] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(28)));
|
|
ctx.gpr[9] = (aot_gpr_6 - aot_gpr_7);
|
|
ctx.gpr[8] = (ctx.gpr[10] + ctx.gpr[8]);
|
|
ctx.gpr[2] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[9]) >> 3u));
|
|
ctx.gpr[10] = (ctx.gpr[11] - aot_gpr_5);
|
|
ctx.gpr[11] = (ctx.gpr[2] >> 29u);
|
|
ctx.gpr[9] = (ctx.gpr[9] + ctx.gpr[11]);
|
|
ctx.gpr[11] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[9] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[9]) >> 3u));
|
|
ctx.gpr[3] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(20)));
|
|
ctx.gpr[8] = (ctx.gpr[8] + ctx.gpr[9]);
|
|
ctx.gpr[2] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[10]) >> 2u));
|
|
ctx.gpr[9] = (ctx.gpr[11] - ctx.gpr[3]);
|
|
ctx.gpr[2] = (ctx.gpr[2] >> 30u);
|
|
ctx.gpr[11] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[9]) >> 3u));
|
|
ctx.gpr[10] = (ctx.gpr[10] + ctx.gpr[2]);
|
|
ctx.gpr[11] = (ctx.gpr[11] >> 29u);
|
|
ctx.gpr[10] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[10]) >> 2u));
|
|
ctx.gpr[9] = (ctx.gpr[9] + ctx.gpr[11]);
|
|
ctx.gpr[10] = (ctx.gpr[10] << 4u);
|
|
ctx.gpr[11] = (aot_gpr_6 - aot_gpr_7);
|
|
ctx.gpr[9] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[9]) >> 3u));
|
|
ctx.gpr[2] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[11]) >> 3u));
|
|
ctx.gpr[9] = (ctx.gpr[10] + ctx.gpr[9]);
|
|
ctx.gpr[10] = (ctx.gpr[2] >> 29u);
|
|
ctx.gpr[10] = (ctx.gpr[11] + ctx.gpr[10]);
|
|
ctx.gpr[10] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[10]) >> 3u));
|
|
ctx.gpr[9] = (ctx.gpr[9] + ctx.gpr[10]);
|
|
ctx.gpr[9] = (ctx.gpr[9] + static_cast<std::uint32_t>(-16));
|
|
ctx.gpr[8] = (ctx.gpr[8] + static_cast<std::uint32_t>(-16));
|
|
ctx.gpr[9] = (ctx.gpr[9] >> 1u);
|
|
ctx.gpr[9] = (static_cast<std::int32_t>(ctx.gpr[8]) < static_cast<std::int32_t>(ctx.gpr[9]) ? 1u : 0u);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(308), ctx.gpr[31]);
|
|
if (ctx.gpr[9] == 0u) {
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(16)));
|
|
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0219_entry, 219u, 4u, 0x08B70018u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
goto L_08B6FDE0;
|
|
L_08B6FDE0:
|
|
ctx.gpr[11] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[9] = (aot_gpr_7 | 0u);
|
|
{ const bool branch_taken = ctx.gpr[9] == ctx.gpr[11];
|
|
ctx.gpr[10] = (aot_gpr_7 + static_cast<std::uint32_t>(-8));
|
|
if (branch_taken) {
|
|
goto L_08B6FE24;
|
|
}
|
|
goto L_08B6FDF0;
|
|
}
|
|
L_08B6FDF0:
|
|
{ const bool branch_taken = ctx.gpr[10] == 0u;
|
|
aot_gpr_7 = (aot_gpr_7 + static_cast<std::uint32_t>(-8));
|
|
if (branch_taken) {
|
|
goto L_08B6FE1C;
|
|
}
|
|
goto L_08B6FDF8;
|
|
}
|
|
L_08B6FDF8:
|
|
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[9] + static_cast<std::uint32_t>(0))))));
|
|
aot_mem.aot_direct_store16(ctx.gpr[10] + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(aot_gpr_5));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[9] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[10] + static_cast<std::uint32_t>(4), aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[11] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
|
|
aot_gpr_7 = (aot_gpr_7 + static_cast<std::uint32_t>(-8));
|
|
goto L_08B6FE1C;
|
|
L_08B6FE1C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(0), aot_gpr_7);
|
|
if (branch_taken) {
|
|
goto L_08B6FE4C;
|
|
}
|
|
goto L_08B6FE24;
|
|
}
|
|
L_08B6FE24:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(292), aot_gpr_4);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(296), ctx.gpr[8]);
|
|
ctx.gpr[31] = (0x08B6FE34u);
|
|
aot_gpr_5 = (ctx.gpr[9] | 0u);
|
|
goto L_08B6FB14;
|
|
L_08B6FE34:
|
|
ctx.gpr[11] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(292)));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(296)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[11] + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[11] + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[11] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[11] = (aot_mem.aot_direct_load32(ctx.gpr[11] + static_cast<std::uint32_t>(4)));
|
|
goto L_08B6FE4C;
|
|
L_08B6FE4C:
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(84), aot_gpr_7);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(92), aot_gpr_6);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(84)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(88), ctx.gpr[11]);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(96), aot_gpr_5);
|
|
ctx.gpr[10] = (aot_gpr_4 + static_cast<std::uint32_t>(8));
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(92)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(84), ctx.gpr[10]);
|
|
{ const bool branch_taken = ctx.gpr[10] != ctx.gpr[9];
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(96)));
|
|
if (branch_taken) {
|
|
goto L_08B6FE94;
|
|
}
|
|
goto L_08B6FE74;
|
|
}
|
|
L_08B6FE74:
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(4));
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(96), aot_gpr_4);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(88), ctx.gpr[9]);
|
|
ctx.gpr[9] = (ctx.gpr[9] + static_cast<std::uint32_t>(128));
|
|
ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(88)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(92), ctx.gpr[9]);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(84), ctx.gpr[10]);
|
|
goto L_08B6FE94;
|
|
L_08B6FE94:
|
|
ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(84)));
|
|
ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(88)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(100), ctx.gpr[10]);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(108), ctx.gpr[9]);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(104), ctx.gpr[2]);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(112), aot_gpr_4);
|
|
aot_gpr_4 = (ctx.gpr[10] + static_cast<std::uint32_t>(8));
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(108)));
|
|
{ const bool branch_taken = aot_gpr_4 != ctx.gpr[9];
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(100), aot_gpr_4);
|
|
if (branch_taken) {
|
|
goto L_08B6FEE0;
|
|
}
|
|
goto L_08B6FEBC;
|
|
}
|
|
L_08B6FEBC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(112)));
|
|
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(4));
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(112), aot_gpr_4);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(104), ctx.gpr[9]);
|
|
aot_gpr_4 = (ctx.gpr[9] + static_cast<std::uint32_t>(128));
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(104)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(108), aot_gpr_4);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(100), ctx.gpr[9]);
|
|
goto L_08B6FEE0;
|
|
L_08B6FEE0:
|
|
{ const std::uint32_t aot_run_words[4]{aot_gpr_7, ctx.gpr[11], aot_gpr_6, aot_gpr_5};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(244), aot_run_words); }
|
|
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(244));
|
|
ctx.gpr[31] = (0x08B6FEFCu);
|
|
aot_gpr_5 = (ctx.gpr[8] | 0u);
|
|
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 386u, 0x08A9B124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6FEFCu) goto L_08B6FEFC;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B6FEFC:
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), aot_gpr_5);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_6, aot_gpr_4, aot_gpr_5};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_run_words); }
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(116), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(120), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(8)));
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(116)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(124), aot_gpr_4);
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(12)));
|
|
aot_gpr_7 = (aot_gpr_5 + static_cast<std::uint32_t>(8));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(128), aot_gpr_4);
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(124)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(116), aot_gpr_7);
|
|
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(92)));
|
|
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(96)));
|
|
{ const bool branch_taken = aot_gpr_7 != ctx.gpr[8];
|
|
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(128)));
|
|
if (branch_taken) {
|
|
goto L_08B6FF9C;
|
|
}
|
|
goto L_08B6FF7C;
|
|
}
|
|
L_08B6FF7C:
|
|
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(4));
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(128), aot_gpr_6);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(120), aot_gpr_7);
|
|
aot_gpr_7 = (aot_gpr_7 + static_cast<std::uint32_t>(128));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(120)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(124), aot_gpr_7);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(116), ctx.gpr[8]);
|
|
goto L_08B6FF9C;
|
|
L_08B6FF9C:
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(100)));
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(104)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(36), aot_gpr_7);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(108)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(40), ctx.gpr[9]);
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(112)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(44), aot_gpr_7);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(116)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(48), ctx.gpr[9]);
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(120)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(52), aot_gpr_7);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(124)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(56), ctx.gpr[9]);
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(60), aot_gpr_7);
|
|
aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(84)));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(64), aot_gpr_6);
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(88)));
|
|
{ const std::uint32_t aot_run_words[3]{aot_gpr_7, ctx.gpr[9], aot_gpr_5};
|
|
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(68), aot_run_words); }
|
|
ctx.gpr[8] = (aot_gpr_29 + static_cast<std::uint32_t>(20));
|
|
ctx.gpr[10] = (aot_gpr_29 + static_cast<std::uint32_t>(36));
|
|
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(80), aot_gpr_4);
|
|
aot_gpr_6 = (aot_gpr_29 + static_cast<std::uint32_t>(52));
|
|
aot_gpr_7 = (aot_gpr_29 + static_cast<std::uint32_t>(68));
|
|
ctx.pc = 0x08B70000u; AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
|
|
#undef AOT_REGCACHE_SYNC_IN
|
|
#undef AOT_REGCACHE_SYNC_OUT
|
|
|
|
void recomp_unit_0218(Runtime &rt, AllegrexContext &ctx) {
|
|
auto aot_mem = rt.memory().aot_fast_view();
|
|
recomp_unit_0218_entry(rt, ctx, 0u, aot_mem);
|
|
}
|
|
|
|
void register_generated_unit_218(Runtime &runtime) {
|
|
runtime.register_generated_unit(218u, 0x08B6C000u, 16384u, &recomp_unit_0218, &recomp_unit_0218_entry);
|
|
// PSPRECOMP_V812_COMPACT_REGISTRATION: same entry set, looped once in Runtime instead of source-expanded calls.
|
|
runtime.register_generated_entry_mask(0x08B6C000u, &recomp_unit_0218, "recomp_unit_0218",
|
|
kEntryMasks_recomp_unit_0218, 64u);
|
|
}
|
|
} // namespace psprecomp
|