Files
PSPRecomp/profiles/vcs/host/vcs_tier2_cluster_world.cpp
T
Jessica_Natalia 62f5774b9a otimizações round 11 (corrigido slowdonws)
otimizações round 11 (corrigido slowdonws)
2026-08-17 21:36:59 -03:00

5167 lines
206 KiB
C++

// AUTO-GENERATED by profiles/vcs/tools/build_tier2_superblocks.py.
// Tier-2 SUPERBLOCK V4 150FPS cluster: world
#include "vcs_tier2_superblocks.hpp"
#include "psprecomp/runtime.hpp"
#include "generated_units.hpp"
#include "vcs_fast_paths.hpp"
#include "vcs_tier2_direct_memory.hpp"
#include <cstdint>
namespace vcs {
using namespace psprecomp;
void tier2_superblock_world(psprecomp::Runtime &rt,
psprecomp::AllegrexContext &ctx,
psprecomp::GuestMemory::AotFastView &aot_mem,
std::uint32_t entry_pc) {
tier2_detail::SampleScope tier2_scope(Tier2ClusterId::World);
auto &tier2_stats = tier2_scope.stats();
Tier2DirectMemoryView tier2_mem(rt.memory().direct_fastmem_base_address());
constexpr std::uint32_t kTier2ReturnCapacity = 32u;
std::uint32_t tier2_pending_transfers = 0u;
std::uint32_t tier2_return_depth = 0u;
std::uint32_t tier2_return_pc[kTier2ReturnCapacity];
std::uint32_t tier2_return_unit[kTier2ReturnCapacity];
std::uint32_t tier2_return_pending_base[kTier2ReturnCapacity];
std::uint32_t tier2_resume_pc = 0u;
std::uint32_t tier2_resume_unit = 0u;
std::uint32_t jump_target = 0u;
std::uint32_t local_pc = 0u;
std::uint32_t local_transfers = 0u;
std::uint32_t entry_id = 0u;
std::uint32_t tier2_gpr_4 = ctx.gpr[4];
std::uint32_t tier2_gpr_5 = ctx.gpr[5];
std::uint32_t tier2_gpr_16 = ctx.gpr[16];
std::uint32_t tier2_gpr_29 = ctx.gpr[29];
std::uint32_t tier2_gpr_6 = ctx.gpr[6];
std::uint32_t tier2_gpr_31 = ctx.gpr[31];
bool tier2_gpr_shadow_valid = true;
#define TIER2_GPR_SYNC_OUT() do { if (tier2_gpr_shadow_valid) { ctx.gpr[4] = tier2_gpr_4; ctx.gpr[5] = tier2_gpr_5; ctx.gpr[16] = tier2_gpr_16; ctx.gpr[29] = tier2_gpr_29; ctx.gpr[6] = tier2_gpr_6; ctx.gpr[31] = tier2_gpr_31; } } while (false)
#define TIER2_GPR_SYNC_IN() do { if (tier2_gpr_shadow_valid) { tier2_gpr_4 = ctx.gpr[4]; tier2_gpr_5 = ctx.gpr[5]; tier2_gpr_16 = ctx.gpr[16]; tier2_gpr_29 = ctx.gpr[29]; tier2_gpr_6 = ctx.gpr[6]; tier2_gpr_31 = ctx.gpr[31]; } } while (false)
#define TIER2_GPR_BEFORE_COLD() do { TIER2_GPR_SYNC_OUT(); tier2_gpr_shadow_valid = false; } while (false)
auto tier2_complete_shadow = [&](std::uint32_t count) -> bool {
TIER2_GPR_SYNC_OUT();
const bool same = rt.tier2_complete_fused_transfers(ctx, count);
if (!same) tier2_gpr_shadow_valid = false;
return same;
};
#define TIER2_SB_RETURN() do { TIER2_GPR_SYNC_OUT(); tier2_scope.finish(); /* Unwind every logical invoke_chained_direct frame in true LIFO order. Tail frames created inside a fused JAL unwind before that JAL; outer JAL frames are also released after context invalidation. */ while (tier2_return_depth != 0u) { std::uint32_t tier2_base_ = tier2_return_pending_base[tier2_return_depth - 1u]; if (tier2_base_ > tier2_pending_transfers) { ++tier2_stats.fallbacks; tier2_base_ = tier2_pending_transfers; } const std::uint32_t tier2_tail_count_ = tier2_pending_transfers - tier2_base_; tier2_pending_transfers = tier2_base_; if (tier2_tail_count_ != 0u) (void)tier2_complete_shadow(tier2_tail_count_); --tier2_return_depth; (void)tier2_complete_shadow(1u); } if (tier2_pending_transfers != 0u) { (void)tier2_complete_shadow(tier2_pending_transfers); tier2_pending_transfers = 0u; } return; } while (false)
goto TIER2_ENTRY_DISPATCH;
TIER2_FUSED_RETURN_DISPATCH:
switch (tier2_resume_pc) {
case 0x08A79AB4u: goto SB_L_08A79AB4;
case 0x08A79AD4u: goto SB_L_08A79AD4;
case 0x08A79ADCu: goto SB_L_08A79ADC;
case 0x08A79AE4u: goto SB_L_08A79AE4;
case 0x08A79AF0u: goto SB_L_08A79AF0;
case 0x08A79B00u: goto SB_L_08A79B00;
case 0x08A79B08u: goto SB_L_08A79B08;
case 0x08A79B10u: goto SB_L_08A79B10;
case 0x08A79B14u: goto SB_L_08A79B14;
case 0x08A79DF8u: goto SB_L_08A79DF8;
case 0x08A79E30u: goto SB_L_08A79E30;
case 0x08A79E34u: goto SB_L_08A79E34;
case 0x08A79E50u: goto SB_L_08A79E50;
case 0x08A79E64u: goto SB_L_08A79E64;
case 0x08A79E78u: goto SB_L_08A79E78;
case 0x08A79E7Cu: goto SB_L_08A79E7C;
case 0x08A79E98u: goto SB_L_08A79E98;
case 0x08A79EACu: goto SB_L_08A79EAC;
case 0x08A79EC0u: goto SB_L_08A79EC0;
case 0x08A79EC4u: goto SB_L_08A79EC4;
case 0x08A79EE0u: goto SB_L_08A79EE0;
case 0x08A79EF4u: goto SB_L_08A79EF4;
case 0x08A79F00u: goto SB_L_08A79F00;
case 0x08A79F04u: goto SB_L_08A79F04;
case 0x08A79F1Cu: goto SB_L_08A79F1C;
case 0x08A79F28u: goto SB_L_08A79F28;
case 0x08A79F5Cu: goto SB_L_08A79F5C;
case 0x08A79F80u: goto SB_L_08A79F80;
case 0x08A79F88u: goto SB_L_08A79F88;
case 0x08A79F90u: goto SB_L_08A79F90;
case 0x08A79FB0u: goto SB_L_08A79FB0;
case 0x08A79FB4u: goto SB_L_08A79FB4;
case 0x08A79FC8u: goto SB_L_08A79FC8;
case 0x08A79FD4u: goto SB_L_08A79FD4;
case 0x08A79FF0u: goto SB_L_08A79FF0;
case 0x08A79FF8u: goto SB_L_08A79FF8;
case 0x08A7A00Cu: goto SB_L_08A7A00C;
case 0x08A7A014u: goto SB_L_08A7A014;
case 0x08A7A01Cu: goto SB_L_08A7A01C;
case 0x08A7A024u: goto SB_L_08A7A024;
case 0x08A7A038u: goto SB_L_08A7A038;
case 0x08A7A040u: goto SB_L_08A7A040;
case 0x08A7A044u: goto SB_L_08A7A044;
case 0x08A7A054u: goto SB_L_08A7A054;
case 0x08A7A060u: goto SB_L_08A7A060;
case 0x08A7A068u: goto SB_L_08A7A068;
case 0x08A7A06Cu: goto SB_L_08A7A06C;
case 0x08A7A074u: goto SB_L_08A7A074;
case 0x08A7A664u: goto SB_L_08A7A664;
case 0x08A7A690u: goto SB_L_08A7A690;
case 0x08A7A6ACu: goto SB_L_08A7A6AC;
case 0x08A7A6B8u: goto SB_L_08A7A6B8;
case 0x08A7A6C0u: goto SB_L_08A7A6C0;
case 0x08A7A6D0u: goto SB_L_08A7A6D0;
case 0x08A7A6ECu: goto SB_L_08A7A6EC;
case 0x08A7A704u: goto SB_L_08A7A704;
case 0x08A7A708u: goto SB_L_08A7A708;
case 0x08A7A70Cu: goto SB_L_08A7A70C;
case 0x08A7A714u: goto SB_L_08A7A714;
case 0x08A7A730u: goto SB_L_08A7A730;
case 0x08A7A738u: goto SB_L_08A7A738;
case 0x08A7A75Cu: goto SB_L_08A7A75C;
case 0x08A7A774u: goto SB_L_08A7A774;
case 0x08A7A778u: goto SB_L_08A7A778;
case 0x08A7A784u: goto SB_L_08A7A784;
case 0x08A7A79Cu: goto SB_L_08A7A79C;
case 0x08A7A7B8u: goto SB_L_08A7A7B8;
case 0x08A7A7C0u: goto SB_L_08A7A7C0;
case 0x08A7A7C8u: goto SB_L_08A7A7C8;
case 0x08A7A7E0u: goto SB_L_08A7A7E0;
case 0x08A7A7F0u: goto SB_L_08A7A7F0;
case 0x08A7A7F8u: goto SB_L_08A7A7F8;
case 0x08A7A800u: goto SB_L_08A7A800;
case 0x08A7A808u: goto SB_L_08A7A808;
case 0x08A7A810u: goto SB_L_08A7A810;
case 0x08A7A818u: goto SB_L_08A7A818;
case 0x08A7A834u: goto SB_L_08A7A834;
case 0x08A7A844u: goto SB_L_08A7A844;
case 0x08A7A854u: goto SB_L_08A7A854;
case 0x08A7A86Cu: goto SB_L_08A7A86C;
case 0x08A7A880u: goto SB_L_08A7A880;
case 0x08A7A88Cu: goto SB_L_08A7A88C;
case 0x08A7A894u: goto SB_L_08A7A894;
case 0x08A7A89Cu: goto SB_L_08A7A89C;
case 0x08A7A8ACu: goto SB_L_08A7A8AC;
case 0x08A7A8B8u: goto SB_L_08A7A8B8;
case 0x08A7A8D0u: goto SB_L_08A7A8D0;
case 0x08A7A8E4u: goto SB_L_08A7A8E4;
case 0x08A7A8FCu: goto SB_L_08A7A8FC;
case 0x08A7A904u: goto SB_L_08A7A904;
case 0x08A7A90Cu: goto SB_L_08A7A90C;
case 0x08A7A928u: goto SB_L_08A7A928;
case 0x08A7A94Cu: goto SB_L_08A7A94C;
case 0x08A7AA6Cu: goto SB_L_08A7AA6C;
case 0x08A7AA74u: goto SB_L_08A7AA74;
case 0x08A7AA7Cu: goto SB_L_08A7AA7C;
case 0x08A7AA90u: goto SB_L_08A7AA90;
case 0x08A7AAB0u: goto SB_L_08A7AAB0;
case 0x08A7AAD0u: goto SB_L_08A7AAD0;
case 0x08A7AADCu: goto SB_L_08A7AADC;
case 0x08A7AAE4u: goto SB_L_08A7AAE4;
case 0x08A7AAECu: goto SB_L_08A7AAEC;
case 0x08A7AAF0u: goto SB_L_08A7AAF0;
case 0x08A7AB0Cu: goto SB_L_08A7AB0C;
case 0x08A7AB24u: goto SB_L_08A7AB24;
case 0x08A7AB28u: goto SB_L_08A7AB28;
case 0x08A7AB30u: goto SB_L_08A7AB30;
case 0x08A7AB38u: goto SB_L_08A7AB38;
case 0x08A7AB54u: goto SB_L_08A7AB54;
case 0x08A7AB6Cu: goto SB_L_08A7AB6C;
case 0x08A7AB80u: goto SB_L_08A7AB80;
case 0x08A7AB9Cu: goto SB_L_08A7AB9C;
case 0x08A7ABA4u: goto SB_L_08A7ABA4;
case 0x08A7ABC0u: goto SB_L_08A7ABC0;
case 0x08A7ABD0u: goto SB_L_08A7ABD0;
case 0x08A7ABE0u: goto SB_L_08A7ABE0;
case 0x08A7ABE4u: goto SB_L_08A7ABE4;
case 0x08A7AC10u: goto SB_L_08A7AC10;
case 0x08A7AC40u: goto SB_L_08A7AC40;
case 0x08A7AC48u: goto SB_L_08A7AC48;
case 0x08A7AC50u: goto SB_L_08A7AC50;
case 0x08A7AC58u: goto SB_L_08A7AC58;
case 0x08A7AC60u: goto SB_L_08A7AC60;
case 0x08A7AC68u: goto SB_L_08A7AC68;
case 0x08A7AC74u: goto SB_L_08A7AC74;
case 0x08A7AC7Cu: goto SB_L_08A7AC7C;
case 0x08A7AC98u: goto SB_L_08A7AC98;
case 0x08A7ACACu: goto SB_L_08A7ACAC;
case 0x08A7ACB0u: goto SB_L_08A7ACB0;
case 0x08A7ACB8u: goto SB_L_08A7ACB8;
case 0x08A7ACECu: goto SB_L_08A7ACEC;
case 0x08A7ACF4u: goto SB_L_08A7ACF4;
case 0x08A7AD00u: goto SB_L_08A7AD00;
case 0x08A7AD14u: goto SB_L_08A7AD14;
case 0x08A7AD1Cu: goto SB_L_08A7AD1C;
case 0x08A7AD24u: goto SB_L_08A7AD24;
case 0x08A7AD34u: goto SB_L_08A7AD34;
case 0x08A7AD3Cu: goto SB_L_08A7AD3C;
case 0x08A7AD40u: goto SB_L_08A7AD40;
case 0x08A7AD48u: goto SB_L_08A7AD48;
case 0x08A7AD54u: goto SB_L_08A7AD54;
case 0x08A7AF74u: goto SB_L_08A7AF74;
case 0x08A7AFB8u: goto SB_L_08A7AFB8;
case 0x08A7AFC0u: goto SB_L_08A7AFC0;
case 0x08A7AFC8u: goto SB_L_08A7AFC8;
case 0x08A7AFD0u: goto SB_L_08A7AFD0;
case 0x08A7B5A0u: goto SB_L_08A7B5A0;
case 0x08A7B5A8u: goto SB_L_08A7B5A8;
case 0x08A7B5B0u: goto SB_L_08A7B5B0;
case 0x08A7B5C4u: goto SB_L_08A7B5C4;
case 0x08A7B5CCu: goto SB_L_08A7B5CC;
case 0x08A7B604u: goto SB_L_08A7B604;
case 0x08A7B610u: goto SB_L_08A7B610;
case 0x08A7B61Cu: goto SB_L_08A7B61C;
case 0x08A7B630u: goto SB_L_08A7B630;
case 0x08A7B64Cu: goto SB_L_08A7B64C;
case 0x08A7B654u: goto SB_L_08A7B654;
case 0x08A7B65Cu: goto SB_L_08A7B65C;
case 0x08A7B660u: goto SB_L_08A7B660;
case 0x08A7B910u: goto SB_L_08A7B910;
case 0x08A7CEC8u: goto SB_L_08A7CEC8;
case 0x08A7CEFCu: goto SB_L_08A7CEFC;
case 0x08A7CF0Cu: goto SB_L_08A7CF0C;
case 0x08A7CF1Cu: goto SB_L_08A7CF1C;
case 0x08A7CF28u: goto SB_L_08A7CF28;
case 0x08A7CF44u: goto SB_L_08A7CF44;
case 0x08A7CF4Cu: goto SB_L_08A7CF4C;
case 0x08A7CF54u: goto SB_L_08A7CF54;
case 0x08A7CF5Cu: goto SB_L_08A7CF5C;
case 0x08A7CF64u: goto SB_L_08A7CF64;
case 0x08A7CF74u: goto SB_L_08A7CF74;
case 0x08A7CF90u: goto SB_L_08A7CF90;
case 0x08A7CFACu: goto SB_L_08A7CFAC;
case 0x08A7CFC8u: goto SB_L_08A7CFC8;
case 0x08A7CFDCu: goto SB_L_08A7CFDC;
case 0x08A7CFF0u: goto SB_L_08A7CFF0;
case 0x08A7D000u: goto SB_L_08A7D000;
case 0x08A7D008u: goto SB_L_08A7D008;
case 0x08A7D014u: goto SB_L_08A7D014;
case 0x08A7D01Cu: goto SB_L_08A7D01C;
case 0x08A7D020u: goto SB_L_08A7D020;
case 0x08A7D02Cu: goto SB_L_08A7D02C;
case 0x08A7D038u: goto SB_L_08A7D038;
case 0x08A7D054u: goto SB_L_08A7D054;
case 0x08A7D05Cu: goto SB_L_08A7D05C;
case 0x08A7D064u: goto SB_L_08A7D064;
case 0x08A7D070u: goto SB_L_08A7D070;
case 0x08A7D078u: goto SB_L_08A7D078;
case 0x08A7D080u: goto SB_L_08A7D080;
case 0x08A7D088u: goto SB_L_08A7D088;
case 0x08A7D090u: goto SB_L_08A7D090;
case 0x08A7D094u: goto SB_L_08A7D094;
case 0x08A7D0A0u: goto SB_L_08A7D0A0;
case 0x08A7D0A8u: goto SB_L_08A7D0A8;
case 0x08A7D0B8u: goto SB_L_08A7D0B8;
case 0x08A7D0D0u: goto SB_L_08A7D0D0;
case 0x08A7D0D8u: goto SB_L_08A7D0D8;
case 0x08A7D0E4u: goto SB_L_08A7D0E4;
case 0x08A7D0F4u: goto SB_L_08A7D0F4;
case 0x08A7D104u: goto SB_L_08A7D104;
case 0x08A7D11Cu: goto SB_L_08A7D11C;
case 0x08A7D124u: goto SB_L_08A7D124;
case 0x08A7D12Cu: goto SB_L_08A7D12C;
case 0x08A7D144u: goto SB_L_08A7D144;
case 0x08A7D14Cu: goto SB_L_08A7D14C;
case 0x08A7D158u: goto SB_L_08A7D158;
case 0x08A7D168u: goto SB_L_08A7D168;
case 0x08A7D178u: goto SB_L_08A7D178;
case 0x08A7D190u: goto SB_L_08A7D190;
case 0x08A7D198u: goto SB_L_08A7D198;
case 0x08A7D1A4u: goto SB_L_08A7D1A4;
case 0x08A7D1B4u: goto SB_L_08A7D1B4;
case 0x08A7D1C4u: goto SB_L_08A7D1C4;
case 0x08A7D1D0u: goto SB_L_08A7D1D0;
case 0x08A7D1ECu: goto SB_L_08A7D1EC;
case 0x08A7D1F4u: goto SB_L_08A7D1F4;
case 0x08A7D210u: goto SB_L_08A7D210;
case 0x08A7D214u: goto SB_L_08A7D214;
case 0x08A7D228u: goto SB_L_08A7D228;
case 0x08A7D238u: goto SB_L_08A7D238;
case 0x08A7D23Cu: goto SB_L_08A7D23C;
case 0x08A7D244u: goto SB_L_08A7D244;
case 0x08A7D258u: goto SB_L_08A7D258;
case 0x08A7D270u: goto SB_L_08A7D270;
case 0x08A7D274u: goto SB_L_08A7D274;
case 0x08A7D280u: goto SB_L_08A7D280;
case 0x08A7D2BCu: goto SB_L_08A7D2BC;
case 0x08A7D2C4u: goto SB_L_08A7D2C4;
case 0x08A7D2C8u: goto SB_L_08A7D2C8;
case 0x08A7D2D0u: goto SB_L_08A7D2D0;
case 0x08A7D2DCu: goto SB_L_08A7D2DC;
case 0x08A7D314u: goto SB_L_08A7D314;
case 0x08A7D31Cu: goto SB_L_08A7D31C;
case 0x08A7D32Cu: goto SB_L_08A7D32C;
case 0x08A7D334u: goto SB_L_08A7D334;
case 0x08A7D344u: goto SB_L_08A7D344;
case 0x08A7D350u: goto SB_L_08A7D350;
case 0x08A7D360u: goto SB_L_08A7D360;
case 0x08A7D370u: goto SB_L_08A7D370;
case 0x08A7D380u: goto SB_L_08A7D380;
case 0x08A7D390u: goto SB_L_08A7D390;
case 0x08A7D398u: goto SB_L_08A7D398;
case 0x08A7D3B4u: goto SB_L_08A7D3B4;
case 0x08A7D3C4u: goto SB_L_08A7D3C4;
case 0x08A7D3CCu: goto SB_L_08A7D3CC;
case 0x08A7D3D4u: goto SB_L_08A7D3D4;
case 0x08A7D3E8u: goto SB_L_08A7D3E8;
case 0x08A7D3F0u: goto SB_L_08A7D3F0;
case 0x08A7D400u: goto SB_L_08A7D400;
case 0x08A7D410u: goto SB_L_08A7D410;
case 0x08A7D420u: goto SB_L_08A7D420;
case 0x08A7D430u: goto SB_L_08A7D430;
case 0x08A7D440u: goto SB_L_08A7D440;
case 0x08A7D45Cu: goto SB_L_08A7D45C;
case 0x08A7D464u: goto SB_L_08A7D464;
case 0x08A7D46Cu: goto SB_L_08A7D46C;
case 0x08A7D474u: goto SB_L_08A7D474;
case 0x08A7D4ACu: goto SB_L_08A7D4AC;
case 0x08A7D4DCu: goto SB_L_08A7D4DC;
case 0x08A7D4E4u: goto SB_L_08A7D4E4;
case 0x08A7D4F4u: goto SB_L_08A7D4F4;
case 0x08A7D4FCu: goto SB_L_08A7D4FC;
case 0x08A7D50Cu: goto SB_L_08A7D50C;
case 0x08A7D518u: goto SB_L_08A7D518;
case 0x08A7D528u: goto SB_L_08A7D528;
case 0x08A7D538u: goto SB_L_08A7D538;
case 0x08A7D548u: goto SB_L_08A7D548;
case 0x08A7D558u: goto SB_L_08A7D558;
case 0x08A7D560u: goto SB_L_08A7D560;
case 0x08A7D580u: goto SB_L_08A7D580;
case 0x08A7D588u: goto SB_L_08A7D588;
case 0x08A7D590u: goto SB_L_08A7D590;
case 0x08A7D5A4u: goto SB_L_08A7D5A4;
case 0x08A7D5B0u: goto SB_L_08A7D5B0;
case 0x08A7D5C0u: goto SB_L_08A7D5C0;
case 0x08A7D5D0u: goto SB_L_08A7D5D0;
case 0x08A7D5E0u: goto SB_L_08A7D5E0;
case 0x08A7D5F0u: goto SB_L_08A7D5F0;
case 0x08A7D60Cu: goto SB_L_08A7D60C;
case 0x08A7D618u: goto SB_L_08A7D618;
case 0x08A7D62Cu: goto SB_L_08A7D62C;
case 0x08A7D634u: goto SB_L_08A7D634;
case 0x08A7D63Cu: goto SB_L_08A7D63C;
case 0x08A7D644u: goto SB_L_08A7D644;
case 0x08A7D64Cu: goto SB_L_08A7D64C;
case 0x08A7D65Cu: goto SB_L_08A7D65C;
case 0x08A7D664u: goto SB_L_08A7D664;
case 0x08A7D66Cu: goto SB_L_08A7D66C;
case 0x08A7D674u: goto SB_L_08A7D674;
case 0x08A7D6ACu: goto SB_L_08A7D6AC;
case 0x08A7D6C4u: goto SB_L_08A7D6C4;
case 0x08A7D6D4u: goto SB_L_08A7D6D4;
case 0x08A7D6E0u: goto SB_L_08A7D6E0;
case 0x08A7D6F4u: goto SB_L_08A7D6F4;
case 0x08A7D6FCu: goto SB_L_08A7D6FC;
case 0x08A7D704u: goto SB_L_08A7D704;
case 0x08A7D70Cu: goto SB_L_08A7D70C;
case 0x08A7D714u: goto SB_L_08A7D714;
case 0x08A7D724u: goto SB_L_08A7D724;
case 0x08A7D72Cu: goto SB_L_08A7D72C;
case 0x08A7D734u: goto SB_L_08A7D734;
case 0x08A7D73Cu: goto SB_L_08A7D73C;
case 0x08A7D774u: goto SB_L_08A7D774;
case 0x08A7D78Cu: goto SB_L_08A7D78C;
case 0x08A7D7A4u: goto SB_L_08A7D7A4;
case 0x08A7D7D0u: goto SB_L_08A7D7D0;
case 0x08A7D7D8u: goto SB_L_08A7D7D8;
case 0x08A7D7E8u: goto SB_L_08A7D7E8;
case 0x08A7D7F0u: goto SB_L_08A7D7F0;
case 0x08A7D7F4u: goto SB_L_08A7D7F4;
case 0x08A7D810u: goto SB_L_08A7D810;
case 0x08A7D824u: goto SB_L_08A7D824;
case 0x08A7D830u: goto SB_L_08A7D830;
case 0x08A7D840u: goto SB_L_08A7D840;
case 0x08A7D84Cu: goto SB_L_08A7D84C;
case 0x08A7D858u: goto SB_L_08A7D858;
case 0x08A7D864u: goto SB_L_08A7D864;
case 0x08A7D870u: goto SB_L_08A7D870;
case 0x08A7D880u: goto SB_L_08A7D880;
case 0x08A7D88Cu: goto SB_L_08A7D88C;
case 0x08A7D898u: goto SB_L_08A7D898;
case 0x08A7D8B0u: goto SB_L_08A7D8B0;
case 0x08A7D8C4u: goto SB_L_08A7D8C4;
case 0x08A7D8D0u: goto SB_L_08A7D8D0;
case 0x08A7D8E0u: goto SB_L_08A7D8E0;
case 0x08A7D8F0u: goto SB_L_08A7D8F0;
case 0x08A7D8F4u: goto SB_L_08A7D8F4;
case 0x08A7D900u: goto SB_L_08A7D900;
case 0x08A7D914u: goto SB_L_08A7D914;
case 0x08A7D91Cu: goto SB_L_08A7D91C;
case 0x08A7D924u: goto SB_L_08A7D924;
case 0x08A7D92Cu: goto SB_L_08A7D92C;
case 0x08A7D934u: goto SB_L_08A7D934;
case 0x08A7D944u: goto SB_L_08A7D944;
case 0x08A7D954u: goto SB_L_08A7D954;
case 0x08A7D95Cu: goto SB_L_08A7D95C;
case 0x08A7D968u: goto SB_L_08A7D968;
case 0x08A7D97Cu: goto SB_L_08A7D97C;
case 0x08A7D98Cu: goto SB_L_08A7D98C;
case 0x08A7D994u: goto SB_L_08A7D994;
case 0x08A7D9A0u: goto SB_L_08A7D9A0;
case 0x08A7D9ACu: goto SB_L_08A7D9AC;
case 0x08A7D9C4u: goto SB_L_08A7D9C4;
case 0x08A7D9CCu: goto SB_L_08A7D9CC;
case 0x08A7D9DCu: goto SB_L_08A7D9DC;
case 0x08A7D9E8u: goto SB_L_08A7D9E8;
case 0x08A7D9F8u: goto SB_L_08A7D9F8;
case 0x08A7DA04u: goto SB_L_08A7DA04;
case 0x08A7DA0Cu: goto SB_L_08A7DA0C;
case 0x08A7DA28u: goto SB_L_08A7DA28;
case 0x08A7DA30u: goto SB_L_08A7DA30;
case 0x08A7DA38u: goto SB_L_08A7DA38;
case 0x08A7DA4Cu: goto SB_L_08A7DA4C;
case 0x08A7DA58u: goto SB_L_08A7DA58;
case 0x08A7DA68u: goto SB_L_08A7DA68;
case 0x08A7DA78u: goto SB_L_08A7DA78;
case 0x08A7DA80u: goto SB_L_08A7DA80;
case 0x08A7DA8Cu: goto SB_L_08A7DA8C;
case 0x08A7DAA4u: goto SB_L_08A7DAA4;
case 0x08A7DAB8u: goto SB_L_08A7DAB8;
case 0x08A7DAC4u: goto SB_L_08A7DAC4;
case 0x08A7DAD4u: goto SB_L_08A7DAD4;
case 0x08A7DAE4u: goto SB_L_08A7DAE4;
case 0x08A7DAE8u: goto SB_L_08A7DAE8;
case 0x08A7DAF4u: goto SB_L_08A7DAF4;
case 0x08A7DB08u: goto SB_L_08A7DB08;
case 0x08A7DB10u: goto SB_L_08A7DB10;
case 0x08A7DB18u: goto SB_L_08A7DB18;
case 0x08A7DB20u: goto SB_L_08A7DB20;
case 0x08A7DB28u: goto SB_L_08A7DB28;
case 0x08A7DB30u: goto SB_L_08A7DB30;
case 0x08A7DB38u: goto SB_L_08A7DB38;
case 0x08A7DB44u: goto SB_L_08A7DB44;
case 0x08A7DB54u: goto SB_L_08A7DB54;
case 0x08A7DB5Cu: goto SB_L_08A7DB5C;
case 0x08A7DB64u: goto SB_L_08A7DB64;
case 0x08A7DB6Cu: goto SB_L_08A7DB6C;
case 0x08A7DB88u: goto SB_L_08A7DB88;
case 0x08A7DB90u: goto SB_L_08A7DB90;
case 0x08A7DB98u: goto SB_L_08A7DB98;
case 0x08A7DB9Cu: goto SB_L_08A7DB9C;
case 0x08A7EC68u: goto SB_L_08A7EC68;
case 0x08A7ECB4u: goto SB_L_08A7ECB4;
case 0x08A7ECBCu: goto SB_L_08A7ECBC;
case 0x08A7ECD0u: goto SB_L_08A7ECD0;
case 0x08A7ED14u: goto SB_L_08A7ED14;
case 0x08A7ED28u: goto SB_L_08A7ED28;
case 0x08A7ED3Cu: goto SB_L_08A7ED3C;
case 0x08A7F028u: goto SB_L_08A7F028;
case 0x08A7F030u: goto SB_L_08A7F030;
case 0x08A7F048u: goto SB_L_08A7F048;
case 0x08A7F080u: goto SB_L_08A7F080;
case 0x08A7F0CCu: goto SB_L_08A7F0CC;
case 0x08A7F0D4u: goto SB_L_08A7F0D4;
case 0x08A7F0E8u: goto SB_L_08A7F0E8;
case 0x08A7F12Cu: goto SB_L_08A7F12C;
case 0x08A7F140u: goto SB_L_08A7F140;
case 0x08A7F154u: goto SB_L_08A7F154;
case 0x08A7F480u: goto SB_L_08A7F480;
case 0x08A7F488u: goto SB_L_08A7F488;
case 0x08A7F4A0u: goto SB_L_08A7F4A0;
case 0x08A7FAA4u: goto SB_L_08A7FAA4;
default: break;
}
switch (tier2_resume_unit) {
default: break;
}
ctx.pc = tier2_resume_pc;
TIER2_SB_RETURN();
TIER2_LOCAL_DISPATCH_U0157:
if (tier2_return_depth != 0u && local_pc == tier2_return_pc[tier2_return_depth - 1u]) {
tier2_resume_pc = local_pc;
tier2_resume_unit = tier2_return_unit[tier2_return_depth - 1u];
// Match invoke_chained_direct(): when the callee has returned, ctx.pc
// already contains the caller continuation before any starvation
// boundary/accounting can run. A scheduler switch here must never see
// the stale callee PC.
ctx.pc = local_pc;
const std::uint32_t tier2_pending_base =
tier2_return_pending_base[tier2_return_depth - 1u];
bool tier2_same_context = true;
if (tier2_pending_transfers < tier2_pending_base) {
++tier2_stats.fallbacks;
ctx.pc = local_pc;
TIER2_SB_RETURN();
}
const std::uint32_t tier2_nested_tail =
tier2_pending_transfers - tier2_pending_base;
if (tier2_nested_tail != 0u) {
tier2_pending_transfers = tier2_pending_base;
if (!tier2_complete_shadow(tier2_nested_tail))
tier2_same_context = false;
}
--tier2_return_depth;
if (!tier2_complete_shadow(1u))
tier2_same_context = false;
if (!tier2_same_context) TIER2_SB_RETURN();
goto TIER2_FUSED_RETURN_DISPATCH;
}
switch (local_pc) {
case 0x08A79AB4u: goto SB_L_08A79AB4;
case 0x08A79AD4u: goto SB_L_08A79AD4;
case 0x08A79ADCu: goto SB_L_08A79ADC;
case 0x08A79AE4u: goto SB_L_08A79AE4;
case 0x08A79AF0u: goto SB_L_08A79AF0;
case 0x08A79B00u: goto SB_L_08A79B00;
case 0x08A79B08u: goto SB_L_08A79B08;
case 0x08A79B10u: goto SB_L_08A79B10;
case 0x08A79B14u: goto SB_L_08A79B14;
case 0x08A79DF8u: goto SB_L_08A79DF8;
case 0x08A79E30u: goto SB_L_08A79E30;
case 0x08A79E34u: goto SB_L_08A79E34;
case 0x08A79E50u: goto SB_L_08A79E50;
case 0x08A79E64u: goto SB_L_08A79E64;
case 0x08A79E78u: goto SB_L_08A79E78;
case 0x08A79E7Cu: goto SB_L_08A79E7C;
case 0x08A79E98u: goto SB_L_08A79E98;
case 0x08A79EACu: goto SB_L_08A79EAC;
case 0x08A79EC0u: goto SB_L_08A79EC0;
case 0x08A79EC4u: goto SB_L_08A79EC4;
case 0x08A79EE0u: goto SB_L_08A79EE0;
case 0x08A79EF4u: goto SB_L_08A79EF4;
case 0x08A79F00u: goto SB_L_08A79F00;
case 0x08A79F04u: goto SB_L_08A79F04;
case 0x08A79F1Cu: goto SB_L_08A79F1C;
case 0x08A79F28u: goto SB_L_08A79F28;
case 0x08A79F5Cu: goto SB_L_08A79F5C;
case 0x08A79F80u: goto SB_L_08A79F80;
case 0x08A79F88u: goto SB_L_08A79F88;
case 0x08A79F90u: goto SB_L_08A79F90;
case 0x08A79FB0u: goto SB_L_08A79FB0;
case 0x08A79FB4u: goto SB_L_08A79FB4;
case 0x08A79FC8u: goto SB_L_08A79FC8;
case 0x08A79FD4u: goto SB_L_08A79FD4;
case 0x08A79FF0u: goto SB_L_08A79FF0;
case 0x08A79FF8u: goto SB_L_08A79FF8;
case 0x08A7A00Cu: goto SB_L_08A7A00C;
case 0x08A7A014u: goto SB_L_08A7A014;
case 0x08A7A01Cu: goto SB_L_08A7A01C;
case 0x08A7A024u: goto SB_L_08A7A024;
case 0x08A7A038u: goto SB_L_08A7A038;
case 0x08A7A040u: goto SB_L_08A7A040;
case 0x08A7A044u: goto SB_L_08A7A044;
case 0x08A7A054u: goto SB_L_08A7A054;
case 0x08A7A060u: goto SB_L_08A7A060;
case 0x08A7A068u: goto SB_L_08A7A068;
case 0x08A7A06Cu: goto SB_L_08A7A06C;
case 0x08A7A074u: goto SB_L_08A7A074;
case 0x08A7A664u: goto SB_L_08A7A664;
case 0x08A7A690u: goto SB_L_08A7A690;
case 0x08A7A6ACu: goto SB_L_08A7A6AC;
case 0x08A7A6B8u: goto SB_L_08A7A6B8;
case 0x08A7A6C0u: goto SB_L_08A7A6C0;
case 0x08A7A6D0u: goto SB_L_08A7A6D0;
case 0x08A7A6ECu: goto SB_L_08A7A6EC;
case 0x08A7A704u: goto SB_L_08A7A704;
case 0x08A7A708u: goto SB_L_08A7A708;
case 0x08A7A70Cu: goto SB_L_08A7A70C;
case 0x08A7A714u: goto SB_L_08A7A714;
case 0x08A7A730u: goto SB_L_08A7A730;
case 0x08A7A738u: goto SB_L_08A7A738;
case 0x08A7A75Cu: goto SB_L_08A7A75C;
case 0x08A7A774u: goto SB_L_08A7A774;
case 0x08A7A778u: goto SB_L_08A7A778;
case 0x08A7A784u: goto SB_L_08A7A784;
case 0x08A7A79Cu: goto SB_L_08A7A79C;
case 0x08A7A7B8u: goto SB_L_08A7A7B8;
case 0x08A7A7C0u: goto SB_L_08A7A7C0;
case 0x08A7A7C8u: goto SB_L_08A7A7C8;
case 0x08A7A7E0u: goto SB_L_08A7A7E0;
case 0x08A7A7F0u: goto SB_L_08A7A7F0;
case 0x08A7A7F8u: goto SB_L_08A7A7F8;
case 0x08A7A800u: goto SB_L_08A7A800;
case 0x08A7A808u: goto SB_L_08A7A808;
case 0x08A7A810u: goto SB_L_08A7A810;
case 0x08A7A818u: goto SB_L_08A7A818;
case 0x08A7A834u: goto SB_L_08A7A834;
case 0x08A7A844u: goto SB_L_08A7A844;
case 0x08A7A854u: goto SB_L_08A7A854;
case 0x08A7A86Cu: goto SB_L_08A7A86C;
case 0x08A7A880u: goto SB_L_08A7A880;
case 0x08A7A88Cu: goto SB_L_08A7A88C;
case 0x08A7A894u: goto SB_L_08A7A894;
case 0x08A7A89Cu: goto SB_L_08A7A89C;
case 0x08A7A8ACu: goto SB_L_08A7A8AC;
case 0x08A7A8B8u: goto SB_L_08A7A8B8;
case 0x08A7A8D0u: goto SB_L_08A7A8D0;
case 0x08A7A8E4u: goto SB_L_08A7A8E4;
case 0x08A7A8FCu: goto SB_L_08A7A8FC;
case 0x08A7A904u: goto SB_L_08A7A904;
case 0x08A7A90Cu: goto SB_L_08A7A90C;
case 0x08A7A928u: goto SB_L_08A7A928;
case 0x08A7A94Cu: goto SB_L_08A7A94C;
case 0x08A7AA6Cu: goto SB_L_08A7AA6C;
case 0x08A7AA74u: goto SB_L_08A7AA74;
case 0x08A7AA7Cu: goto SB_L_08A7AA7C;
case 0x08A7AA90u: goto SB_L_08A7AA90;
case 0x08A7AAB0u: goto SB_L_08A7AAB0;
case 0x08A7AAD0u: goto SB_L_08A7AAD0;
case 0x08A7AADCu: goto SB_L_08A7AADC;
case 0x08A7AAE4u: goto SB_L_08A7AAE4;
case 0x08A7AAECu: goto SB_L_08A7AAEC;
case 0x08A7AAF0u: goto SB_L_08A7AAF0;
case 0x08A7AB0Cu: goto SB_L_08A7AB0C;
case 0x08A7AB24u: goto SB_L_08A7AB24;
case 0x08A7AB28u: goto SB_L_08A7AB28;
case 0x08A7AB30u: goto SB_L_08A7AB30;
case 0x08A7AB38u: goto SB_L_08A7AB38;
case 0x08A7AB54u: goto SB_L_08A7AB54;
case 0x08A7AB6Cu: goto SB_L_08A7AB6C;
case 0x08A7AB80u: goto SB_L_08A7AB80;
case 0x08A7AB9Cu: goto SB_L_08A7AB9C;
case 0x08A7ABA4u: goto SB_L_08A7ABA4;
case 0x08A7ABC0u: goto SB_L_08A7ABC0;
case 0x08A7ABD0u: goto SB_L_08A7ABD0;
case 0x08A7ABE0u: goto SB_L_08A7ABE0;
case 0x08A7ABE4u: goto SB_L_08A7ABE4;
case 0x08A7AC10u: goto SB_L_08A7AC10;
case 0x08A7AC40u: goto SB_L_08A7AC40;
case 0x08A7AC48u: goto SB_L_08A7AC48;
case 0x08A7AC50u: goto SB_L_08A7AC50;
case 0x08A7AC58u: goto SB_L_08A7AC58;
case 0x08A7AC60u: goto SB_L_08A7AC60;
case 0x08A7AC68u: goto SB_L_08A7AC68;
case 0x08A7AC74u: goto SB_L_08A7AC74;
case 0x08A7AC7Cu: goto SB_L_08A7AC7C;
case 0x08A7AC98u: goto SB_L_08A7AC98;
case 0x08A7ACACu: goto SB_L_08A7ACAC;
case 0x08A7ACB0u: goto SB_L_08A7ACB0;
case 0x08A7ACB8u: goto SB_L_08A7ACB8;
case 0x08A7ACECu: goto SB_L_08A7ACEC;
case 0x08A7ACF4u: goto SB_L_08A7ACF4;
case 0x08A7AD00u: goto SB_L_08A7AD00;
case 0x08A7AD14u: goto SB_L_08A7AD14;
case 0x08A7AD1Cu: goto SB_L_08A7AD1C;
case 0x08A7AD24u: goto SB_L_08A7AD24;
case 0x08A7AD34u: goto SB_L_08A7AD34;
case 0x08A7AD3Cu: goto SB_L_08A7AD3C;
case 0x08A7AD40u: goto SB_L_08A7AD40;
case 0x08A7AD48u: goto SB_L_08A7AD48;
case 0x08A7AD54u: goto SB_L_08A7AD54;
case 0x08A7AF74u: goto SB_L_08A7AF74;
case 0x08A7AFB8u: goto SB_L_08A7AFB8;
case 0x08A7AFC0u: goto SB_L_08A7AFC0;
case 0x08A7AFC8u: goto SB_L_08A7AFC8;
case 0x08A7AFD0u: goto SB_L_08A7AFD0;
case 0x08A7B5A0u: goto SB_L_08A7B5A0;
case 0x08A7B5A8u: goto SB_L_08A7B5A8;
case 0x08A7B5B0u: goto SB_L_08A7B5B0;
case 0x08A7B5C4u: goto SB_L_08A7B5C4;
case 0x08A7B5CCu: goto SB_L_08A7B5CC;
case 0x08A7B604u: goto SB_L_08A7B604;
case 0x08A7B610u: goto SB_L_08A7B610;
case 0x08A7B61Cu: goto SB_L_08A7B61C;
case 0x08A7B630u: goto SB_L_08A7B630;
case 0x08A7B64Cu: goto SB_L_08A7B64C;
case 0x08A7B654u: goto SB_L_08A7B654;
case 0x08A7B65Cu: goto SB_L_08A7B65C;
case 0x08A7B660u: goto SB_L_08A7B660;
case 0x08A7B910u: goto SB_L_08A7B910;
default:
ctx.pc = local_pc;
TIER2_SB_RETURN();
}
TIER2_LOCAL_DISPATCH_U0158:
if (tier2_return_depth != 0u && local_pc == tier2_return_pc[tier2_return_depth - 1u]) {
tier2_resume_pc = local_pc;
tier2_resume_unit = tier2_return_unit[tier2_return_depth - 1u];
// Match invoke_chained_direct(): when the callee has returned, ctx.pc
// already contains the caller continuation before any starvation
// boundary/accounting can run. A scheduler switch here must never see
// the stale callee PC.
ctx.pc = local_pc;
const std::uint32_t tier2_pending_base =
tier2_return_pending_base[tier2_return_depth - 1u];
bool tier2_same_context = true;
if (tier2_pending_transfers < tier2_pending_base) {
++tier2_stats.fallbacks;
ctx.pc = local_pc;
TIER2_SB_RETURN();
}
const std::uint32_t tier2_nested_tail =
tier2_pending_transfers - tier2_pending_base;
if (tier2_nested_tail != 0u) {
tier2_pending_transfers = tier2_pending_base;
if (!tier2_complete_shadow(tier2_nested_tail))
tier2_same_context = false;
}
--tier2_return_depth;
if (!tier2_complete_shadow(1u))
tier2_same_context = false;
if (!tier2_same_context) TIER2_SB_RETURN();
goto TIER2_FUSED_RETURN_DISPATCH;
}
switch (local_pc) {
case 0x08A7CEC8u: goto SB_L_08A7CEC8;
case 0x08A7CEFCu: goto SB_L_08A7CEFC;
case 0x08A7CF0Cu: goto SB_L_08A7CF0C;
case 0x08A7CF1Cu: goto SB_L_08A7CF1C;
case 0x08A7CF28u: goto SB_L_08A7CF28;
case 0x08A7CF44u: goto SB_L_08A7CF44;
case 0x08A7CF4Cu: goto SB_L_08A7CF4C;
case 0x08A7CF54u: goto SB_L_08A7CF54;
case 0x08A7CF5Cu: goto SB_L_08A7CF5C;
case 0x08A7CF64u: goto SB_L_08A7CF64;
case 0x08A7CF74u: goto SB_L_08A7CF74;
case 0x08A7CF90u: goto SB_L_08A7CF90;
case 0x08A7CFACu: goto SB_L_08A7CFAC;
case 0x08A7CFC8u: goto SB_L_08A7CFC8;
case 0x08A7CFDCu: goto SB_L_08A7CFDC;
case 0x08A7CFF0u: goto SB_L_08A7CFF0;
case 0x08A7D000u: goto SB_L_08A7D000;
case 0x08A7D008u: goto SB_L_08A7D008;
case 0x08A7D014u: goto SB_L_08A7D014;
case 0x08A7D01Cu: goto SB_L_08A7D01C;
case 0x08A7D020u: goto SB_L_08A7D020;
case 0x08A7D02Cu: goto SB_L_08A7D02C;
case 0x08A7D038u: goto SB_L_08A7D038;
case 0x08A7D054u: goto SB_L_08A7D054;
case 0x08A7D05Cu: goto SB_L_08A7D05C;
case 0x08A7D064u: goto SB_L_08A7D064;
case 0x08A7D070u: goto SB_L_08A7D070;
case 0x08A7D078u: goto SB_L_08A7D078;
case 0x08A7D080u: goto SB_L_08A7D080;
case 0x08A7D088u: goto SB_L_08A7D088;
case 0x08A7D090u: goto SB_L_08A7D090;
case 0x08A7D094u: goto SB_L_08A7D094;
case 0x08A7D0A0u: goto SB_L_08A7D0A0;
case 0x08A7D0A8u: goto SB_L_08A7D0A8;
case 0x08A7D0B8u: goto SB_L_08A7D0B8;
case 0x08A7D0D0u: goto SB_L_08A7D0D0;
case 0x08A7D0D8u: goto SB_L_08A7D0D8;
case 0x08A7D0E4u: goto SB_L_08A7D0E4;
case 0x08A7D0F4u: goto SB_L_08A7D0F4;
case 0x08A7D104u: goto SB_L_08A7D104;
case 0x08A7D11Cu: goto SB_L_08A7D11C;
case 0x08A7D124u: goto SB_L_08A7D124;
case 0x08A7D12Cu: goto SB_L_08A7D12C;
case 0x08A7D144u: goto SB_L_08A7D144;
case 0x08A7D14Cu: goto SB_L_08A7D14C;
case 0x08A7D158u: goto SB_L_08A7D158;
case 0x08A7D168u: goto SB_L_08A7D168;
case 0x08A7D178u: goto SB_L_08A7D178;
case 0x08A7D190u: goto SB_L_08A7D190;
case 0x08A7D198u: goto SB_L_08A7D198;
case 0x08A7D1A4u: goto SB_L_08A7D1A4;
case 0x08A7D1B4u: goto SB_L_08A7D1B4;
case 0x08A7D1C4u: goto SB_L_08A7D1C4;
case 0x08A7D1D0u: goto SB_L_08A7D1D0;
case 0x08A7D1ECu: goto SB_L_08A7D1EC;
case 0x08A7D1F4u: goto SB_L_08A7D1F4;
case 0x08A7D210u: goto SB_L_08A7D210;
case 0x08A7D214u: goto SB_L_08A7D214;
case 0x08A7D228u: goto SB_L_08A7D228;
case 0x08A7D238u: goto SB_L_08A7D238;
case 0x08A7D23Cu: goto SB_L_08A7D23C;
case 0x08A7D244u: goto SB_L_08A7D244;
case 0x08A7D258u: goto SB_L_08A7D258;
case 0x08A7D270u: goto SB_L_08A7D270;
case 0x08A7D274u: goto SB_L_08A7D274;
case 0x08A7D280u: goto SB_L_08A7D280;
case 0x08A7D2BCu: goto SB_L_08A7D2BC;
case 0x08A7D2C4u: goto SB_L_08A7D2C4;
case 0x08A7D2C8u: goto SB_L_08A7D2C8;
case 0x08A7D2D0u: goto SB_L_08A7D2D0;
case 0x08A7D2DCu: goto SB_L_08A7D2DC;
case 0x08A7D314u: goto SB_L_08A7D314;
case 0x08A7D31Cu: goto SB_L_08A7D31C;
case 0x08A7D32Cu: goto SB_L_08A7D32C;
case 0x08A7D334u: goto SB_L_08A7D334;
case 0x08A7D344u: goto SB_L_08A7D344;
case 0x08A7D350u: goto SB_L_08A7D350;
case 0x08A7D360u: goto SB_L_08A7D360;
case 0x08A7D370u: goto SB_L_08A7D370;
case 0x08A7D380u: goto SB_L_08A7D380;
case 0x08A7D390u: goto SB_L_08A7D390;
case 0x08A7D398u: goto SB_L_08A7D398;
case 0x08A7D3B4u: goto SB_L_08A7D3B4;
case 0x08A7D3C4u: goto SB_L_08A7D3C4;
case 0x08A7D3CCu: goto SB_L_08A7D3CC;
case 0x08A7D3D4u: goto SB_L_08A7D3D4;
case 0x08A7D3E8u: goto SB_L_08A7D3E8;
case 0x08A7D3F0u: goto SB_L_08A7D3F0;
case 0x08A7D400u: goto SB_L_08A7D400;
case 0x08A7D410u: goto SB_L_08A7D410;
case 0x08A7D420u: goto SB_L_08A7D420;
case 0x08A7D430u: goto SB_L_08A7D430;
case 0x08A7D440u: goto SB_L_08A7D440;
case 0x08A7D45Cu: goto SB_L_08A7D45C;
case 0x08A7D464u: goto SB_L_08A7D464;
case 0x08A7D46Cu: goto SB_L_08A7D46C;
case 0x08A7D474u: goto SB_L_08A7D474;
case 0x08A7D4ACu: goto SB_L_08A7D4AC;
case 0x08A7D4DCu: goto SB_L_08A7D4DC;
case 0x08A7D4E4u: goto SB_L_08A7D4E4;
case 0x08A7D4F4u: goto SB_L_08A7D4F4;
case 0x08A7D4FCu: goto SB_L_08A7D4FC;
case 0x08A7D50Cu: goto SB_L_08A7D50C;
case 0x08A7D518u: goto SB_L_08A7D518;
case 0x08A7D528u: goto SB_L_08A7D528;
case 0x08A7D538u: goto SB_L_08A7D538;
case 0x08A7D548u: goto SB_L_08A7D548;
case 0x08A7D558u: goto SB_L_08A7D558;
case 0x08A7D560u: goto SB_L_08A7D560;
case 0x08A7D580u: goto SB_L_08A7D580;
case 0x08A7D588u: goto SB_L_08A7D588;
case 0x08A7D590u: goto SB_L_08A7D590;
case 0x08A7D5A4u: goto SB_L_08A7D5A4;
case 0x08A7D5B0u: goto SB_L_08A7D5B0;
case 0x08A7D5C0u: goto SB_L_08A7D5C0;
case 0x08A7D5D0u: goto SB_L_08A7D5D0;
case 0x08A7D5E0u: goto SB_L_08A7D5E0;
case 0x08A7D5F0u: goto SB_L_08A7D5F0;
case 0x08A7D60Cu: goto SB_L_08A7D60C;
case 0x08A7D618u: goto SB_L_08A7D618;
case 0x08A7D62Cu: goto SB_L_08A7D62C;
case 0x08A7D634u: goto SB_L_08A7D634;
case 0x08A7D63Cu: goto SB_L_08A7D63C;
case 0x08A7D644u: goto SB_L_08A7D644;
case 0x08A7D64Cu: goto SB_L_08A7D64C;
case 0x08A7D65Cu: goto SB_L_08A7D65C;
case 0x08A7D664u: goto SB_L_08A7D664;
case 0x08A7D66Cu: goto SB_L_08A7D66C;
case 0x08A7D674u: goto SB_L_08A7D674;
case 0x08A7D6ACu: goto SB_L_08A7D6AC;
case 0x08A7D6C4u: goto SB_L_08A7D6C4;
case 0x08A7D6D4u: goto SB_L_08A7D6D4;
case 0x08A7D6E0u: goto SB_L_08A7D6E0;
case 0x08A7D6F4u: goto SB_L_08A7D6F4;
case 0x08A7D6FCu: goto SB_L_08A7D6FC;
case 0x08A7D704u: goto SB_L_08A7D704;
case 0x08A7D70Cu: goto SB_L_08A7D70C;
case 0x08A7D714u: goto SB_L_08A7D714;
case 0x08A7D724u: goto SB_L_08A7D724;
case 0x08A7D72Cu: goto SB_L_08A7D72C;
case 0x08A7D734u: goto SB_L_08A7D734;
case 0x08A7D73Cu: goto SB_L_08A7D73C;
case 0x08A7D774u: goto SB_L_08A7D774;
case 0x08A7D78Cu: goto SB_L_08A7D78C;
case 0x08A7D7A4u: goto SB_L_08A7D7A4;
case 0x08A7D7D0u: goto SB_L_08A7D7D0;
case 0x08A7D7D8u: goto SB_L_08A7D7D8;
case 0x08A7D7E8u: goto SB_L_08A7D7E8;
case 0x08A7D7F0u: goto SB_L_08A7D7F0;
case 0x08A7D7F4u: goto SB_L_08A7D7F4;
case 0x08A7D810u: goto SB_L_08A7D810;
case 0x08A7D824u: goto SB_L_08A7D824;
case 0x08A7D830u: goto SB_L_08A7D830;
case 0x08A7D840u: goto SB_L_08A7D840;
case 0x08A7D84Cu: goto SB_L_08A7D84C;
case 0x08A7D858u: goto SB_L_08A7D858;
case 0x08A7D864u: goto SB_L_08A7D864;
case 0x08A7D870u: goto SB_L_08A7D870;
case 0x08A7D880u: goto SB_L_08A7D880;
case 0x08A7D88Cu: goto SB_L_08A7D88C;
case 0x08A7D898u: goto SB_L_08A7D898;
case 0x08A7D8B0u: goto SB_L_08A7D8B0;
case 0x08A7D8C4u: goto SB_L_08A7D8C4;
case 0x08A7D8D0u: goto SB_L_08A7D8D0;
case 0x08A7D8E0u: goto SB_L_08A7D8E0;
case 0x08A7D8F0u: goto SB_L_08A7D8F0;
case 0x08A7D8F4u: goto SB_L_08A7D8F4;
case 0x08A7D900u: goto SB_L_08A7D900;
case 0x08A7D914u: goto SB_L_08A7D914;
case 0x08A7D91Cu: goto SB_L_08A7D91C;
case 0x08A7D924u: goto SB_L_08A7D924;
case 0x08A7D92Cu: goto SB_L_08A7D92C;
case 0x08A7D934u: goto SB_L_08A7D934;
case 0x08A7D944u: goto SB_L_08A7D944;
case 0x08A7D954u: goto SB_L_08A7D954;
case 0x08A7D95Cu: goto SB_L_08A7D95C;
case 0x08A7D968u: goto SB_L_08A7D968;
case 0x08A7D97Cu: goto SB_L_08A7D97C;
case 0x08A7D98Cu: goto SB_L_08A7D98C;
case 0x08A7D994u: goto SB_L_08A7D994;
case 0x08A7D9A0u: goto SB_L_08A7D9A0;
case 0x08A7D9ACu: goto SB_L_08A7D9AC;
case 0x08A7D9C4u: goto SB_L_08A7D9C4;
case 0x08A7D9CCu: goto SB_L_08A7D9CC;
case 0x08A7D9DCu: goto SB_L_08A7D9DC;
case 0x08A7D9E8u: goto SB_L_08A7D9E8;
case 0x08A7D9F8u: goto SB_L_08A7D9F8;
case 0x08A7DA04u: goto SB_L_08A7DA04;
case 0x08A7DA0Cu: goto SB_L_08A7DA0C;
case 0x08A7DA28u: goto SB_L_08A7DA28;
case 0x08A7DA30u: goto SB_L_08A7DA30;
case 0x08A7DA38u: goto SB_L_08A7DA38;
case 0x08A7DA4Cu: goto SB_L_08A7DA4C;
case 0x08A7DA58u: goto SB_L_08A7DA58;
case 0x08A7DA68u: goto SB_L_08A7DA68;
case 0x08A7DA78u: goto SB_L_08A7DA78;
case 0x08A7DA80u: goto SB_L_08A7DA80;
case 0x08A7DA8Cu: goto SB_L_08A7DA8C;
case 0x08A7DAA4u: goto SB_L_08A7DAA4;
case 0x08A7DAB8u: goto SB_L_08A7DAB8;
case 0x08A7DAC4u: goto SB_L_08A7DAC4;
case 0x08A7DAD4u: goto SB_L_08A7DAD4;
case 0x08A7DAE4u: goto SB_L_08A7DAE4;
case 0x08A7DAE8u: goto SB_L_08A7DAE8;
case 0x08A7DAF4u: goto SB_L_08A7DAF4;
case 0x08A7DB08u: goto SB_L_08A7DB08;
case 0x08A7DB10u: goto SB_L_08A7DB10;
case 0x08A7DB18u: goto SB_L_08A7DB18;
case 0x08A7DB20u: goto SB_L_08A7DB20;
case 0x08A7DB28u: goto SB_L_08A7DB28;
case 0x08A7DB30u: goto SB_L_08A7DB30;
case 0x08A7DB38u: goto SB_L_08A7DB38;
case 0x08A7DB44u: goto SB_L_08A7DB44;
case 0x08A7DB54u: goto SB_L_08A7DB54;
case 0x08A7DB5Cu: goto SB_L_08A7DB5C;
case 0x08A7DB64u: goto SB_L_08A7DB64;
case 0x08A7DB6Cu: goto SB_L_08A7DB6C;
case 0x08A7DB88u: goto SB_L_08A7DB88;
case 0x08A7DB90u: goto SB_L_08A7DB90;
case 0x08A7DB98u: goto SB_L_08A7DB98;
case 0x08A7DB9Cu: goto SB_L_08A7DB9C;
case 0x08A7EC68u: goto SB_L_08A7EC68;
case 0x08A7ECB4u: goto SB_L_08A7ECB4;
case 0x08A7ECBCu: goto SB_L_08A7ECBC;
case 0x08A7ECD0u: goto SB_L_08A7ECD0;
case 0x08A7ED14u: goto SB_L_08A7ED14;
case 0x08A7ED28u: goto SB_L_08A7ED28;
case 0x08A7ED3Cu: goto SB_L_08A7ED3C;
case 0x08A7F028u: goto SB_L_08A7F028;
case 0x08A7F030u: goto SB_L_08A7F030;
case 0x08A7F048u: goto SB_L_08A7F048;
case 0x08A7F080u: goto SB_L_08A7F080;
case 0x08A7F0CCu: goto SB_L_08A7F0CC;
case 0x08A7F0D4u: goto SB_L_08A7F0D4;
case 0x08A7F0E8u: goto SB_L_08A7F0E8;
case 0x08A7F12Cu: goto SB_L_08A7F12C;
case 0x08A7F140u: goto SB_L_08A7F140;
case 0x08A7F154u: goto SB_L_08A7F154;
case 0x08A7F480u: goto SB_L_08A7F480;
case 0x08A7F488u: goto SB_L_08A7F488;
case 0x08A7F4A0u: goto SB_L_08A7F4A0;
case 0x08A7FAA4u: goto SB_L_08A7FAA4;
default:
ctx.pc = local_pc;
TIER2_SB_RETURN();
}
TIER2_ENTRY_DISPATCH:
switch (entry_pc) {
case 0x08A79DF8u: goto SB_L_08A79DF8;
case 0x08A7A94Cu: goto SB_L_08A7A94C;
case 0x08A7A664u: goto SB_L_08A7A664;
case 0x08A7B5A8u: goto SB_L_08A7B5A8;
case 0x08A7EC68u: goto SB_L_08A7EC68;
case 0x08A7F080u: goto SB_L_08A7F080;
default:
ctx.pc = entry_pc;
++tier2_stats.fallbacks;
TIER2_SB_RETURN();
}
// TIER2_GPR_BODY_BEGIN
SB_L_08A79AB4:
tier2_gpr_29 = (tier2_gpr_29 + static_cast<std::uint32_t>(-16));
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(472)));
tier2_gpr_6 = (32768u << 16u);
tier2_gpr_5 = (tier2_gpr_5 & tier2_gpr_6);
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(0), tier2_gpr_16);
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(4), tier2_gpr_31);
{ const bool branch_taken = tier2_gpr_5 != 0u;
tier2_gpr_16 = (tier2_gpr_4 | 0u);
if (branch_taken) {
goto SB_L_08A79B08;
}
goto SB_L_08A79AD4;
}
SB_L_08A79AD4:
tier2_gpr_31 = (0x08A79ADCu);
tier2_gpr_4 = (tier2_gpr_16 | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A79ADCu) goto SB_L_08A79ADC;
TIER2_SB_RETURN();
SB_L_08A79ADC:
{ const bool branch_taken = ctx.gpr[2] == 0u;
// nop
if (branch_taken) {
goto SB_L_08A79B00;
}
goto SB_L_08A79AE4;
}
SB_L_08A79AE4:
tier2_gpr_16 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(1152)));
{ const bool branch_taken = tier2_gpr_16 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A79B00;
}
goto SB_L_08A79AF0;
}
SB_L_08A79AF0:
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(tier2_mem.aot_load8(tier2_gpr_16 + static_cast<std::uint32_t>(619))))));
tier2_gpr_4 = (tier2_gpr_4 & 32u);
{ const bool branch_taken = tier2_gpr_4 != 0u;
// nop
if (branch_taken) {
goto SB_L_08A79B10;
}
goto SB_L_08A79B00;
}
SB_L_08A79B00:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 0u);
if (branch_taken) {
goto SB_L_08A79B14;
}
goto SB_L_08A79B08;
}
SB_L_08A79B08:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 1u);
if (branch_taken) {
goto SB_L_08A79B14;
}
goto SB_L_08A79B10;
}
SB_L_08A79B10:
ctx.gpr[2] = (0u | 1u);
goto SB_L_08A79B14;
SB_L_08A79B14:
tier2_gpr_16 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(0)));
tier2_gpr_31 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(4)));
jump_target = tier2_gpr_31;
tier2_gpr_29 = (tier2_gpr_29 + static_cast<std::uint32_t>(16));
local_pc = jump_target;
goto TIER2_LOCAL_DISPATCH_U0157;
SB_L_08A79DF8:
tier2_gpr_29 = (tier2_gpr_29 + static_cast<std::uint32_t>(-32));
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
ctx.gpr[17] = (2238u << 16u);
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(17440));
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(0), tier2_gpr_16);
tier2_gpr_16 = (ctx.gpr[17] + static_cast<std::uint32_t>(16));
{ const std::uint32_t tier2_words[3]{ctx.gpr[18], ctx.gpr[19], tier2_gpr_31};
tier2_mem.aot_store32_block(tier2_gpr_29 + static_cast<std::uint32_t>(8), tier2_words); }
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(10064)));
ctx.gpr[19] = (0u | 0u);
tier2_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[19]) < static_cast<std::int32_t>(tier2_gpr_4) ? 1u : 0u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
ctx.gpr[18] = (2279u << 16u);
if (branch_taken) {
goto SB_L_08A79E64;
}
goto SB_L_08A79E30;
}
SB_L_08A79E30:
ctx.gpr[18] = (ctx.gpr[18] + static_cast<std::uint32_t>(27328));
goto SB_L_08A79E34;
SB_L_08A79E34:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(92)));
tier2_gpr_5 = (tier2_gpr_5 + static_cast<std::uint32_t>(120));
tier2_gpr_6 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_5 + static_cast<std::uint32_t>(0))))));
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_5 + static_cast<std::uint32_t>(4)));
jump_target = tier2_gpr_5;
tier2_gpr_31 = (0x08A79E50u);
tier2_gpr_4 = (tier2_gpr_4 + tier2_gpr_6);
ctx.pc = jump_target;
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A79E50u) goto SB_L_08A79E50;
TIER2_SB_RETURN();
SB_L_08A79E50:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(10064)));
ctx.gpr[19] = (ctx.gpr[19] + static_cast<std::uint32_t>(1));
tier2_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[19]) < static_cast<std::int32_t>(tier2_gpr_4) ? 1u : 0u);
{ const bool branch_taken = tier2_gpr_4 != 0u;
ctx.gpr[18] = (ctx.gpr[18] + static_cast<std::uint32_t>(4));
if (branch_taken) {
goto SB_L_08A79E34;
}
goto SB_L_08A79E64;
}
SB_L_08A79E64:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(10072)));
ctx.gpr[19] = (0u | 0u);
tier2_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[19]) < static_cast<std::int32_t>(tier2_gpr_4) ? 1u : 0u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
ctx.gpr[18] = (2280u << 16u);
if (branch_taken) {
goto SB_L_08A79EAC;
}
goto SB_L_08A79E78;
}
SB_L_08A79E78:
ctx.gpr[18] = (ctx.gpr[18] + static_cast<std::uint32_t>(-29568));
goto SB_L_08A79E7C;
SB_L_08A79E7C:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(92)));
tier2_gpr_5 = (tier2_gpr_5 + static_cast<std::uint32_t>(120));
tier2_gpr_6 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_5 + static_cast<std::uint32_t>(0))))));
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_5 + static_cast<std::uint32_t>(4)));
jump_target = tier2_gpr_5;
tier2_gpr_31 = (0x08A79E98u);
tier2_gpr_4 = (tier2_gpr_4 + tier2_gpr_6);
ctx.pc = jump_target;
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A79E98u) goto SB_L_08A79E98;
TIER2_SB_RETURN();
SB_L_08A79E98:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(10072)));
ctx.gpr[19] = (ctx.gpr[19] + static_cast<std::uint32_t>(1));
tier2_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[19]) < static_cast<std::int32_t>(tier2_gpr_4) ? 1u : 0u);
{ const bool branch_taken = tier2_gpr_4 != 0u;
ctx.gpr[18] = (ctx.gpr[18] + static_cast<std::uint32_t>(4));
if (branch_taken) {
goto SB_L_08A79E7C;
}
goto SB_L_08A79EAC;
}
SB_L_08A79EAC:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(10068)));
ctx.gpr[19] = (0u | 0u);
tier2_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[19]) < static_cast<std::int32_t>(tier2_gpr_4) ? 1u : 0u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
ctx.gpr[18] = (2280u << 16u);
if (branch_taken) {
goto SB_L_08A79EF4;
}
goto SB_L_08A79EC0;
}
SB_L_08A79EC0:
ctx.gpr[18] = (ctx.gpr[18] + static_cast<std::uint32_t>(-30208));
goto SB_L_08A79EC4;
SB_L_08A79EC4:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(92)));
tier2_gpr_5 = (tier2_gpr_5 + static_cast<std::uint32_t>(120));
tier2_gpr_6 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_5 + static_cast<std::uint32_t>(0))))));
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_5 + static_cast<std::uint32_t>(4)));
jump_target = tier2_gpr_5;
tier2_gpr_31 = (0x08A79EE0u);
tier2_gpr_4 = (tier2_gpr_4 + tier2_gpr_6);
ctx.pc = jump_target;
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A79EE0u) goto SB_L_08A79EE0;
TIER2_SB_RETURN();
SB_L_08A79EE0:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(10068)));
ctx.gpr[19] = (ctx.gpr[19] + static_cast<std::uint32_t>(1));
tier2_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[19]) < static_cast<std::int32_t>(tier2_gpr_4) ? 1u : 0u);
{ const bool branch_taken = tier2_gpr_4 != 0u;
ctx.gpr[18] = (ctx.gpr[18] + static_cast<std::uint32_t>(4));
if (branch_taken) {
goto SB_L_08A79EC4;
}
goto SB_L_08A79EF4;
}
SB_L_08A79EF4:
ctx.gpr[17] = (tier2_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(12)));
{ const bool branch_taken = ctx.gpr[17] == tier2_gpr_16;
// nop
if (branch_taken) {
goto SB_L_08A79F28;
}
goto SB_L_08A79F00;
}
SB_L_08A79F00:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(0)));
goto SB_L_08A79F04;
SB_L_08A79F04:
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(92)));
tier2_gpr_5 = (tier2_gpr_5 + static_cast<std::uint32_t>(120));
tier2_gpr_6 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_5 + static_cast<std::uint32_t>(0))))));
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_5 + static_cast<std::uint32_t>(4)));
jump_target = tier2_gpr_5;
tier2_gpr_31 = (0x08A79F1Cu);
tier2_gpr_4 = (tier2_gpr_4 + tier2_gpr_6);
ctx.pc = jump_target;
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A79F1Cu) goto SB_L_08A79F1C;
TIER2_SB_RETURN();
SB_L_08A79F1C:
ctx.gpr[17] = (tier2_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(12)));
if (ctx.gpr[17] != tier2_gpr_16) {
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(0)));
goto SB_L_08A79F04;
}
goto SB_L_08A79F28;
SB_L_08A79F28:
tier2_gpr_31 = (0x08A79F30u);
// nop
goto SB_L_08A79F5C;
SB_L_08A79F5C:
tier2_gpr_29 = (tier2_gpr_29 + static_cast<std::uint32_t>(-32));
{ const std::uint32_t tier2_words[6]{std::bit_cast<std::uint32_t>(ctx.fpr[20]), tier2_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], tier2_gpr_31};
tier2_mem.aot_store32_block(tier2_gpr_29 + static_cast<std::uint32_t>(0), tier2_words); }
tier2_gpr_31 = (0x08A79F80u);
ctx.gpr[19] = (0u | 1u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 47u, 0x08960424u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A79F80u) goto SB_L_08A79F80;
TIER2_SB_RETURN();
SB_L_08A79F80:
{ const bool branch_taken = ctx.gpr[2] == 0u;
// nop
if (branch_taken) {
goto SB_L_08A79FB4;
}
goto SB_L_08A79F88;
}
SB_L_08A79F88:
tier2_gpr_31 = (0x08A79F90u);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 47u, 0x08960424u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A79F90u) goto SB_L_08A79F90;
TIER2_SB_RETURN();
SB_L_08A79F90:
tier2_gpr_4 = (ctx.gpr[2] + static_cast<std::uint32_t>(48));
ctx.fpr[12] = std::bit_cast<float>(tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(8)));
tier2_gpr_4 = (49736u << 16u);
ctx.fpr[13] = std::bit_cast<float>(tier2_gpr_4);
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] <= ctx.fpr[13])) ? 0x00800000u : 0u);
// nop
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
// nop
if (branch_taken) {
goto SB_L_08A79FB4;
}
goto SB_L_08A79FB0;
}
SB_L_08A79FB0:
ctx.gpr[19] = (0u | 0u);
goto SB_L_08A79FB4;
SB_L_08A79FB4:
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-5496)));
ctx.gpr[18] = (0u | 0u);
tier2_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[18]) < static_cast<std::int32_t>(tier2_gpr_5) ? 1u : 0u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
tier2_gpr_4 = (49736u << 16u);
if (branch_taken) {
goto SB_L_08A7A054;
}
goto SB_L_08A79FC8;
}
SB_L_08A79FC8:
ctx.gpr[17] = (0u | 0u);
ctx.fpr[20] = std::bit_cast<float>(tier2_gpr_4);
tier2_gpr_16 = (8u << 16u);
goto SB_L_08A79FD4;
SB_L_08A79FD4:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-5500)));
tier2_gpr_4 = (tier2_gpr_4 + ctx.gpr[17]);
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(0)));
tier2_gpr_6 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(72)));
tier2_gpr_6 = (tier2_gpr_6 & tier2_gpr_16);
{ const bool branch_taken = tier2_gpr_6 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7A044;
}
goto SB_L_08A79FF0;
}
SB_L_08A79FF0:
{ const bool branch_taken = ctx.gpr[19] == 0u;
tier2_gpr_6 = (tier2_gpr_4 + static_cast<std::uint32_t>(48));
if (branch_taken) {
goto SB_L_08A7A01C;
}
goto SB_L_08A79FF8;
}
SB_L_08A79FF8:
ctx.fpr[12] = std::bit_cast<float>(tier2_mem.aot_load32(tier2_gpr_6 + static_cast<std::uint32_t>(8)));
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] < ctx.fpr[20])) ? 0x00800000u : 0u);
// nop
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
// nop
if (branch_taken) {
goto SB_L_08A7A01C;
}
goto SB_L_08A7A00C;
}
SB_L_08A7A00C:
tier2_gpr_31 = (0x08A7A014u);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0142_entry, 142u, 167u, 0x08A3CC80u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7A014u) goto SB_L_08A7A014;
TIER2_SB_RETURN();
SB_L_08A7A014:
{ const bool branch_taken = 0u == 0u;
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-5496)));
if (branch_taken) {
goto SB_L_08A7A044;
}
goto SB_L_08A7A01C;
}
SB_L_08A7A01C:
{ const bool branch_taken = ctx.gpr[19] != 0u;
tier2_gpr_6 = (tier2_gpr_4 + static_cast<std::uint32_t>(48));
if (branch_taken) {
goto SB_L_08A7A044;
}
goto SB_L_08A7A024;
}
SB_L_08A7A024:
ctx.fpr[12] = std::bit_cast<float>(tier2_mem.aot_load32(tier2_gpr_6 + static_cast<std::uint32_t>(8)));
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] <= ctx.fpr[20])) ? 0x00800000u : 0u);
// nop
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
// nop
if (branch_taken) {
goto SB_L_08A7A044;
}
goto SB_L_08A7A038;
}
SB_L_08A7A038:
tier2_gpr_31 = (0x08A7A040u);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0142_entry, 142u, 167u, 0x08A3CC80u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7A040u) goto SB_L_08A7A040;
TIER2_SB_RETURN();
SB_L_08A7A040:
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-5496)));
goto SB_L_08A7A044;
SB_L_08A7A044:
ctx.gpr[18] = (ctx.gpr[18] + static_cast<std::uint32_t>(1));
tier2_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[18]) < static_cast<std::int32_t>(tier2_gpr_5) ? 1u : 0u);
{ const bool branch_taken = tier2_gpr_4 != 0u;
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(4));
if (branch_taken) {
goto SB_L_08A79FD4;
}
goto SB_L_08A7A054;
}
SB_L_08A7A054:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5864)));
{ const bool branch_taken = tier2_gpr_4 != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7A06C;
}
goto SB_L_08A7A060;
}
SB_L_08A7A060:
tier2_gpr_31 = (0x08A7A068u);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 413u, 0x08B65B0Cu>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7A068u) goto SB_L_08A7A068;
TIER2_SB_RETURN();
SB_L_08A7A068:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5864)));
goto SB_L_08A7A06C;
SB_L_08A7A06C:
tier2_gpr_31 = (0x08A7A074u);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0084_entry, 84u, 221u, 0x08954F80u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7A074u) goto SB_L_08A7A074;
TIER2_SB_RETURN();
SB_L_08A7A074:
{ std::uint32_t tier2_words[6]{};
if (tier2_mem.aot_try_load32_block(tier2_gpr_29 + static_cast<std::uint32_t>(0), tier2_words)) {
ctx.fpr[20] = std::bit_cast<float>(tier2_words[0]);
tier2_gpr_16 = tier2_words[1];
ctx.gpr[17] = tier2_words[2];
ctx.gpr[18] = tier2_words[3];
ctx.gpr[19] = tier2_words[4];
tier2_gpr_31 = tier2_words[5];
} else {
ctx.fpr[20] = std::bit_cast<float>(tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(0)));
tier2_gpr_16 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(4)));
ctx.gpr[17] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(8)));
ctx.gpr[18] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(12)));
ctx.gpr[19] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(16)));
tier2_gpr_31 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(20)));
} }
jump_target = tier2_gpr_31;
tier2_gpr_29 = (tier2_gpr_29 + static_cast<std::uint32_t>(32));
local_pc = jump_target;
goto TIER2_LOCAL_DISPATCH_U0157;
SB_L_08A7A664:
tier2_gpr_29 = (tier2_gpr_29 + static_cast<std::uint32_t>(-32));
tier2_gpr_5 = (tier2_gpr_5 & 255u);
{ const std::uint32_t tier2_words[7]{tier2_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], tier2_gpr_31};
tier2_mem.aot_store32_block(tier2_gpr_29 + static_cast<std::uint32_t>(0), tier2_words); }
{ const bool branch_taken = tier2_gpr_5 == 0u;
tier2_gpr_16 = (tier2_gpr_4 | 0u);
if (branch_taken) {
goto SB_L_08A7A714;
}
goto SB_L_08A7A690;
}
SB_L_08A7A690:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
tier2_gpr_4 = (tier2_gpr_4 & 14u);
tier2_gpr_4 = (tier2_gpr_4 ^ 10u);
tier2_gpr_4 = (tier2_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
ctx.gpr[17] = (0u | 0u);
if (branch_taken) {
goto SB_L_08A7A6D0;
}
goto SB_L_08A7A6AC;
}
SB_L_08A7A6AC:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5844)));
{ const bool branch_taken = tier2_gpr_4 != 0u;
ctx.gpr[18] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_16 + static_cast<std::uint32_t>(86))))));
if (branch_taken) {
goto SB_L_08A7A6C0;
}
goto SB_L_08A7A6B8;
}
SB_L_08A7A6B8:
tier2_gpr_31 = (0x08A7A6C0u);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 339u, 0x08B6572Cu>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7A6C0u) goto SB_L_08A7A6C0;
TIER2_SB_RETURN();
SB_L_08A7A6C0:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5844)));
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(276)));
if (ctx.gpr[18] != tier2_gpr_4) {
ctx.gpr[17] = (0u | 1u);
goto SB_L_08A7A708;
}
goto SB_L_08A7A6D0;
SB_L_08A7A6D0:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
tier2_gpr_4 = (tier2_gpr_4 & 14u);
tier2_gpr_4 = (tier2_gpr_4 ^ 8u);
tier2_gpr_4 = (tier2_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
tier2_gpr_4 = (ctx.gpr[17] & 255u);
if (branch_taken) {
goto SB_L_08A7A70C;
}
goto SB_L_08A7A6EC;
}
SB_L_08A7A6EC:
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(tier2_mem.aot_load8(tier2_gpr_16 + static_cast<std::uint32_t>(483))))));
tier2_gpr_4 = (tier2_gpr_4 & 16u);
tier2_gpr_4 = (0u < tier2_gpr_4 ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
tier2_gpr_4 = (ctx.gpr[17] & 255u);
if (branch_taken) {
goto SB_L_08A7A70C;
}
goto SB_L_08A7A704;
}
SB_L_08A7A704:
ctx.gpr[17] = (0u | 1u);
goto SB_L_08A7A708;
SB_L_08A7A708:
tier2_gpr_4 = (ctx.gpr[17] & 255u);
goto SB_L_08A7A70C;
SB_L_08A7A70C:
{ const bool branch_taken = tier2_gpr_4 != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7A738;
}
goto SB_L_08A7A714;
}
SB_L_08A7A714:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
tier2_gpr_4 = (tier2_gpr_4 & 14u);
tier2_gpr_4 = (tier2_gpr_4 ^ 6u);
tier2_gpr_4 = (tier2_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
if (tier2_gpr_4 != 0u) {
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(2228)));
goto SB_L_08A7A778;
}
goto SB_L_08A7A730;
SB_L_08A7A730:
{ const bool branch_taken = 0u == 0u;
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(76)));
if (branch_taken) {
goto SB_L_08A7A75C;
}
goto SB_L_08A7A738;
}
SB_L_08A7A738:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(10076)));
tier2_gpr_5 = (2280u << 16u);
tier2_gpr_6 = (tier2_gpr_4 << 2u);
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(1));
tier2_gpr_5 = (tier2_gpr_5 + static_cast<std::uint32_t>(-21568));
tier2_mem.aot_store32(ctx.gpr[28] + static_cast<std::uint32_t>(10076), tier2_gpr_4);
tier2_gpr_4 = (tier2_gpr_6 + tier2_gpr_5);
{ const bool branch_taken = 0u == 0u;
tier2_mem.aot_store32(tier2_gpr_4 + static_cast<std::uint32_t>(0), tier2_gpr_16);
if (branch_taken) {
goto SB_L_08A7A928;
}
goto SB_L_08A7A75C;
}
SB_L_08A7A75C:
tier2_gpr_5 = (2u << 16u);
tier2_gpr_4 = (tier2_gpr_4 & tier2_gpr_5);
tier2_gpr_4 = (0u < tier2_gpr_4 ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7A784;
}
goto SB_L_08A7A774;
}
SB_L_08A7A774:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(2228)));
goto SB_L_08A7A778;
SB_L_08A7A778:
tier2_gpr_5 = (0u | 55u);
{ const bool branch_taken = tier2_gpr_4 == tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7A7C0;
}
goto SB_L_08A7A784;
}
SB_L_08A7A784:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(92)));
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(144));
tier2_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_4 + static_cast<std::uint32_t>(0))))));
tier2_gpr_6 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(4)));
jump_target = tier2_gpr_6;
tier2_gpr_31 = (0x08A7A79Cu);
tier2_gpr_4 = (tier2_gpr_16 + tier2_gpr_5);
ctx.pc = jump_target;
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7A79Cu) goto SB_L_08A7A79C;
TIER2_SB_RETURN();
SB_L_08A7A79C:
ctx.gpr[19] = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
ctx.gpr[19] = (ctx.gpr[19] & 14u);
tier2_gpr_4 = (ctx.gpr[19] ^ 14u);
tier2_gpr_4 = (tier2_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
{ const bool branch_taken = tier2_gpr_4 != 0u;
ctx.gpr[18] = (ctx.gpr[2] | 0u);
if (branch_taken) {
goto SB_L_08A7A7C8;
}
goto SB_L_08A7A7B8;
}
SB_L_08A7A7B8:
{ const bool branch_taken = 0u == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7A7F8;
}
goto SB_L_08A7A7C0;
}
SB_L_08A7A7C0:
{ const bool branch_taken = 0u == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7A928;
}
goto SB_L_08A7A7C8;
}
SB_L_08A7A7C8:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(352)));
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(108)));
ctx.gpr[17] = (tier2_gpr_5 + static_cast<std::uint32_t>(16));
tier2_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(0))))));
tier2_gpr_31 = (0x08A7A7E0u);
ctx.gpr[19] = (tier2_gpr_4 + tier2_gpr_5);
if (tier2_return_depth < kTier2ReturnCapacity) {
if (!rt.tier2_enter_fused_transfer<158u, 0x08A7FAA4u>(ctx)) {
ctx.pc = 0x08A7FAA4u;
TIER2_SB_RETURN();
}
tier2_return_pc[tier2_return_depth] = 0x08A7A7E0u;
tier2_return_unit[tier2_return_depth] = 157u;
tier2_return_pending_base[tier2_return_depth] = tier2_pending_transfers;
++tier2_return_depth;
++tier2_stats.fused_calls;
goto SB_L_08A7FAA4;
}
++tier2_stats.fallbacks;
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7A7E0u) goto SB_L_08A7A7E0;
TIER2_SB_RETURN();
SB_L_08A7A7E0:
tier2_gpr_6 = (tier2_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
tier2_gpr_4 = (ctx.gpr[19] | 0u);
jump_target = tier2_gpr_6;
tier2_gpr_31 = (0x08A7A7F0u);
tier2_gpr_5 = (ctx.gpr[2] | 0u);
ctx.pc = jump_target;
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7A7F0u) goto SB_L_08A7A7F0;
TIER2_SB_RETURN();
SB_L_08A7A7F0:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[19] = (ctx.gpr[2] | 0u);
if (branch_taken) {
goto SB_L_08A7A800;
}
goto SB_L_08A7A7F8;
}
SB_L_08A7A7F8:
ctx.gpr[19] = (ctx.gpr[19] ^ 4u);
ctx.gpr[19] = (ctx.gpr[19] < static_cast<std::uint32_t>(1) ? 1u : 0u);
goto SB_L_08A7A800;
SB_L_08A7A800:
{ const bool branch_taken = ctx.gpr[19] == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7A818;
}
goto SB_L_08A7A808;
}
SB_L_08A7A808:
tier2_gpr_31 = (0x08A7A810u);
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(80)));
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0080_entry, 80u, 192u, 0x08945314u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7A810u) goto SB_L_08A7A810;
TIER2_SB_RETURN();
SB_L_08A7A810:
tier2_gpr_31 = (0x08A7A818u);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0080_entry, 80u, 125u, 0x08944F2Cu>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7A818u) goto SB_L_08A7A818;
TIER2_SB_RETURN();
SB_L_08A7A818:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
tier2_gpr_4 = (tier2_gpr_4 & 14u);
tier2_gpr_4 = (tier2_gpr_4 ^ 4u);
tier2_gpr_4 = (tier2_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7A8E4;
}
goto SB_L_08A7A834;
}
SB_L_08A7A834:
ctx.gpr[20] = (tier2_gpr_16 | 0u);
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(900)));
{ const bool branch_taken = tier2_gpr_4 == 0u;
tier2_gpr_5 = (tier2_gpr_4 + static_cast<std::uint32_t>(2228));
if (branch_taken) {
goto SB_L_08A7A86C;
}
goto SB_L_08A7A844;
}
SB_L_08A7A844:
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_5 + static_cast<std::uint32_t>(0)));
tier2_gpr_6 = (0u | 55u);
{ const bool branch_taken = tier2_gpr_5 != tier2_gpr_6;
// nop
if (branch_taken) {
goto SB_L_08A7A86C;
}
goto SB_L_08A7A854;
}
SB_L_08A7A854:
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(92)));
tier2_gpr_5 = (tier2_gpr_5 + static_cast<std::uint32_t>(128));
tier2_gpr_6 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_5 + static_cast<std::uint32_t>(0))))));
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_5 + static_cast<std::uint32_t>(4)));
jump_target = tier2_gpr_5;
tier2_gpr_31 = (0x08A7A86Cu);
tier2_gpr_4 = (tier2_gpr_4 + tier2_gpr_6);
ctx.pc = jump_target;
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7A86Cu) goto SB_L_08A7A86C;
TIER2_SB_RETURN();
SB_L_08A7A86C:
tier2_gpr_4 = (tier2_mem.aot_load8(ctx.gpr[20] + static_cast<std::uint32_t>(565)));
ctx.gpr[21] = (0u | 0u);
tier2_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[21]) < static_cast<std::int32_t>(tier2_gpr_4) ? 1u : 0u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
ctx.gpr[17] = (0u | 55u);
if (branch_taken) {
goto SB_L_08A7A8E4;
}
goto SB_L_08A7A880;
}
SB_L_08A7A880:
tier2_gpr_4 = (ctx.gpr[20] | 0u);
tier2_gpr_31 = (0x08A7A88Cu);
tier2_gpr_5 = (ctx.gpr[21] | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0190_entry, 190u, 663u, 0x08AFEF7Cu>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7A88Cu) goto SB_L_08A7A88C;
TIER2_SB_RETURN();
SB_L_08A7A88C:
{ const bool branch_taken = ctx.gpr[2] == 0u;
tier2_gpr_4 = (ctx.gpr[20] | 0u);
if (branch_taken) {
goto SB_L_08A7A8D0;
}
goto SB_L_08A7A894;
}
SB_L_08A7A894:
tier2_gpr_31 = (0x08A7A89Cu);
tier2_gpr_5 = (ctx.gpr[21] | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0190_entry, 190u, 663u, 0x08AFEF7Cu>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7A89Cu) goto SB_L_08A7A89C;
TIER2_SB_RETURN();
SB_L_08A7A89C:
tier2_gpr_4 = (ctx.gpr[2] + static_cast<std::uint32_t>(2228));
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(0)));
{ const bool branch_taken = tier2_gpr_4 != ctx.gpr[17];
// nop
if (branch_taken) {
goto SB_L_08A7A8D0;
}
goto SB_L_08A7A8AC;
}
SB_L_08A7A8AC:
tier2_gpr_4 = (ctx.gpr[20] | 0u);
tier2_gpr_31 = (0x08A7A8B8u);
tier2_gpr_5 = (ctx.gpr[21] | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0190_entry, 190u, 663u, 0x08AFEF7Cu>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7A8B8u) goto SB_L_08A7A8B8;
TIER2_SB_RETURN();
SB_L_08A7A8B8:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[2] + static_cast<std::uint32_t>(92)));
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(128));
tier2_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_4 + static_cast<std::uint32_t>(0))))));
tier2_gpr_6 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(4)));
jump_target = tier2_gpr_6;
tier2_gpr_31 = (0x08A7A8D0u);
tier2_gpr_4 = (ctx.gpr[2] + tier2_gpr_5);
ctx.pc = jump_target;
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7A8D0u) goto SB_L_08A7A8D0;
TIER2_SB_RETURN();
SB_L_08A7A8D0:
tier2_gpr_4 = (tier2_mem.aot_load8(ctx.gpr[20] + static_cast<std::uint32_t>(565)));
ctx.gpr[21] = (ctx.gpr[21] + static_cast<std::uint32_t>(1));
tier2_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[21]) < static_cast<std::int32_t>(tier2_gpr_4) ? 1u : 0u);
{ const bool branch_taken = tier2_gpr_4 != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7A880;
}
goto SB_L_08A7A8E4;
}
SB_L_08A7A8E4:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(92)));
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(128));
tier2_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_4 + static_cast<std::uint32_t>(0))))));
tier2_gpr_6 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(4)));
jump_target = tier2_gpr_6;
tier2_gpr_31 = (0x08A7A8FCu);
tier2_gpr_4 = (tier2_gpr_16 + tier2_gpr_5);
ctx.pc = jump_target;
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7A8FCu) goto SB_L_08A7A8FC;
TIER2_SB_RETURN();
SB_L_08A7A8FC:
{ const bool branch_taken = ctx.gpr[19] == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7A90C;
}
goto SB_L_08A7A904;
}
SB_L_08A7A904:
tier2_gpr_31 = (0x08A7A90Cu);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0080_entry, 80u, 132u, 0x08944F98u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7A90Cu) goto SB_L_08A7A90C;
TIER2_SB_RETURN();
SB_L_08A7A90C:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(92)));
tier2_gpr_5 = (ctx.gpr[18] | 0u);
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(152));
tier2_gpr_6 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_4 + static_cast<std::uint32_t>(0))))));
ctx.gpr[7] = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(4)));
jump_target = ctx.gpr[7];
tier2_gpr_31 = (0x08A7A928u);
tier2_gpr_4 = (tier2_gpr_16 + tier2_gpr_6);
ctx.pc = jump_target;
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7A928u) goto SB_L_08A7A928;
TIER2_SB_RETURN();
SB_L_08A7A928:
{ std::uint32_t tier2_words[7]{};
if (tier2_mem.aot_try_load32_block(tier2_gpr_29 + static_cast<std::uint32_t>(0), tier2_words)) {
tier2_gpr_16 = tier2_words[0];
ctx.gpr[17] = tier2_words[1];
ctx.gpr[18] = tier2_words[2];
ctx.gpr[19] = tier2_words[3];
ctx.gpr[20] = tier2_words[4];
ctx.gpr[21] = tier2_words[5];
tier2_gpr_31 = tier2_words[6];
} else {
tier2_gpr_16 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(0)));
ctx.gpr[17] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(4)));
ctx.gpr[18] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(8)));
ctx.gpr[19] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(12)));
ctx.gpr[20] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(16)));
ctx.gpr[21] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(20)));
tier2_gpr_31 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(24)));
} }
jump_target = tier2_gpr_31;
tier2_gpr_29 = (tier2_gpr_29 + static_cast<std::uint32_t>(32));
local_pc = jump_target;
goto TIER2_LOCAL_DISPATCH_U0157;
SB_L_08A7A94C:
tier2_gpr_29 = (tier2_gpr_29 + static_cast<std::uint32_t>(-80));
tier2_gpr_4 = (2236u << 16u);
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(56), ctx.gpr[20]);
ctx.gpr[20] = (tier2_gpr_4 + static_cast<std::uint32_t>(29552));
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
tier2_gpr_6 = (8448u << 16u);
tier2_gpr_6 = (tier2_gpr_6 + static_cast<std::uint32_t>(1));
tier2_mem.aot_store32(tier2_gpr_5 + static_cast<std::uint32_t>(0), tier2_gpr_6);
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
tier2_gpr_5 = (tier2_gpr_5 + static_cast<std::uint32_t>(4));
tier2_gpr_6 = (59136u << 16u);
tier2_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(0), tier2_gpr_5);
tier2_mem.aot_store32(tier2_gpr_5 + static_cast<std::uint32_t>(0), tier2_gpr_6);
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
tier2_gpr_6 = (8704u << 16u);
tier2_gpr_5 = (tier2_gpr_5 + static_cast<std::uint32_t>(4));
tier2_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(0), tier2_gpr_5);
tier2_gpr_6 = (tier2_gpr_6 + static_cast<std::uint32_t>(1));
tier2_mem.aot_store32(tier2_gpr_5 + static_cast<std::uint32_t>(0), tier2_gpr_6);
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
tier2_gpr_6 = (8960u << 16u);
tier2_gpr_5 = (tier2_gpr_5 + static_cast<std::uint32_t>(4));
tier2_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(0), tier2_gpr_5);
tier2_gpr_6 = (tier2_gpr_6 + static_cast<std::uint32_t>(1));
tier2_mem.aot_store32(tier2_gpr_5 + static_cast<std::uint32_t>(0), tier2_gpr_6);
tier2_gpr_5 = tier2_mem.aot_advance32(ctx.gpr[20] + static_cast<std::uint32_t>(0));
{ const std::uint32_t tier2_words[4]{tier2_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19]};
tier2_mem.aot_store32_block(tier2_gpr_29 + static_cast<std::uint32_t>(40), tier2_words); }
{ const std::uint32_t tier2_words[5]{ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], ctx.gpr[30], tier2_gpr_31};
tier2_mem.aot_store32_block(tier2_gpr_29 + static_cast<std::uint32_t>(60), tier2_words); }
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
tier2_gpr_6 = (51200u << 16u);
tier2_gpr_6 = (tier2_gpr_6 + static_cast<std::uint32_t>(2));
tier2_mem.aot_store32(tier2_gpr_5 + static_cast<std::uint32_t>(0), tier2_gpr_6);
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
tier2_gpr_6 = (57088u << 16u);
tier2_gpr_5 = (tier2_gpr_5 + static_cast<std::uint32_t>(4));
tier2_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(0), tier2_gpr_5);
tier2_gpr_6 = (tier2_gpr_6 + static_cast<std::uint32_t>(50));
tier2_mem.aot_store32(tier2_gpr_5 + static_cast<std::uint32_t>(0), tier2_gpr_6);
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
tier2_gpr_6 = (57344u << 16u);
tier2_gpr_5 = (tier2_gpr_5 + static_cast<std::uint32_t>(4));
tier2_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(0), tier2_gpr_5);
tier2_mem.aot_store32(tier2_gpr_5 + static_cast<std::uint32_t>(0), tier2_gpr_6);
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
tier2_gpr_6 = (57600u << 16u);
tier2_gpr_5 = (tier2_gpr_5 + static_cast<std::uint32_t>(4));
tier2_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(0), tier2_gpr_5);
tier2_mem.aot_store32(tier2_gpr_5 + static_cast<std::uint32_t>(0), tier2_gpr_6);
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
tier2_gpr_6 = (5888u << 16u);
tier2_gpr_5 = (tier2_gpr_5 + static_cast<std::uint32_t>(4));
tier2_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(0), tier2_gpr_5);
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(29552)));
tier2_gpr_6 = (tier2_gpr_6 + static_cast<std::uint32_t>(1));
tier2_mem.aot_store32(tier2_gpr_5 + static_cast<std::uint32_t>(0), tier2_gpr_6);
tier2_gpr_5 = (0u | 1u);
tier2_gpr_6 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(29552)));
tier2_mem.aot_store8(ctx.gpr[28] + static_cast<std::uint32_t>(-24632), static_cast<std::uint8_t>(tier2_gpr_5));
tier2_gpr_5 = (tier2_gpr_6 + static_cast<std::uint32_t>(4));
tier2_mem.aot_store32(tier2_gpr_4 + static_cast<std::uint32_t>(29552), tier2_gpr_5);
tier2_gpr_4 = (0u | 11u);
tier2_gpr_31 = (0x08A7AA6Cu);
tier2_gpr_5 = (0u | 1u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0023_entry, 23u, 203u, 0x08861668u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7AA6Cu) goto SB_L_08A7AA6C;
TIER2_SB_RETURN();
SB_L_08A7AA6C:
tier2_gpr_31 = (0x08A7AA74u);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0080_entry, 80u, 129u, 0x08944F6Cu>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7AA74u) goto SB_L_08A7AA74;
TIER2_SB_RETURN();
SB_L_08A7AA74:
tier2_gpr_31 = (0x08A7AA7Cu);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0080_entry, 80u, 127u, 0x08944F4Cu>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7AA7Cu) goto SB_L_08A7AA7C;
TIER2_SB_RETURN();
SB_L_08A7AA7C:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(10072)));
ctx.gpr[20] = (0u | 0u);
tier2_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[20]) < static_cast<std::int32_t>(tier2_gpr_4) ? 1u : 0u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
tier2_gpr_4 = (ctx.gpr[28] + static_cast<std::uint32_t>(10048));
if (branch_taken) {
goto SB_L_08A7AD14;
}
goto SB_L_08A7AA90;
}
SB_L_08A7AA90:
ctx.gpr[22] = (2280u << 16u);
ctx.gpr[18] = (2236u << 16u);
ctx.gpr[30] = (0u | 55u);
ctx.gpr[23] = (0u | 3u);
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(36), tier2_gpr_4);
ctx.gpr[22] = (ctx.gpr[22] + static_cast<std::uint32_t>(-29568));
ctx.gpr[18] = (ctx.gpr[18] + static_cast<std::uint32_t>(32304));
ctx.gpr[21] = (2u << 16u);
goto SB_L_08A7AAB0;
SB_L_08A7AAB0:
tier2_gpr_16 = (tier2_mem.aot_load32(ctx.gpr[22] + static_cast<std::uint32_t>(0)));
ctx.gpr[19] = (0u | 0u);
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(76)));
tier2_gpr_4 = (tier2_gpr_4 & ctx.gpr[21]);
tier2_gpr_4 = (0u < tier2_gpr_4 ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
ctx.gpr[17] = (0u | 0u);
if (branch_taken) {
goto SB_L_08A7AAF0;
}
goto SB_L_08A7AAD0;
}
SB_L_08A7AAD0:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(2228)));
{ const bool branch_taken = tier2_gpr_4 != ctx.gpr[30];
// nop
if (branch_taken) {
goto SB_L_08A7AAF0;
}
goto SB_L_08A7AADC;
}
SB_L_08A7AADC:
tier2_gpr_31 = (0x08A7AAE4u);
tier2_gpr_4 = (ctx.gpr[18] | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0134_entry, 134u, 56u, 0x08A1C658u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7AAE4u) goto SB_L_08A7AAE4;
TIER2_SB_RETURN();
SB_L_08A7AAE4:
{ const bool branch_taken = ctx.gpr[2] != ctx.gpr[23];
// nop
if (branch_taken) {
goto SB_L_08A7AAF0;
}
goto SB_L_08A7AAEC;
}
SB_L_08A7AAEC:
ctx.gpr[17] = (0u | 1u);
goto SB_L_08A7AAF0;
SB_L_08A7AAF0:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
tier2_gpr_4 = (tier2_gpr_4 & 14u);
tier2_gpr_4 = (tier2_gpr_4 ^ 6u);
tier2_gpr_4 = (tier2_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
if (tier2_gpr_4 != 0u) {
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(2228)));
goto SB_L_08A7AB28;
}
goto SB_L_08A7AB0C;
SB_L_08A7AB0C:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(76)));
tier2_gpr_4 = (tier2_gpr_4 & ctx.gpr[21]);
tier2_gpr_4 = (0u < tier2_gpr_4 ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7ABA4;
}
goto SB_L_08A7AB24;
}
SB_L_08A7AB24:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(2228)));
goto SB_L_08A7AB28;
SB_L_08A7AB28:
{ const bool branch_taken = tier2_gpr_4 == ctx.gpr[30];
// nop
if (branch_taken) {
goto SB_L_08A7ABA4;
}
goto SB_L_08A7AB30;
}
SB_L_08A7AB30:
{ const bool branch_taken = ctx.gpr[17] != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7ABA4;
}
goto SB_L_08A7AB38;
}
SB_L_08A7AB38:
tier2_gpr_4 = (tier2_gpr_16 | 0u);
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(76)));
tier2_gpr_5 = (tier2_gpr_5 & ctx.gpr[21]);
tier2_gpr_5 = (0u < tier2_gpr_5 ? 1u : 0u);
tier2_gpr_5 = (tier2_gpr_5 & 255u);
{ const bool branch_taken = tier2_gpr_5 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7AB80;
}
goto SB_L_08A7AB54;
}
SB_L_08A7AB54:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(236)));
tier2_gpr_4 = (tier2_gpr_4 & 256u);
tier2_gpr_4 = (0u < tier2_gpr_4 ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
{ const bool branch_taken = tier2_gpr_4 != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7AB9C;
}
goto SB_L_08A7AB6C;
}
SB_L_08A7AB6C:
tier2_gpr_4 = (tier2_gpr_16 | 0u);
tier2_gpr_31 = (0x08A7AB78u);
tier2_gpr_5 = (0u | 0u);
goto SB_L_08A7A664;
SB_L_08A7AB80:
tier2_gpr_31 = (0x08A7AB88u);
// nop
goto SB_L_08A79AB4;
SB_L_08A7AB9C:
{ const bool branch_taken = 0u == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7AD00;
}
goto SB_L_08A7ABA4;
}
SB_L_08A7ABA4:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
tier2_gpr_4 = (tier2_gpr_4 & 14u);
tier2_gpr_4 = (tier2_gpr_4 ^ 4u);
tier2_gpr_4 = (tier2_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7ACB0;
}
goto SB_L_08A7ABC0;
}
SB_L_08A7ABC0:
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(852)));
tier2_gpr_4 = (0u | 1u);
if (tier2_gpr_5 == tier2_gpr_4) {
tier2_gpr_4 = (tier2_mem.aot_load8(ctx.gpr[18] + static_cast<std::uint32_t>(80)));
goto SB_L_08A7ABE4;
}
goto SB_L_08A7ABD0;
SB_L_08A7ABD0:
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(852)));
tier2_gpr_6 = (0u | 2u);
{ const bool branch_taken = tier2_gpr_5 != tier2_gpr_6;
// nop
if (branch_taken) {
goto SB_L_08A7AC7C;
}
goto SB_L_08A7ABE0;
}
SB_L_08A7ABE0:
tier2_gpr_4 = (tier2_mem.aot_load8(ctx.gpr[18] + static_cast<std::uint32_t>(80)));
goto SB_L_08A7ABE4;
SB_L_08A7ABE4:
tier2_gpr_4 = (tier2_gpr_4 << 5u);
tier2_gpr_5 = (0u - tier2_gpr_4);
tier2_gpr_4 = (tier2_gpr_4 << 2u);
tier2_gpr_5 = (tier2_gpr_5 + tier2_gpr_4);
tier2_gpr_4 = (tier2_gpr_4 << 2u);
tier2_gpr_4 = (tier2_gpr_5 + tier2_gpr_4);
tier2_gpr_4 = (tier2_gpr_4 + ctx.gpr[18]);
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_4 + static_cast<std::uint32_t>(112))))));
tier2_gpr_5 = (0u | 14u);
{ const bool branch_taken = tier2_gpr_4 == tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7ACB0;
}
goto SB_L_08A7AC10;
}
SB_L_08A7AC10:
tier2_gpr_4 = (tier2_mem.aot_load8(ctx.gpr[18] + static_cast<std::uint32_t>(80)));
tier2_gpr_4 = (tier2_gpr_4 << 5u);
tier2_gpr_5 = (0u - tier2_gpr_4);
tier2_gpr_4 = (tier2_gpr_4 << 2u);
tier2_gpr_5 = (tier2_gpr_5 + tier2_gpr_4);
tier2_gpr_4 = (tier2_gpr_4 << 2u);
tier2_gpr_4 = (tier2_gpr_5 + tier2_gpr_4);
tier2_gpr_4 = (tier2_gpr_4 + ctx.gpr[18]);
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_4 + static_cast<std::uint32_t>(112))))));
tier2_gpr_5 = (0u | 16u);
{ const bool branch_taken = tier2_gpr_4 != tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7AC60;
}
goto SB_L_08A7AC40;
}
SB_L_08A7AC40:
tier2_gpr_31 = (0x08A7AC48u);
tier2_gpr_4 = (ctx.gpr[18] | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0134_entry, 134u, 56u, 0x08A1C658u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7AC48u) goto SB_L_08A7AC48;
TIER2_SB_RETURN();
SB_L_08A7AC48:
{ const bool branch_taken = ctx.gpr[2] == ctx.gpr[23];
// nop
if (branch_taken) {
goto SB_L_08A7AC60;
}
goto SB_L_08A7AC50;
}
SB_L_08A7AC50:
tier2_gpr_31 = (0x08A7AC58u);
tier2_gpr_4 = (ctx.gpr[18] | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0134_entry, 134u, 56u, 0x08A1C658u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7AC58u) goto SB_L_08A7AC58;
TIER2_SB_RETURN();
SB_L_08A7AC58:
{ const bool branch_taken = ctx.gpr[2] != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7ACB0;
}
goto SB_L_08A7AC60;
}
SB_L_08A7AC60:
tier2_gpr_31 = (0x08A7AC68u);
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(80)));
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0080_entry, 80u, 191u, 0x0894530Cu>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7AC68u) goto SB_L_08A7AC68;
TIER2_SB_RETURN();
SB_L_08A7AC68:
tier2_gpr_4 = (0u | 255u);
{ const bool branch_taken = ctx.gpr[2] != tier2_gpr_4;
// nop
if (branch_taken) {
goto SB_L_08A7ACB0;
}
goto SB_L_08A7AC74;
}
SB_L_08A7AC74:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[19] = (0u | 1u);
if (branch_taken) {
goto SB_L_08A7ACB0;
}
goto SB_L_08A7AC7C;
}
SB_L_08A7AC7C:
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
tier2_gpr_5 = (tier2_gpr_5 & 14u);
tier2_gpr_5 = (tier2_gpr_5 ^ 4u);
tier2_gpr_5 = (tier2_gpr_5 < static_cast<std::uint32_t>(1) ? 1u : 0u);
tier2_gpr_5 = (tier2_gpr_5 & 255u);
{ const bool branch_taken = tier2_gpr_5 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7ACB0;
}
goto SB_L_08A7AC98;
}
SB_L_08A7AC98:
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(236)));
tier2_gpr_6 = (1024u << 16u);
tier2_gpr_5 = (tier2_gpr_5 & tier2_gpr_6);
{ const bool branch_taken = tier2_gpr_5 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7ACB0;
}
goto SB_L_08A7ACAC;
}
SB_L_08A7ACAC:
ctx.gpr[19] = (tier2_gpr_4 | 0u);
goto SB_L_08A7ACB0;
SB_L_08A7ACB0:
{ const bool branch_taken = ctx.gpr[19] != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7AD00;
}
goto SB_L_08A7ACB8;
}
SB_L_08A7ACB8:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(36)));
{ const std::uint32_t vfpu_address = tier2_gpr_4 + static_cast<std::uint32_t>(0);
std::uint32_t tier2_vfpu_words[4]{}; tier2_mem.aot_load32_block(vfpu_address, tier2_vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(tier2_vfpu_words[0]),
std::bit_cast<float>(tier2_vfpu_words[1]),
std::bit_cast<float>(tier2_vfpu_words[2]),
std::bit_cast<float>(tier2_vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
tier2_gpr_4 = (tier2_gpr_16 + static_cast<std::uint32_t>(48));
{ const std::uint32_t vfpu_address = tier2_gpr_4 + static_cast<std::uint32_t>(0);
std::uint32_t tier2_vfpu_words[4]{}; tier2_mem.aot_load32_block(vfpu_address, tier2_vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(tier2_vfpu_words[0]),
std::bit_cast<float>(tier2_vfpu_words[1]),
std::bit_cast<float>(tier2_vfpu_words[2]),
std::bit_cast<float>(tier2_vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t);
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i];
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = tier2_gpr_29 + static_cast<std::uint32_t>(0);
const std::uint32_t tier2_vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
tier2_mem.aot_store32_block(vfpu_address, tier2_vfpu_words); }
{ const std::uint32_t vfpu_address = tier2_gpr_29 + static_cast<std::uint32_t>(0);
std::uint32_t tier2_vfpu_words[4]{}; tier2_mem.aot_load32_block(vfpu_address, tier2_vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(tier2_vfpu_words[0]),
std::bit_cast<float>(tier2_vfpu_words[1]),
std::bit_cast<float>(tier2_vfpu_words[2]),
std::bit_cast<float>(tier2_vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
{ float vfpu_s[4]{}, vfpu_d[4]{};
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i]));
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
tier2_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>());
ctx.fpr[12] = std::bit_cast<float>(tier2_gpr_4);
tier2_gpr_31 = (0x08A7ACECu);
tier2_gpr_4 = (tier2_gpr_16 | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0080_entry, 80u, 165u, 0x089451D8u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7ACECu) goto SB_L_08A7ACEC;
TIER2_SB_RETURN();
SB_L_08A7ACEC:
{ const bool branch_taken = ctx.gpr[2] != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7AD00;
}
goto SB_L_08A7ACF4;
}
SB_L_08A7ACF4:
tier2_gpr_4 = (tier2_gpr_16 | 0u);
tier2_gpr_31 = (0x08A7AD00u);
tier2_gpr_5 = (0u | 0u);
goto SB_L_08A7A664;
SB_L_08A7AD00:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(10072)));
ctx.gpr[20] = (ctx.gpr[20] + static_cast<std::uint32_t>(1));
tier2_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[20]) < static_cast<std::int32_t>(tier2_gpr_4) ? 1u : 0u);
{ const bool branch_taken = tier2_gpr_4 != 0u;
ctx.gpr[22] = (ctx.gpr[22] + static_cast<std::uint32_t>(4));
if (branch_taken) {
goto SB_L_08A7AAB0;
}
goto SB_L_08A7AD14;
}
SB_L_08A7AD14:
tier2_gpr_31 = (0x08A7AD1Cu);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0080_entry, 80u, 142u, 0x08945050u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7AD1Cu) goto SB_L_08A7AD1C;
TIER2_SB_RETURN();
SB_L_08A7AD1C:
tier2_gpr_31 = (0x08A7AD24u);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0126_entry, 126u, 361u, 0x089FD7E4u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7AD24u) goto SB_L_08A7AD24;
TIER2_SB_RETURN();
SB_L_08A7AD24:
tier2_mem.aot_store32(ctx.gpr[28] + static_cast<std::uint32_t>(-17680), 0u);
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5856)));
if (tier2_gpr_4 != 0u) {
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5856)));
goto SB_L_08A7AD40;
}
goto SB_L_08A7AD34;
SB_L_08A7AD34:
tier2_gpr_31 = (0x08A7AD3Cu);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 399u, 0x08B65A54u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7AD3Cu) goto SB_L_08A7AD3C;
TIER2_SB_RETURN();
SB_L_08A7AD3C:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5856)));
goto SB_L_08A7AD40;
SB_L_08A7AD40:
tier2_gpr_31 = (0x08A7AD48u);
tier2_gpr_16 = (2236u << 16u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0000_entry, 0u, 199u, 0x08805630u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7AD48u) goto SB_L_08A7AD48;
TIER2_SB_RETURN();
SB_L_08A7AD48:
tier2_gpr_4 = (0u | 11u);
tier2_gpr_31 = (0x08A7AD54u);
tier2_gpr_5 = (0u | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0023_entry, 23u, 203u, 0x08861668u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7AD54u) goto SB_L_08A7AD54;
TIER2_SB_RETURN();
SB_L_08A7AD54:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(29552)));
tier2_gpr_5 = (5888u << 16u);
tier2_mem.aot_store32(tier2_gpr_4 + static_cast<std::uint32_t>(0), tier2_gpr_5);
tier2_gpr_4 = (0u | 0u);
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(29552)));
tier2_mem.aot_store8(ctx.gpr[28] + static_cast<std::uint32_t>(-24632), static_cast<std::uint8_t>(tier2_gpr_4));
tier2_gpr_4 = (tier2_gpr_5 + static_cast<std::uint32_t>(4));
tier2_mem.aot_store32(tier2_gpr_16 + static_cast<std::uint32_t>(29552), tier2_gpr_4);
{ std::uint32_t tier2_words[10]{};
if (tier2_mem.aot_try_load32_block(tier2_gpr_29 + static_cast<std::uint32_t>(40), tier2_words)) {
tier2_gpr_16 = tier2_words[0];
ctx.gpr[17] = tier2_words[1];
ctx.gpr[18] = tier2_words[2];
ctx.gpr[19] = tier2_words[3];
ctx.gpr[20] = tier2_words[4];
ctx.gpr[21] = tier2_words[5];
ctx.gpr[22] = tier2_words[6];
ctx.gpr[23] = tier2_words[7];
ctx.gpr[30] = tier2_words[8];
tier2_gpr_31 = tier2_words[9];
} else {
tier2_gpr_16 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(40)));
ctx.gpr[17] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(44)));
ctx.gpr[18] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(48)));
ctx.gpr[19] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(52)));
ctx.gpr[20] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(56)));
ctx.gpr[21] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(60)));
ctx.gpr[22] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(64)));
ctx.gpr[23] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(68)));
ctx.gpr[30] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(72)));
tier2_gpr_31 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(76)));
} }
jump_target = tier2_gpr_31;
tier2_gpr_29 = (tier2_gpr_29 + static_cast<std::uint32_t>(80));
local_pc = jump_target;
goto TIER2_LOCAL_DISPATCH_U0157;
SB_L_08A7AF74:
tier2_gpr_29 = (tier2_gpr_29 + static_cast<std::uint32_t>(-16));
tier2_gpr_6 = (2236u << 16u);
ctx.gpr[7] = (tier2_mem.aot_load32(tier2_gpr_6 + static_cast<std::uint32_t>(29552)));
ctx.gpr[8] = (51456u << 16u);
ctx.gpr[8] = (ctx.gpr[8] + static_cast<std::uint32_t>(256));
tier2_mem.aot_store32(ctx.gpr[7] + static_cast<std::uint32_t>(0), ctx.gpr[8]);
ctx.gpr[7] = (tier2_mem.aot_load32(tier2_gpr_6 + static_cast<std::uint32_t>(29552)));
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(0), tier2_gpr_16);
tier2_gpr_16 = (tier2_gpr_5 & 255u);
tier2_gpr_5 = (ctx.gpr[7] + static_cast<std::uint32_t>(4));
tier2_mem.aot_store32(tier2_gpr_6 + static_cast<std::uint32_t>(29552), tier2_gpr_5);
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(72)));
tier2_gpr_5 = (32u << 16u);
tier2_gpr_4 = (tier2_gpr_4 & tier2_gpr_5);
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(4), tier2_gpr_31);
{ const bool branch_taken = tier2_gpr_4 != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7AFD0;
}
goto SB_L_08A7AFB8;
}
SB_L_08A7AFB8:
tier2_gpr_31 = (0x08A7AFC0u);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0200_entry, 200u, 432u, 0x08B26030u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7AFC0u) goto SB_L_08A7AFC0;
TIER2_SB_RETURN();
SB_L_08A7AFC0:
{ const bool branch_taken = tier2_gpr_16 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7AFD0;
}
goto SB_L_08A7AFC8;
}
SB_L_08A7AFC8:
tier2_gpr_31 = (0x08A7AFD0u);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0044_entry, 44u, 663u, 0x088B7A4Cu>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7AFD0u) goto SB_L_08A7AFD0;
TIER2_SB_RETURN();
SB_L_08A7AFD0:
tier2_mem.aot_store8(ctx.gpr[28] + static_cast<std::uint32_t>(-17675), static_cast<std::uint8_t>(0u));
tier2_gpr_16 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(0)));
tier2_gpr_31 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(4)));
jump_target = tier2_gpr_31;
tier2_gpr_29 = (tier2_gpr_29 + static_cast<std::uint32_t>(16));
local_pc = jump_target;
goto TIER2_LOCAL_DISPATCH_U0157;
SB_L_08A7B5A0:
jump_target = tier2_gpr_31;
ctx.gpr[2] = (0u | 0u);
local_pc = jump_target;
goto TIER2_LOCAL_DISPATCH_U0157;
SB_L_08A7B5A8:
jump_target = tier2_gpr_31;
// nop
local_pc = jump_target;
goto TIER2_LOCAL_DISPATCH_U0157;
SB_L_08A7B5B0:
tier2_gpr_29 = (tier2_gpr_29 + static_cast<std::uint32_t>(-32));
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(16), tier2_gpr_16);
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(20), tier2_gpr_31);
tier2_gpr_31 = (0x08A7B5C4u);
tier2_gpr_16 = (tier2_gpr_4 | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0044_entry, 44u, 666u, 0x088B7AE4u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7B5C4u) goto SB_L_08A7B5C4;
TIER2_SB_RETURN();
SB_L_08A7B5C4:
tier2_gpr_31 = (0x08A7B5CCu);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0044_entry, 44u, 670u, 0x088B7B84u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7B5CCu) goto SB_L_08A7B5CC;
TIER2_SB_RETURN();
SB_L_08A7B5CC:
tier2_mem.aot_store8(ctx.gpr[28] + static_cast<std::uint32_t>(-17675), static_cast<std::uint8_t>(0u));
tier2_gpr_4 = (2236u << 16u);
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(29552)));
tier2_gpr_6 = (51457u << 16u);
tier2_gpr_6 = (tier2_gpr_6 + static_cast<std::uint32_t>(256));
tier2_mem.aot_store32(tier2_gpr_5 + static_cast<std::uint32_t>(0), tier2_gpr_6);
tier2_gpr_5 = tier2_mem.aot_advance32(tier2_gpr_4 + static_cast<std::uint32_t>(29552));
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
tier2_gpr_6 = (32u << 16u);
tier2_gpr_4 = (tier2_gpr_4 & tier2_gpr_6);
{ const bool branch_taken = tier2_gpr_4 == 0u;
tier2_gpr_4 = (15820u << 16u);
if (branch_taken) {
goto SB_L_08A7B61C;
}
goto SB_L_08A7B604;
}
SB_L_08A7B604:
tier2_gpr_4 = (tier2_gpr_4 | 52429u);
tier2_gpr_31 = (0x08A7B610u);
ctx.fpr[12] = std::bit_cast<float>(tier2_gpr_4);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0044_entry, 44u, 644u, 0x088B76E8u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7B610u) goto SB_L_08A7B610;
TIER2_SB_RETURN();
SB_L_08A7B610:
tier2_gpr_4 = (0u | 1u);
{ const bool branch_taken = 0u == 0u;
tier2_mem.aot_store8(ctx.gpr[28] + static_cast<std::uint32_t>(-17675), static_cast<std::uint8_t>(tier2_gpr_4));
if (branch_taken) {
goto SB_L_08A7B65C;
}
goto SB_L_08A7B61C;
}
SB_L_08A7B61C:
tier2_gpr_4 = (tier2_gpr_16 + static_cast<std::uint32_t>(48));
{ const std::uint32_t vfpu_address = tier2_gpr_4 + static_cast<std::uint32_t>(0);
std::uint32_t tier2_vfpu_words[4]{}; tier2_mem.aot_load32_block(vfpu_address, tier2_vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(tier2_vfpu_words[0]),
std::bit_cast<float>(tier2_vfpu_words[1]),
std::bit_cast<float>(tier2_vfpu_words[2]),
std::bit_cast<float>(tier2_vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = tier2_gpr_29 + static_cast<std::uint32_t>(0);
const std::uint32_t tier2_vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
tier2_mem.aot_store32_block(vfpu_address, tier2_vfpu_words); }
tier2_gpr_31 = (0x08A7B630u);
tier2_gpr_4 = (tier2_gpr_29 | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0200_entry, 200u, 414u, 0x08B25E10u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7B630u) goto SB_L_08A7B630;
TIER2_SB_RETURN();
SB_L_08A7B630:
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
tier2_gpr_4 = (16256u << 16u);
ctx.fpr[13] = std::bit_cast<float>(tier2_gpr_4);
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[13])) && ctx.fpr[12] == ctx.fpr[13])) ? 0x00800000u : 0u);
// nop
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
// nop
if (branch_taken) {
goto SB_L_08A7B65C;
}
goto SB_L_08A7B64C;
}
SB_L_08A7B64C:
tier2_gpr_31 = (0x08A7B654u);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0044_entry, 44u, 661u, 0x088B78CCu>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7B654u) goto SB_L_08A7B654;
TIER2_SB_RETURN();
SB_L_08A7B654:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 1u);
if (branch_taken) {
goto SB_L_08A7B660;
}
goto SB_L_08A7B65C;
}
SB_L_08A7B65C:
ctx.gpr[2] = (0u | 0u);
goto SB_L_08A7B660;
SB_L_08A7B660:
tier2_gpr_16 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(16)));
tier2_gpr_31 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(20)));
jump_target = tier2_gpr_31;
tier2_gpr_29 = (tier2_gpr_29 + static_cast<std::uint32_t>(32));
local_pc = jump_target;
goto TIER2_LOCAL_DISPATCH_U0157;
SB_L_08A7B910:
tier2_gpr_29 = (tier2_gpr_29 + static_cast<std::uint32_t>(-16));
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(0), tier2_gpr_31);
tier2_gpr_31 = (0x08A7B920u);
tier2_gpr_5 = (tier2_gpr_5 & 255u);
goto SB_L_08A7AF74;
SB_L_08A7CEC8:
tier2_gpr_29 = (tier2_gpr_29 + static_cast<std::uint32_t>(-144));
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(120), tier2_gpr_16);
tier2_gpr_16 = (tier2_gpr_4 | 0u);
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_16 + static_cast<std::uint32_t>(86))))));
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7656)));
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(116), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
tier2_gpr_5 = (static_cast<std::int32_t>(tier2_gpr_4) < static_cast<std::int32_t>(tier2_gpr_5) ? 1u : 0u);
{ const std::uint32_t tier2_words[4]{ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], tier2_gpr_31};
tier2_mem.aot_store32_block(tier2_gpr_29 + static_cast<std::uint32_t>(124), tier2_words); }
{ const bool branch_taken = tier2_gpr_5 == 0u;
ctx.gpr[17] = (0u | 0u);
if (branch_taken) {
goto SB_L_08A7CF0C;
}
goto SB_L_08A7CEFC;
}
SB_L_08A7CEFC:
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
tier2_gpr_4 = (tier2_gpr_4 << 2u);
tier2_gpr_4 = (tier2_gpr_5 + tier2_gpr_4);
ctx.gpr[17] = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(0)));
goto SB_L_08A7CF0C;
SB_L_08A7CF0C:
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_16 + static_cast<std::uint32_t>(86))))));
tier2_gpr_5 = (0u | 7466u);
{ const bool branch_taken = tier2_gpr_4 != tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7CF28;
}
goto SB_L_08A7CF1C;
}
SB_L_08A7CF1C:
tier2_gpr_4 = (17302u << 16u);
ctx.fpr[12] = std::bit_cast<float>(tier2_gpr_4);
tier2_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(44), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
goto SB_L_08A7CF28;
SB_L_08A7CF28:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
tier2_gpr_4 = (tier2_gpr_4 & 14u);
tier2_gpr_4 = (tier2_gpr_4 ^ 10u);
tier2_gpr_4 = (tier2_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7CF64;
}
goto SB_L_08A7CF44;
}
SB_L_08A7CF44:
tier2_gpr_31 = (0x08A7CF4Cu);
tier2_gpr_4 = (tier2_gpr_16 | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0179_entry, 179u, 51u, 0x08AD0598u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7CF4Cu) goto SB_L_08A7CF4C;
TIER2_SB_RETURN();
SB_L_08A7CF4C:
{ const bool branch_taken = ctx.gpr[2] != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7CF5C;
}
goto SB_L_08A7CF54;
}
SB_L_08A7CF54:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 2u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7CF5C;
}
SB_L_08A7CF5C:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 1u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7CF64;
}
SB_L_08A7CF64:
tier2_gpr_4 = (tier2_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(16)));
tier2_gpr_5 = (0u | 1u);
{ const bool branch_taken = tier2_gpr_4 != tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D0A8;
}
goto SB_L_08A7CF74;
}
SB_L_08A7CF74:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
tier2_gpr_4 = (tier2_gpr_4 & 14u);
tier2_gpr_4 = (tier2_gpr_4 ^ 12u);
tier2_gpr_4 = (tier2_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
{ const bool branch_taken = tier2_gpr_4 != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7CFAC;
}
goto SB_L_08A7CF90;
}
SB_L_08A7CF90:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
tier2_gpr_4 = (tier2_gpr_4 & 14u);
tier2_gpr_4 = (tier2_gpr_4 ^ 8u);
tier2_gpr_4 = (tier2_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D0A8;
}
goto SB_L_08A7CFAC;
}
SB_L_08A7CFAC:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
tier2_gpr_4 = (tier2_gpr_4 & 14u);
tier2_gpr_4 = (tier2_gpr_4 ^ 8u);
tier2_gpr_4 = (tier2_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
ctx.gpr[18] = (0u | 0u);
if (branch_taken) {
goto SB_L_08A7D008;
}
goto SB_L_08A7CFC8;
}
SB_L_08A7CFC8:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
tier2_gpr_5 = (512u << 16u);
tier2_gpr_4 = (tier2_gpr_4 & tier2_gpr_5);
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D008;
}
goto SB_L_08A7CFDC;
}
SB_L_08A7CFDC:
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_16 + static_cast<std::uint32_t>(86))))));
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7656)));
tier2_gpr_5 = (static_cast<std::int32_t>(tier2_gpr_4) < static_cast<std::int32_t>(tier2_gpr_5) ? 1u : 0u);
{ const bool branch_taken = tier2_gpr_5 == 0u;
ctx.gpr[18] = (0u | 0u);
if (branch_taken) {
goto SB_L_08A7D000;
}
goto SB_L_08A7CFF0;
}
SB_L_08A7CFF0:
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
tier2_gpr_4 = (tier2_gpr_4 << 2u);
tier2_gpr_4 = (tier2_gpr_5 + tier2_gpr_4);
ctx.gpr[18] = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(0)));
goto SB_L_08A7D000;
SB_L_08A7D000:
ctx.gpr[18] = (tier2_mem.aot_load16(ctx.gpr[18] + static_cast<std::uint32_t>(58)));
ctx.gpr[18] = (ctx.gpr[18] & 3u);
goto SB_L_08A7D008;
SB_L_08A7D008:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5864)));
if (tier2_gpr_4 != 0u) {
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5864)));
goto SB_L_08A7D020;
}
goto SB_L_08A7D014;
SB_L_08A7D014:
tier2_gpr_31 = (0x08A7D01Cu);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 413u, 0x08B65B0Cu>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D01Cu) goto SB_L_08A7D01C;
TIER2_SB_RETURN();
SB_L_08A7D01C:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5864)));
goto SB_L_08A7D020;
SB_L_08A7D020:
tier2_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_16 + static_cast<std::uint32_t>(86))))));
tier2_gpr_31 = (0x08A7D02Cu);
tier2_gpr_6 = (ctx.gpr[18] | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0084_entry, 84u, 174u, 0x08954B84u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D02Cu) goto SB_L_08A7D02C;
TIER2_SB_RETURN();
SB_L_08A7D02C:
ctx.gpr[18] = (ctx.gpr[2] | 0u);
{ const bool branch_taken = ctx.gpr[18] == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D0A8;
}
goto SB_L_08A7D038;
}
SB_L_08A7D038:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
tier2_gpr_5 = (8u << 16u);
tier2_gpr_4 = (tier2_gpr_4 & tier2_gpr_5);
tier2_gpr_4 = (0u < tier2_gpr_4 ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D080;
}
goto SB_L_08A7D054;
}
SB_L_08A7D054:
tier2_gpr_31 = (0x08A7D05Cu);
tier2_gpr_4 = (tier2_gpr_16 | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D05Cu) goto SB_L_08A7D05C;
TIER2_SB_RETURN();
SB_L_08A7D05C:
{ const bool branch_taken = ctx.gpr[2] == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D078;
}
goto SB_L_08A7D064;
}
SB_L_08A7D064:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5864)));
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D088;
}
goto SB_L_08A7D070;
}
SB_L_08A7D070:
{ const bool branch_taken = 0u == 0u;
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5864)));
if (branch_taken) {
goto SB_L_08A7D094;
}
goto SB_L_08A7D078;
}
SB_L_08A7D078:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 2u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7D080;
}
SB_L_08A7D080:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 0u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7D088;
}
SB_L_08A7D088:
tier2_gpr_31 = (0x08A7D090u);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 413u, 0x08B65B0Cu>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D090u) goto SB_L_08A7D090;
TIER2_SB_RETURN();
SB_L_08A7D090:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5864)));
goto SB_L_08A7D094;
SB_L_08A7D094:
tier2_gpr_5 = (ctx.gpr[18] | 0u);
tier2_gpr_31 = (0x08A7D0A0u);
tier2_gpr_6 = (tier2_gpr_16 | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0084_entry, 84u, 191u, 0x08954C44u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D0A0u) goto SB_L_08A7D0A0;
TIER2_SB_RETURN();
SB_L_08A7D0A0:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 1u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7D0A8;
}
SB_L_08A7D0A8:
tier2_gpr_4 = (tier2_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(16)));
tier2_gpr_5 = (0u | 3u);
{ const bool branch_taken = tier2_gpr_4 != tier2_gpr_5;
ctx.gpr[18] = (0u | 1u);
if (branch_taken) {
goto SB_L_08A7D1A4;
}
goto SB_L_08A7D0B8;
}
SB_L_08A7D0B8:
ctx.gpr[19] = (tier2_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(64)));
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(68)));
tier2_gpr_4 = (tier2_gpr_4 & 255u);
tier2_gpr_31 = (0x08A7D0D0u);
tier2_gpr_5 = (tier2_gpr_5 & 255u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0079_entry, 79u, 248u, 0x08941B38u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D0D0u) goto SB_L_08A7D0D0;
TIER2_SB_RETURN();
SB_L_08A7D0D0:
{ const bool branch_taken = ctx.gpr[2] != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D14C;
}
goto SB_L_08A7D0D8;
}
SB_L_08A7D0D8:
tier2_gpr_4 = (0u + static_cast<std::uint32_t>(-1));
{ const bool branch_taken = ctx.gpr[19] == tier2_gpr_4;
// nop
if (branch_taken) {
goto SB_L_08A7D12C;
}
goto SB_L_08A7D0E4;
}
SB_L_08A7D0E4:
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7656)));
tier2_gpr_5 = (static_cast<std::int32_t>(ctx.gpr[19]) < static_cast<std::int32_t>(tier2_gpr_5) ? 1u : 0u);
{ const bool branch_taken = tier2_gpr_5 == 0u;
tier2_gpr_4 = (0u | 0u);
if (branch_taken) {
goto SB_L_08A7D104;
}
goto SB_L_08A7D0F4;
}
SB_L_08A7D0F4:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
tier2_gpr_5 = (ctx.gpr[19] << 2u);
tier2_gpr_4 = (tier2_gpr_4 + tier2_gpr_5);
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(0)));
goto SB_L_08A7D104;
SB_L_08A7D104:
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(36)));
tier2_gpr_5 = (tier2_gpr_5 + static_cast<std::uint32_t>(48));
tier2_gpr_6 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_5 + static_cast<std::uint32_t>(0))))));
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_5 + static_cast<std::uint32_t>(4)));
jump_target = tier2_gpr_5;
tier2_gpr_31 = (0x08A7D11Cu);
tier2_gpr_4 = (tier2_gpr_4 + tier2_gpr_6);
ctx.pc = jump_target;
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D11Cu) goto SB_L_08A7D11C;
TIER2_SB_RETURN();
SB_L_08A7D11C:
{ const bool branch_taken = ctx.gpr[2] != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D12C;
}
goto SB_L_08A7D124;
}
SB_L_08A7D124:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[18] = (0u | 0u);
if (branch_taken) {
goto SB_L_08A7D78C;
}
goto SB_L_08A7D12C;
}
SB_L_08A7D12C:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(92)));
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(72));
tier2_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_4 + static_cast<std::uint32_t>(0))))));
tier2_gpr_6 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(4)));
jump_target = tier2_gpr_6;
tier2_gpr_31 = (0x08A7D144u);
tier2_gpr_4 = (tier2_gpr_16 + tier2_gpr_5);
ctx.pc = jump_target;
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D144u) goto SB_L_08A7D144;
TIER2_SB_RETURN();
SB_L_08A7D144:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 0u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7D14C;
}
SB_L_08A7D14C:
tier2_gpr_4 = (0u + static_cast<std::uint32_t>(-1));
{ const bool branch_taken = ctx.gpr[19] == tier2_gpr_4;
// nop
if (branch_taken) {
goto SB_L_08A7D78C;
}
goto SB_L_08A7D158;
}
SB_L_08A7D158:
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7656)));
tier2_gpr_5 = (static_cast<std::int32_t>(ctx.gpr[19]) < static_cast<std::int32_t>(tier2_gpr_5) ? 1u : 0u);
{ const bool branch_taken = tier2_gpr_5 == 0u;
tier2_gpr_4 = (0u | 0u);
if (branch_taken) {
goto SB_L_08A7D178;
}
goto SB_L_08A7D168;
}
SB_L_08A7D168:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
tier2_gpr_5 = (ctx.gpr[19] << 2u);
tier2_gpr_4 = (tier2_gpr_4 + tier2_gpr_5);
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(0)));
goto SB_L_08A7D178;
SB_L_08A7D178:
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(36)));
tier2_gpr_5 = (tier2_gpr_5 + static_cast<std::uint32_t>(48));
tier2_gpr_6 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_5 + static_cast<std::uint32_t>(0))))));
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_5 + static_cast<std::uint32_t>(4)));
jump_target = tier2_gpr_5;
tier2_gpr_31 = (0x08A7D190u);
tier2_gpr_4 = (tier2_gpr_4 + tier2_gpr_6);
ctx.pc = jump_target;
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D190u) goto SB_L_08A7D190;
TIER2_SB_RETURN();
SB_L_08A7D190:
{ const bool branch_taken = ctx.gpr[2] == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D78C;
}
goto SB_L_08A7D198;
}
SB_L_08A7D198:
tier2_gpr_4 = (0u | 255u);
{ const bool branch_taken = 0u == 0u;
tier2_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(57), static_cast<std::uint8_t>(tier2_gpr_4));
if (branch_taken) {
goto SB_L_08A7D78C;
}
goto SB_L_08A7D1A4;
}
SB_L_08A7D1A4:
tier2_gpr_4 = (tier2_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(16)));
tier2_gpr_5 = (0u | 1u);
{ const bool branch_taken = tier2_gpr_4 == tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D6C4;
}
goto SB_L_08A7D1B4;
}
SB_L_08A7D1B4:
tier2_gpr_4 = (tier2_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(16)));
tier2_gpr_5 = (0u | 4u);
{ const bool branch_taken = tier2_gpr_4 == tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D6C4;
}
goto SB_L_08A7D1C4;
}
SB_L_08A7D1C4:
tier2_gpr_4 = (tier2_mem.aot_load8(ctx.gpr[28] + static_cast<std::uint32_t>(-7080)));
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D464;
}
goto SB_L_08A7D1D0;
}
SB_L_08A7D1D0:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
tier2_gpr_4 = (tier2_gpr_4 & 14u);
tier2_gpr_4 = (tier2_gpr_4 ^ 14u);
tier2_gpr_4 = (tier2_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D464;
}
goto SB_L_08A7D1EC;
}
SB_L_08A7D1EC:
tier2_gpr_31 = (0x08A7D1F4u);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D1F4u) goto SB_L_08A7D1F4;
TIER2_SB_RETURN();
SB_L_08A7D1F4:
tier2_gpr_4 = (2237u << 16u);
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(-28736));
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(104)));
tier2_gpr_6 = (tier2_gpr_5 + static_cast<std::uint32_t>(4));
tier2_gpr_6 = (tier2_mem.aot_load32(tier2_gpr_6 + static_cast<std::uint32_t>(0)));
{ const bool branch_taken = tier2_gpr_6 == 0u;
tier2_gpr_4 = (ctx.gpr[2] | 0u);
if (branch_taken) {
goto SB_L_08A7D244;
}
goto SB_L_08A7D210;
}
SB_L_08A7D210:
tier2_mem.aot_store8(tier2_gpr_29 + static_cast<std::uint32_t>(92), static_cast<std::uint8_t>(0u));
goto SB_L_08A7D214;
SB_L_08A7D214:
ctx.gpr[7] = (tier2_mem.aot_load32(tier2_gpr_6 + static_cast<std::uint32_t>(16)));
ctx.gpr[7] = (ctx.gpr[7] < tier2_gpr_4 ? 1u : 0u);
ctx.gpr[7] = (ctx.gpr[7] & 255u);
if (ctx.gpr[7] != 0u) {
tier2_gpr_6 = (tier2_gpr_6 + static_cast<std::uint32_t>(12));
goto SB_L_08A7D238;
}
goto SB_L_08A7D228;
SB_L_08A7D228:
tier2_gpr_5 = (tier2_gpr_6 | 0u);
tier2_gpr_6 = (tier2_gpr_5 + static_cast<std::uint32_t>(8));
{ const bool branch_taken = 0u == 0u;
tier2_gpr_6 = (tier2_mem.aot_load32(tier2_gpr_6 + static_cast<std::uint32_t>(0)));
if (branch_taken) {
goto SB_L_08A7D23C;
}
goto SB_L_08A7D238;
}
SB_L_08A7D238:
tier2_gpr_6 = (tier2_mem.aot_load32(tier2_gpr_6 + static_cast<std::uint32_t>(0)));
goto SB_L_08A7D23C;
SB_L_08A7D23C:
if (tier2_gpr_6 != 0u) {
tier2_mem.aot_store8(tier2_gpr_29 + static_cast<std::uint32_t>(92), static_cast<std::uint8_t>(0u));
goto SB_L_08A7D214;
}
goto SB_L_08A7D244;
SB_L_08A7D244:
tier2_gpr_6 = (2237u << 16u);
tier2_gpr_6 = (tier2_gpr_6 + static_cast<std::uint32_t>(-28736));
tier2_gpr_6 = (tier2_mem.aot_load32(tier2_gpr_6 + static_cast<std::uint32_t>(104)));
if (tier2_gpr_5 == tier2_gpr_6) {
tier2_gpr_4 = (2237u << 16u);
goto SB_L_08A7D274;
}
goto SB_L_08A7D258;
SB_L_08A7D258:
tier2_mem.aot_store8(tier2_gpr_29 + static_cast<std::uint32_t>(93), static_cast<std::uint8_t>(0u));
tier2_gpr_6 = (tier2_mem.aot_load32(tier2_gpr_5 + static_cast<std::uint32_t>(16)));
tier2_gpr_4 = (tier2_gpr_4 < tier2_gpr_6 ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
tier2_gpr_4 = (2237u << 16u);
if (branch_taken) {
goto SB_L_08A7D280;
}
goto SB_L_08A7D270;
}
SB_L_08A7D270:
tier2_gpr_4 = (2237u << 16u);
goto SB_L_08A7D274;
SB_L_08A7D274:
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(-28736));
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(104)));
tier2_gpr_4 = (2237u << 16u);
goto SB_L_08A7D280;
SB_L_08A7D280:
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(88), tier2_gpr_5);
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(-28736));
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(104)));
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(88)));
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(104), tier2_gpr_4);
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(84), tier2_gpr_5);
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(104)));
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(84)));
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(80), tier2_gpr_4);
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(80)));
tier2_gpr_4 = (tier2_gpr_5 ^ tier2_gpr_4);
tier2_gpr_4 = (tier2_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
if (tier2_gpr_4 == 0u) {
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(84)));
goto SB_L_08A7D2C4;
}
goto SB_L_08A7D2BC;
SB_L_08A7D2BC:
{ const bool branch_taken = 0u == 0u;
tier2_gpr_4 = (0u | 0u);
if (branch_taken) {
goto SB_L_08A7D2C8;
}
goto SB_L_08A7D2C4;
}
SB_L_08A7D2C4:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(20)));
goto SB_L_08A7D2C8;
SB_L_08A7D2C8:
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D45C;
}
goto SB_L_08A7D2D0;
}
SB_L_08A7D2D0:
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(352)));
{ const bool branch_taken = tier2_gpr_4 != tier2_gpr_5;
tier2_gpr_4 = (2236u << 16u);
if (branch_taken) {
goto SB_L_08A7D45C;
}
goto SB_L_08A7D2DC;
}
SB_L_08A7D2DC:
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(32304));
tier2_gpr_5 = (tier2_mem.aot_load8(tier2_gpr_4 + static_cast<std::uint32_t>(80)));
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(112));
tier2_gpr_5 = (tier2_gpr_5 << 5u);
tier2_gpr_6 = (0u - tier2_gpr_5);
tier2_gpr_5 = (tier2_gpr_5 << 2u);
tier2_gpr_6 = (tier2_gpr_6 + tier2_gpr_5);
tier2_gpr_5 = (tier2_gpr_5 << 2u);
ctx.gpr[17] = (tier2_gpr_6 + tier2_gpr_5);
ctx.gpr[17] = (ctx.gpr[17] + tier2_gpr_4);
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(0))))));
tier2_gpr_5 = (0u | 16u);
{ const bool branch_taken = tier2_gpr_4 != tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D45C;
}
goto SB_L_08A7D314;
}
SB_L_08A7D314:
tier2_gpr_31 = (0x08A7D31Cu);
ctx.gpr[17] = (tier2_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(116)));
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D31Cu) goto SB_L_08A7D31C;
TIER2_SB_RETURN();
SB_L_08A7D31C:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[2] + static_cast<std::uint32_t>(852)));
tier2_gpr_5 = (0u | 6u);
{ const bool branch_taken = tier2_gpr_4 != tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D344;
}
goto SB_L_08A7D32C;
}
SB_L_08A7D32C:
tier2_gpr_31 = (0x08A7D334u);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D334u) goto SB_L_08A7D334;
TIER2_SB_RETURN();
SB_L_08A7D334:
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(tier2_mem.aot_load8(ctx.gpr[2] + static_cast<std::uint32_t>(1280))))));
tier2_gpr_4 = (tier2_gpr_4 & 16u);
{ const bool branch_taken = tier2_gpr_4 != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D45C;
}
goto SB_L_08A7D344;
}
SB_L_08A7D344:
tier2_gpr_4 = (0u | 3u);
{ const bool branch_taken = ctx.gpr[17] == tier2_gpr_4;
// nop
if (branch_taken) {
goto SB_L_08A7D3D4;
}
goto SB_L_08A7D350;
}
SB_L_08A7D350:
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_16 + static_cast<std::uint32_t>(86))))));
tier2_gpr_5 = (0u | 246u);
{ const bool branch_taken = tier2_gpr_4 == tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D3D4;
}
goto SB_L_08A7D360;
}
SB_L_08A7D360:
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_16 + static_cast<std::uint32_t>(86))))));
tier2_gpr_5 = (0u | 237u);
{ const bool branch_taken = tier2_gpr_4 == tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D3D4;
}
goto SB_L_08A7D370;
}
SB_L_08A7D370:
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_16 + static_cast<std::uint32_t>(86))))));
tier2_gpr_5 = (0u + static_cast<std::uint32_t>(-966));
{ const bool branch_taken = tier2_gpr_4 == tier2_gpr_5;
tier2_gpr_4 = (2236u << 16u);
if (branch_taken) {
goto SB_L_08A7D3D4;
}
goto SB_L_08A7D380;
}
SB_L_08A7D380:
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(32304));
tier2_gpr_4 = (tier2_mem.aot_load8(tier2_gpr_4 + static_cast<std::uint32_t>(1956)));
{ const bool branch_taken = tier2_gpr_4 != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D3D4;
}
goto SB_L_08A7D390;
}
SB_L_08A7D390:
{ const bool branch_taken = ctx.gpr[17] != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D3C4;
}
goto SB_L_08A7D398;
}
SB_L_08A7D398:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(76)));
tier2_gpr_5 = (1u << 16u);
tier2_gpr_4 = (tier2_gpr_4 & tier2_gpr_5);
tier2_gpr_4 = (0u < tier2_gpr_4 ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D3C4;
}
goto SB_L_08A7D3B4;
}
SB_L_08A7D3B4:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(380)));
tier2_gpr_5 = (0u | 4u);
{ const bool branch_taken = tier2_gpr_4 == tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D3D4;
}
goto SB_L_08A7D3C4;
}
SB_L_08A7D3C4:
{ const bool branch_taken = ctx.gpr[17] != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D440;
}
goto SB_L_08A7D3CC;
}
SB_L_08A7D3CC:
{ const bool branch_taken = 0u == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D3E8;
}
goto SB_L_08A7D3D4;
}
SB_L_08A7D3D4:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(76)));
ctx.gpr[2] = (0u | 2u);
tier2_gpr_4 = (tier2_gpr_4 | 32u);
{ const bool branch_taken = 0u == 0u;
tier2_mem.aot_store32(tier2_gpr_16 + static_cast<std::uint32_t>(76), tier2_gpr_4);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7D3E8;
}
SB_L_08A7D3E8:
tier2_gpr_31 = (0x08A7D3F0u);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D3F0u) goto SB_L_08A7D3F0;
TIER2_SB_RETURN();
SB_L_08A7D3F0:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[2] + static_cast<std::uint32_t>(852)));
tier2_gpr_5 = (0u | 1u);
{ const bool branch_taken = tier2_gpr_4 != tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D440;
}
goto SB_L_08A7D400;
}
SB_L_08A7D400:
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_16 + static_cast<std::uint32_t>(86))))));
tier2_gpr_5 = (0u | 214u);
{ const bool branch_taken = tier2_gpr_4 == tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D440;
}
goto SB_L_08A7D410;
}
SB_L_08A7D410:
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_16 + static_cast<std::uint32_t>(86))))));
tier2_gpr_5 = (0u | 250u);
{ const bool branch_taken = tier2_gpr_4 == tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D440;
}
goto SB_L_08A7D420;
}
SB_L_08A7D420:
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_16 + static_cast<std::uint32_t>(86))))));
tier2_gpr_5 = (0u | 219u);
{ const bool branch_taken = tier2_gpr_4 == tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D440;
}
goto SB_L_08A7D430;
}
SB_L_08A7D430:
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_16 + static_cast<std::uint32_t>(86))))));
tier2_gpr_5 = (0u | 278u);
{ const bool branch_taken = tier2_gpr_4 != tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D45C;
}
goto SB_L_08A7D440;
}
SB_L_08A7D440:
tier2_mem.aot_store32(ctx.gpr[28] + static_cast<std::uint32_t>(10080), tier2_gpr_16);
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(76)));
tier2_gpr_5 = (0u + static_cast<std::uint32_t>(-33));
tier2_gpr_4 = (tier2_gpr_4 & tier2_gpr_5);
tier2_mem.aot_store32(tier2_gpr_16 + static_cast<std::uint32_t>(76), tier2_gpr_4);
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 2u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7D45C;
}
SB_L_08A7D45C:
{ const bool branch_taken = 0u == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D60C;
}
goto SB_L_08A7D464;
}
SB_L_08A7D464:
tier2_gpr_31 = (0x08A7D46Cu);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D46Cu) goto SB_L_08A7D46C;
TIER2_SB_RETURN();
SB_L_08A7D46C:
{ const bool branch_taken = ctx.gpr[2] != tier2_gpr_16;
tier2_gpr_4 = (2236u << 16u);
if (branch_taken) {
goto SB_L_08A7D60C;
}
goto SB_L_08A7D474;
}
SB_L_08A7D474:
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(32304));
tier2_gpr_5 = (tier2_mem.aot_load8(tier2_gpr_4 + static_cast<std::uint32_t>(80)));
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(112));
tier2_gpr_5 = (tier2_gpr_5 << 5u);
tier2_gpr_6 = (0u - tier2_gpr_5);
tier2_gpr_5 = (tier2_gpr_5 << 2u);
tier2_gpr_6 = (tier2_gpr_6 + tier2_gpr_5);
tier2_gpr_5 = (tier2_gpr_5 << 2u);
ctx.gpr[17] = (tier2_gpr_6 + tier2_gpr_5);
ctx.gpr[17] = (ctx.gpr[17] + tier2_gpr_4);
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(0))))));
tier2_gpr_5 = (0u | 16u);
{ const bool branch_taken = tier2_gpr_4 != tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D60C;
}
goto SB_L_08A7D4AC;
}
SB_L_08A7D4AC:
tier2_gpr_4 = (tier2_mem.aot_load8(ctx.gpr[28] + static_cast<std::uint32_t>(7800)));
tier2_gpr_5 = (tier2_gpr_4 + tier2_gpr_4);
tier2_gpr_6 = (tier2_gpr_4 << 8u);
tier2_gpr_4 = (tier2_gpr_4 + tier2_gpr_5);
tier2_gpr_4 = (tier2_gpr_4 << 5u);
tier2_gpr_5 = (2238u << 16u);
tier2_gpr_4 = (tier2_gpr_6 + tier2_gpr_4);
tier2_gpr_5 = (tier2_gpr_5 + static_cast<std::uint32_t>(-6992));
tier2_gpr_4 = (tier2_gpr_4 + tier2_gpr_5);
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(4)));
{ const bool branch_taken = tier2_gpr_4 != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D60C;
}
goto SB_L_08A7D4DC;
}
SB_L_08A7D4DC:
tier2_gpr_31 = (0x08A7D4E4u);
ctx.gpr[17] = (tier2_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(116)));
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D4E4u) goto SB_L_08A7D4E4;
TIER2_SB_RETURN();
SB_L_08A7D4E4:
tier2_gpr_4 = (tier2_mem.aot_load32(ctx.gpr[2] + static_cast<std::uint32_t>(852)));
tier2_gpr_5 = (0u | 6u);
{ const bool branch_taken = tier2_gpr_4 != tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D50C;
}
goto SB_L_08A7D4F4;
}
SB_L_08A7D4F4:
tier2_gpr_31 = (0x08A7D4FCu);
// nop
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D4FCu) goto SB_L_08A7D4FC;
TIER2_SB_RETURN();
SB_L_08A7D4FC:
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(tier2_mem.aot_load8(ctx.gpr[2] + static_cast<std::uint32_t>(1280))))));
tier2_gpr_4 = (tier2_gpr_4 & 16u);
{ const bool branch_taken = tier2_gpr_4 != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D60C;
}
goto SB_L_08A7D50C;
}
SB_L_08A7D50C:
tier2_gpr_4 = (0u | 3u);
{ const bool branch_taken = ctx.gpr[17] == tier2_gpr_4;
// nop
if (branch_taken) {
goto SB_L_08A7D590;
}
goto SB_L_08A7D518;
}
SB_L_08A7D518:
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_16 + static_cast<std::uint32_t>(86))))));
tier2_gpr_5 = (0u | 246u);
{ const bool branch_taken = tier2_gpr_4 == tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D590;
}
goto SB_L_08A7D528;
}
SB_L_08A7D528:
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_16 + static_cast<std::uint32_t>(86))))));
tier2_gpr_5 = (0u | 237u);
{ const bool branch_taken = tier2_gpr_4 == tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D590;
}
goto SB_L_08A7D538;
}
SB_L_08A7D538:
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_16 + static_cast<std::uint32_t>(86))))));
tier2_gpr_5 = (0u + static_cast<std::uint32_t>(-966));
{ const bool branch_taken = tier2_gpr_4 == tier2_gpr_5;
tier2_gpr_4 = (2236u << 16u);
if (branch_taken) {
goto SB_L_08A7D590;
}
goto SB_L_08A7D548;
}
SB_L_08A7D548:
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(32304));
tier2_gpr_4 = (tier2_mem.aot_load8(tier2_gpr_4 + static_cast<std::uint32_t>(1956)));
{ const bool branch_taken = tier2_gpr_4 != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D590;
}
goto SB_L_08A7D558;
}
SB_L_08A7D558:
{ const bool branch_taken = ctx.gpr[17] != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D580;
}
goto SB_L_08A7D560;
}
SB_L_08A7D560:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(352)));
tier2_gpr_5 = (16384u << 16u);
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(208)));
tier2_gpr_4 = (tier2_gpr_4 & tier2_gpr_5);
tier2_gpr_4 = (0u < tier2_gpr_4 ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
{ const bool branch_taken = tier2_gpr_4 != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D590;
}
goto SB_L_08A7D580;
}
SB_L_08A7D580:
{ const bool branch_taken = ctx.gpr[17] != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D5F0;
}
goto SB_L_08A7D588;
}
SB_L_08A7D588:
{ const bool branch_taken = 0u == 0u;
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(852)));
if (branch_taken) {
goto SB_L_08A7D5A4;
}
goto SB_L_08A7D590;
}
SB_L_08A7D590:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(76)));
ctx.gpr[2] = (0u | 2u);
tier2_gpr_4 = (tier2_gpr_4 | 32u);
{ const bool branch_taken = 0u == 0u;
tier2_mem.aot_store32(tier2_gpr_16 + static_cast<std::uint32_t>(76), tier2_gpr_4);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7D5A4;
}
SB_L_08A7D5A4:
tier2_gpr_5 = (0u | 1u);
{ const bool branch_taken = tier2_gpr_4 != tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D5F0;
}
goto SB_L_08A7D5B0;
}
SB_L_08A7D5B0:
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_16 + static_cast<std::uint32_t>(86))))));
tier2_gpr_5 = (0u | 214u);
{ const bool branch_taken = tier2_gpr_4 == tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D5F0;
}
goto SB_L_08A7D5C0;
}
SB_L_08A7D5C0:
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_16 + static_cast<std::uint32_t>(86))))));
tier2_gpr_5 = (0u | 250u);
{ const bool branch_taken = tier2_gpr_4 == tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D5F0;
}
goto SB_L_08A7D5D0;
}
SB_L_08A7D5D0:
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_16 + static_cast<std::uint32_t>(86))))));
tier2_gpr_5 = (0u | 219u);
{ const bool branch_taken = tier2_gpr_4 == tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D5F0;
}
goto SB_L_08A7D5E0;
}
SB_L_08A7D5E0:
tier2_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_16 + static_cast<std::uint32_t>(86))))));
tier2_gpr_5 = (0u | 278u);
{ const bool branch_taken = tier2_gpr_4 != tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D60C;
}
goto SB_L_08A7D5F0;
}
SB_L_08A7D5F0:
tier2_mem.aot_store32(ctx.gpr[28] + static_cast<std::uint32_t>(10080), tier2_gpr_16);
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(76)));
tier2_gpr_5 = (0u + static_cast<std::uint32_t>(-33));
tier2_gpr_4 = (tier2_gpr_4 & tier2_gpr_5);
tier2_mem.aot_store32(tier2_gpr_16 + static_cast<std::uint32_t>(76), tier2_gpr_4);
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 2u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7D60C;
}
SB_L_08A7D60C:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(80)));
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D66C;
}
goto SB_L_08A7D618;
}
SB_L_08A7D618:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
tier2_gpr_5 = (8u << 16u);
tier2_gpr_4 = (tier2_gpr_4 & tier2_gpr_5);
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D66C;
}
goto SB_L_08A7D62C;
}
SB_L_08A7D62C:
tier2_gpr_31 = (0x08A7D634u);
tier2_gpr_4 = (tier2_gpr_16 | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D634u) goto SB_L_08A7D634;
TIER2_SB_RETURN();
SB_L_08A7D634:
{ const bool branch_taken = ctx.gpr[2] == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D664;
}
goto SB_L_08A7D63C;
}
SB_L_08A7D63C:
tier2_gpr_31 = (0x08A7D644u);
tier2_gpr_4 = (tier2_gpr_16 | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0195_entry, 195u, 375u, 0x08B11994u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D644u) goto SB_L_08A7D644;
TIER2_SB_RETURN();
SB_L_08A7D644:
{ const bool branch_taken = ctx.gpr[2] != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D664;
}
goto SB_L_08A7D64C;
}
SB_L_08A7D64C:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(76)));
tier2_gpr_4 = (tier2_gpr_4 & 16u);
{ const bool branch_taken = tier2_gpr_4 != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D674;
}
goto SB_L_08A7D65C;
}
SB_L_08A7D65C:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 1u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7D664;
}
SB_L_08A7D664:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 2u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7D66C;
}
SB_L_08A7D66C:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 0u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7D674;
}
SB_L_08A7D674:
tier2_gpr_4 = (tier2_gpr_16 + static_cast<std::uint32_t>(48));
{ const std::uint32_t vfpu_address = tier2_gpr_4 + static_cast<std::uint32_t>(0);
std::uint32_t tier2_vfpu_words[4]{}; tier2_mem.aot_load32_block(vfpu_address, tier2_vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(tier2_vfpu_words[0]),
std::bit_cast<float>(tier2_vfpu_words[1]),
std::bit_cast<float>(tier2_vfpu_words[2]),
std::bit_cast<float>(tier2_vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
tier2_gpr_4 = (ctx.gpr[28] + static_cast<std::uint32_t>(10048));
{ const std::uint32_t vfpu_address = tier2_gpr_4 + static_cast<std::uint32_t>(0);
std::uint32_t tier2_vfpu_words[4]{}; tier2_mem.aot_load32_block(vfpu_address, tier2_vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(tier2_vfpu_words[0]),
std::bit_cast<float>(tier2_vfpu_words[1]),
std::bit_cast<float>(tier2_vfpu_words[2]),
std::bit_cast<float>(tier2_vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t);
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i];
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
tier2_gpr_4 = (tier2_gpr_29 + static_cast<std::uint32_t>(16));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = tier2_gpr_4 + static_cast<std::uint32_t>(0);
const std::uint32_t tier2_vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
tier2_mem.aot_store32_block(vfpu_address, tier2_vfpu_words); }
{ const std::uint32_t vfpu_address = tier2_gpr_4 + static_cast<std::uint32_t>(0);
std::uint32_t tier2_vfpu_words[4]{}; tier2_mem.aot_load32_block(vfpu_address, tier2_vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(tier2_vfpu_words[0]),
std::bit_cast<float>(tier2_vfpu_words[1]),
std::bit_cast<float>(tier2_vfpu_words[2]),
std::bit_cast<float>(tier2_vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
{ float vfpu_s[4]{}, vfpu_d[4]{};
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i]));
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
tier2_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>());
ctx.fpr[12] = std::bit_cast<float>(tier2_gpr_4);
tier2_gpr_31 = (0x08A7D6ACu);
tier2_gpr_4 = (tier2_gpr_16 | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0080_entry, 80u, 165u, 0x089451D8u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D6ACu) goto SB_L_08A7D6AC;
TIER2_SB_RETURN();
SB_L_08A7D6AC:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(76)));
tier2_gpr_5 = (0u + static_cast<std::uint32_t>(-129));
tier2_gpr_4 = (tier2_gpr_4 & tier2_gpr_5);
tier2_mem.aot_store32(tier2_gpr_16 + static_cast<std::uint32_t>(76), tier2_gpr_4);
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 0u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7D6C4;
}
SB_L_08A7D6C4:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(76)));
tier2_gpr_4 = (tier2_gpr_4 & 4096u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D78C;
}
goto SB_L_08A7D6D4;
}
SB_L_08A7D6D4:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(80)));
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D734;
}
goto SB_L_08A7D6E0;
}
SB_L_08A7D6E0:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
tier2_gpr_5 = (8u << 16u);
tier2_gpr_4 = (tier2_gpr_4 & tier2_gpr_5);
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D734;
}
goto SB_L_08A7D6F4;
}
SB_L_08A7D6F4:
tier2_gpr_31 = (0x08A7D6FCu);
tier2_gpr_4 = (tier2_gpr_16 | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D6FCu) goto SB_L_08A7D6FC;
TIER2_SB_RETURN();
SB_L_08A7D6FC:
{ const bool branch_taken = ctx.gpr[2] == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D72C;
}
goto SB_L_08A7D704;
}
SB_L_08A7D704:
tier2_gpr_31 = (0x08A7D70Cu);
tier2_gpr_4 = (tier2_gpr_16 | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0195_entry, 195u, 375u, 0x08B11994u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D70Cu) goto SB_L_08A7D70C;
TIER2_SB_RETURN();
SB_L_08A7D70C:
{ const bool branch_taken = ctx.gpr[2] != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D72C;
}
goto SB_L_08A7D714;
}
SB_L_08A7D714:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(76)));
tier2_gpr_4 = (tier2_gpr_4 & 16u);
{ const bool branch_taken = tier2_gpr_4 != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D73C;
}
goto SB_L_08A7D724;
}
SB_L_08A7D724:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 1u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7D72C;
}
SB_L_08A7D72C:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 2u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7D734;
}
SB_L_08A7D734:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 0u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7D73C;
}
SB_L_08A7D73C:
tier2_gpr_4 = (tier2_gpr_16 + static_cast<std::uint32_t>(48));
{ const std::uint32_t vfpu_address = tier2_gpr_4 + static_cast<std::uint32_t>(0);
std::uint32_t tier2_vfpu_words[4]{}; tier2_mem.aot_load32_block(vfpu_address, tier2_vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(tier2_vfpu_words[0]),
std::bit_cast<float>(tier2_vfpu_words[1]),
std::bit_cast<float>(tier2_vfpu_words[2]),
std::bit_cast<float>(tier2_vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
tier2_gpr_4 = (ctx.gpr[28] + static_cast<std::uint32_t>(10048));
{ const std::uint32_t vfpu_address = tier2_gpr_4 + static_cast<std::uint32_t>(0);
std::uint32_t tier2_vfpu_words[4]{}; tier2_mem.aot_load32_block(vfpu_address, tier2_vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(tier2_vfpu_words[0]),
std::bit_cast<float>(tier2_vfpu_words[1]),
std::bit_cast<float>(tier2_vfpu_words[2]),
std::bit_cast<float>(tier2_vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t);
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i];
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
tier2_gpr_4 = (tier2_gpr_29 + static_cast<std::uint32_t>(32));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = tier2_gpr_4 + static_cast<std::uint32_t>(0);
const std::uint32_t tier2_vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
tier2_mem.aot_store32_block(vfpu_address, tier2_vfpu_words); }
{ const std::uint32_t vfpu_address = tier2_gpr_4 + static_cast<std::uint32_t>(0);
std::uint32_t tier2_vfpu_words[4]{}; tier2_mem.aot_load32_block(vfpu_address, tier2_vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(tier2_vfpu_words[0]),
std::bit_cast<float>(tier2_vfpu_words[1]),
std::bit_cast<float>(tier2_vfpu_words[2]),
std::bit_cast<float>(tier2_vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
{ float vfpu_s[4]{}, vfpu_d[4]{};
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i]));
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
tier2_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>());
ctx.fpr[12] = std::bit_cast<float>(tier2_gpr_4);
tier2_gpr_31 = (0x08A7D774u);
tier2_gpr_4 = (tier2_gpr_16 | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0080_entry, 80u, 165u, 0x089451D8u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D774u) goto SB_L_08A7D774;
TIER2_SB_RETURN();
SB_L_08A7D774:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(76)));
tier2_gpr_5 = (0u + static_cast<std::uint32_t>(-129));
tier2_gpr_4 = (tier2_gpr_4 & tier2_gpr_5);
tier2_mem.aot_store32(tier2_gpr_16 + static_cast<std::uint32_t>(76), tier2_gpr_4);
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 0u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7D78C;
}
SB_L_08A7D78C:
tier2_gpr_4 = (tier2_gpr_16 + static_cast<std::uint32_t>(48));
{ const std::uint32_t vfpu_address = tier2_gpr_4 + static_cast<std::uint32_t>(0);
std::uint32_t tier2_vfpu_words[4]{}; tier2_mem.aot_load32_block(vfpu_address, tier2_vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(tier2_vfpu_words[0]),
std::bit_cast<float>(tier2_vfpu_words[1]),
std::bit_cast<float>(tier2_vfpu_words[2]),
std::bit_cast<float>(tier2_vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = tier2_gpr_29 + static_cast<std::uint32_t>(0);
const std::uint32_t tier2_vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
tier2_mem.aot_store32_block(vfpu_address, tier2_vfpu_words); }
tier2_gpr_5 = (ctx.gpr[28] + static_cast<std::uint32_t>(10048));
tier2_gpr_31 = (0x08A7D7A4u);
tier2_gpr_4 = (tier2_gpr_29 | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D7A4u) goto SB_L_08A7D7A4;
TIER2_SB_RETURN();
SB_L_08A7D7A4:
{ const std::uint32_t vfpu_address = tier2_gpr_29 + static_cast<std::uint32_t>(0);
std::uint32_t tier2_vfpu_words[4]{}; tier2_mem.aot_load32_block(vfpu_address, tier2_vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(tier2_vfpu_words[0]),
std::bit_cast<float>(tier2_vfpu_words[1]),
std::bit_cast<float>(tier2_vfpu_words[2]),
std::bit_cast<float>(tier2_vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
{ float vfpu_s[4]{}, vfpu_d[4]{};
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i]));
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
tier2_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>());
ctx.fpr[20] = std::bit_cast<float>(tier2_gpr_4);
tier2_gpr_4 = (17317u << 16u);
ctx.fpr[12] = std::bit_cast<float>(tier2_gpr_4);
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] <= ctx.fpr[12])) ? 0x00800000u : 0u);
// nop
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
// nop
if (branch_taken) {
goto SB_L_08A7D7F4;
}
goto SB_L_08A7D7D0;
}
SB_L_08A7D7D0:
tier2_gpr_31 = (0x08A7D7D8u);
tier2_gpr_4 = (ctx.gpr[17] | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0170_entry, 170u, 396u, 0x08AAE0ECu>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D7D8u) goto SB_L_08A7D7D8;
TIER2_SB_RETURN();
SB_L_08A7D7D8:
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] < ctx.fpr[0])) ? 0x00800000u : 0u);
// nop
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
// nop
if (branch_taken) {
goto SB_L_08A7D7F4;
}
goto SB_L_08A7D7E8;
}
SB_L_08A7D7E8:
tier2_gpr_31 = (0x08A7D7F0u);
tier2_gpr_4 = (ctx.gpr[17] | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0170_entry, 170u, 396u, 0x08AAE0ECu>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D7F0u) goto SB_L_08A7D7F0;
TIER2_SB_RETURN();
SB_L_08A7D7F0:
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
goto SB_L_08A7D7F4;
SB_L_08A7D7F4:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
tier2_gpr_4 = (tier2_gpr_4 & 14u);
tier2_gpr_4 = (tier2_gpr_4 ^ 8u);
tier2_gpr_4 = (tier2_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
tier2_gpr_4 = (tier2_gpr_4 & 255u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D84C;
}
goto SB_L_08A7D810;
}
SB_L_08A7D810:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
tier2_gpr_5 = (512u << 16u);
tier2_gpr_4 = (tier2_gpr_4 & tier2_gpr_5);
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D84C;
}
goto SB_L_08A7D824;
}
SB_L_08A7D824:
tier2_gpr_4 = (0u | 1u);
if (tier2_gpr_4 == 0u) {
tier2_gpr_4 = (tier2_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(58)));
goto SB_L_08A7D840;
}
goto SB_L_08A7D830;
SB_L_08A7D830:
tier2_gpr_4 = (tier2_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(58)));
tier2_gpr_4 = (tier2_gpr_4 | 8u);
{ const bool branch_taken = 0u == 0u;
tier2_mem.aot_store16(ctx.gpr[17] + static_cast<std::uint32_t>(58), static_cast<std::uint16_t>(tier2_gpr_4));
if (branch_taken) {
goto SB_L_08A7D84C;
}
goto SB_L_08A7D840;
}
SB_L_08A7D840:
tier2_gpr_5 = (0u + static_cast<std::uint32_t>(-9));
tier2_gpr_4 = (tier2_gpr_4 & tier2_gpr_5);
tier2_mem.aot_store16(ctx.gpr[17] + static_cast<std::uint32_t>(58), static_cast<std::uint16_t>(tier2_gpr_4));
goto SB_L_08A7D84C;
SB_L_08A7D84C:
tier2_gpr_4 = (ctx.gpr[17] | 0u);
tier2_gpr_31 = (0x08A7D858u);
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0170_entry, 170u, 384u, 0x08AAE058u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D858u) goto SB_L_08A7D858;
TIER2_SB_RETURN();
SB_L_08A7D858:
ctx.gpr[19] = (ctx.gpr[2] | 0u);
{ const bool branch_taken = ctx.gpr[19] == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D9CC;
}
goto SB_L_08A7D864;
}
SB_L_08A7D864:
tier2_gpr_4 = (0u | 0u);
if (tier2_gpr_4 == 0u) {
tier2_gpr_4 = (tier2_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(58)));
goto SB_L_08A7D880;
}
goto SB_L_08A7D870;
SB_L_08A7D870:
tier2_gpr_4 = (tier2_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(58)));
tier2_gpr_4 = (tier2_gpr_4 | 8u);
{ const bool branch_taken = 0u == 0u;
tier2_mem.aot_store16(ctx.gpr[17] + static_cast<std::uint32_t>(58), static_cast<std::uint16_t>(tier2_gpr_4));
if (branch_taken) {
goto SB_L_08A7D88C;
}
goto SB_L_08A7D880;
}
SB_L_08A7D880:
tier2_gpr_5 = (0u + static_cast<std::uint32_t>(-9));
tier2_gpr_4 = (tier2_gpr_4 & tier2_gpr_5);
tier2_mem.aot_store16(ctx.gpr[17] + static_cast<std::uint32_t>(58), static_cast<std::uint16_t>(tier2_gpr_4));
goto SB_L_08A7D88C;
SB_L_08A7D88C:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(80)));
{ const bool branch_taken = tier2_gpr_4 != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D8B0;
}
goto SB_L_08A7D898;
}
SB_L_08A7D898:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(92)));
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(64));
tier2_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_4 + static_cast<std::uint32_t>(0))))));
tier2_gpr_6 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(4)));
jump_target = tier2_gpr_6;
tier2_gpr_31 = (0x08A7D8B0u);
tier2_gpr_4 = (tier2_gpr_16 + tier2_gpr_5);
ctx.pc = jump_target;
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D8B0u) goto SB_L_08A7D8B0;
TIER2_SB_RETURN();
SB_L_08A7D8B0:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(80)));
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(20)));
tier2_gpr_6 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(20)));
{ const bool branch_taken = tier2_gpr_5 == tier2_gpr_6;
// nop
if (branch_taken) {
goto SB_L_08A7D8D0;
}
goto SB_L_08A7D8C4;
}
SB_L_08A7D8C4:
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(20)));
tier2_gpr_31 = (0x08A7D8D0u);
tier2_gpr_6 = (0u | 4u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0085_entry, 85u, 455u, 0x0895B470u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D8D0u) goto SB_L_08A7D8D0;
TIER2_SB_RETURN();
SB_L_08A7D8D0:
tier2_gpr_4 = (tier2_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(57)));
tier2_gpr_4 = (static_cast<std::int32_t>(tier2_gpr_4) < 239 ? 1u : 0u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
tier2_gpr_4 = (0u | 255u);
if (branch_taken) {
goto SB_L_08A7D8F0;
}
goto SB_L_08A7D8E0;
}
SB_L_08A7D8E0:
tier2_gpr_4 = (tier2_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(57)));
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(16));
{ const bool branch_taken = 0u == 0u;
tier2_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(57), static_cast<std::uint8_t>(tier2_gpr_4));
if (branch_taken) {
goto SB_L_08A7D8F4;
}
goto SB_L_08A7D8F0;
}
SB_L_08A7D8F0:
tier2_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(57), static_cast<std::uint8_t>(tier2_gpr_4));
goto SB_L_08A7D8F4;
SB_L_08A7D8F4:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(80)));
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D98C;
}
goto SB_L_08A7D900;
}
SB_L_08A7D900:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
tier2_gpr_5 = (8u << 16u);
tier2_gpr_4 = (tier2_gpr_4 & tier2_gpr_5);
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D98C;
}
goto SB_L_08A7D914;
}
SB_L_08A7D914:
tier2_gpr_31 = (0x08A7D91Cu);
tier2_gpr_4 = (tier2_gpr_16 | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D91Cu) goto SB_L_08A7D91C;
TIER2_SB_RETURN();
SB_L_08A7D91C:
{ const bool branch_taken = ctx.gpr[2] == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D97C;
}
goto SB_L_08A7D924;
}
SB_L_08A7D924:
tier2_gpr_31 = (0x08A7D92Cu);
tier2_gpr_4 = (tier2_gpr_16 | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0195_entry, 195u, 375u, 0x08B11994u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D92Cu) goto SB_L_08A7D92C;
TIER2_SB_RETURN();
SB_L_08A7D92C:
{ const bool branch_taken = ctx.gpr[2] != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D97C;
}
goto SB_L_08A7D934;
}
SB_L_08A7D934:
tier2_gpr_4 = (tier2_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(57)));
tier2_gpr_5 = (0u | 255u);
{ const bool branch_taken = tier2_gpr_4 != tier2_gpr_5;
// nop
if (branch_taken) {
goto SB_L_08A7D95C;
}
goto SB_L_08A7D944;
}
SB_L_08A7D944:
tier2_gpr_4 = (tier2_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(58)));
tier2_gpr_4 = (tier2_gpr_4 & 64u);
{ const bool branch_taken = tier2_gpr_4 != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D9A0;
}
goto SB_L_08A7D954;
}
SB_L_08A7D954:
{ const bool branch_taken = 0u == 0u;
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(76)));
if (branch_taken) {
goto SB_L_08A7D994;
}
goto SB_L_08A7D95C;
}
SB_L_08A7D95C:
tier2_gpr_4 = (tier2_gpr_16 | 0u);
tier2_gpr_31 = (0x08A7D968u);
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0080_entry, 80u, 165u, 0x089451D8u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D968u) goto SB_L_08A7D968;
TIER2_SB_RETURN();
SB_L_08A7D968:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(76)));
ctx.gpr[2] = (0u | 0u);
tier2_gpr_4 = (tier2_gpr_4 | 128u);
{ const bool branch_taken = 0u == 0u;
tier2_mem.aot_store32(tier2_gpr_16 + static_cast<std::uint32_t>(76), tier2_gpr_4);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7D97C;
}
SB_L_08A7D97C:
tier2_gpr_4 = (0u | 255u);
tier2_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(57), static_cast<std::uint8_t>(tier2_gpr_4));
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 2u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7D98C;
}
SB_L_08A7D98C:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 0u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7D994;
}
SB_L_08A7D994:
tier2_gpr_4 = (tier2_gpr_4 & 16u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7D9C4;
}
goto SB_L_08A7D9A0;
}
SB_L_08A7D9A0:
tier2_gpr_4 = (tier2_gpr_16 | 0u);
tier2_gpr_31 = (0x08A7D9ACu);
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0080_entry, 80u, 165u, 0x089451D8u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7D9ACu) goto SB_L_08A7D9AC;
TIER2_SB_RETURN();
SB_L_08A7D9AC:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(76)));
tier2_gpr_5 = (0u + static_cast<std::uint32_t>(-129));
tier2_gpr_4 = (tier2_gpr_4 & tier2_gpr_5);
tier2_mem.aot_store32(tier2_gpr_16 + static_cast<std::uint32_t>(76), tier2_gpr_4);
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 0u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7D9C4;
}
SB_L_08A7D9C4:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 1u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7D9CC;
}
SB_L_08A7D9CC:
tier2_gpr_4 = (tier2_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(58)));
tier2_gpr_4 = (tier2_gpr_4 & 32u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7DA38;
}
goto SB_L_08A7D9DC;
}
SB_L_08A7D9DC:
tier2_gpr_4 = (0u | 0u);
if (tier2_gpr_4 == 0u) {
tier2_gpr_4 = (tier2_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(58)));
goto SB_L_08A7D9F8;
}
goto SB_L_08A7D9E8;
SB_L_08A7D9E8:
tier2_gpr_4 = (tier2_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(58)));
tier2_gpr_4 = (tier2_gpr_4 | 8u);
{ const bool branch_taken = 0u == 0u;
tier2_mem.aot_store16(ctx.gpr[17] + static_cast<std::uint32_t>(58), static_cast<std::uint16_t>(tier2_gpr_4));
if (branch_taken) {
goto SB_L_08A7DA04;
}
goto SB_L_08A7D9F8;
}
SB_L_08A7D9F8:
tier2_gpr_5 = (0u + static_cast<std::uint32_t>(-9));
tier2_gpr_4 = (tier2_gpr_4 & tier2_gpr_5);
tier2_mem.aot_store16(ctx.gpr[17] + static_cast<std::uint32_t>(58), static_cast<std::uint16_t>(tier2_gpr_4));
goto SB_L_08A7DA04;
SB_L_08A7DA04:
tier2_gpr_31 = (0x08A7DA0Cu);
tier2_gpr_4 = (ctx.gpr[17] | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0170_entry, 170u, 396u, 0x08AAE0ECu>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7DA0Cu) goto SB_L_08A7DA0C;
TIER2_SB_RETURN();
SB_L_08A7DA0C:
tier2_gpr_4 = (16880u << 16u);
ctx.fpr[12] = std::bit_cast<float>(tier2_gpr_4);
ctx.fpr[12] = ctx.fpr[20] - ctx.fpr[12];
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= ctx.fpr[12])) ? 0x00800000u : 0u);
// nop
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
// nop
if (branch_taken) {
goto SB_L_08A7DB98;
}
goto SB_L_08A7DA28;
}
SB_L_08A7DA28:
{ const bool branch_taken = ctx.gpr[18] == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7DB98;
}
goto SB_L_08A7DA30;
}
SB_L_08A7DA30:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 3u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7DA38;
}
SB_L_08A7DA38:
tier2_gpr_4 = (16800u << 16u);
ctx.fpr[12] = std::bit_cast<float>(tier2_gpr_4);
tier2_gpr_4 = (ctx.gpr[17] | 0u);
tier2_gpr_31 = (0x08A7DA4Cu);
ctx.fpr[12] = ctx.fpr[20] - ctx.fpr[12];
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0170_entry, 170u, 401u, 0x08AAE140u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7DA4Cu) goto SB_L_08A7DA4C;
TIER2_SB_RETURN();
SB_L_08A7DA4C:
tier2_gpr_4 = (0u | 0u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
ctx.gpr[19] = (ctx.gpr[2] | 0u);
if (branch_taken) {
goto SB_L_08A7DA68;
}
goto SB_L_08A7DA58;
}
SB_L_08A7DA58:
tier2_gpr_4 = (tier2_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(58)));
tier2_gpr_4 = (tier2_gpr_4 | 8u);
{ const bool branch_taken = 0u == 0u;
tier2_mem.aot_store16(ctx.gpr[17] + static_cast<std::uint32_t>(58), static_cast<std::uint16_t>(tier2_gpr_4));
if (branch_taken) {
goto SB_L_08A7DA78;
}
goto SB_L_08A7DA68;
}
SB_L_08A7DA68:
tier2_gpr_4 = (tier2_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(58)));
tier2_gpr_5 = (0u + static_cast<std::uint32_t>(-9));
tier2_gpr_4 = (tier2_gpr_4 & tier2_gpr_5);
tier2_mem.aot_store16(ctx.gpr[17] + static_cast<std::uint32_t>(58), static_cast<std::uint16_t>(tier2_gpr_4));
goto SB_L_08A7DA78;
SB_L_08A7DA78:
{ const bool branch_taken = ctx.gpr[19] == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7DB64;
}
goto SB_L_08A7DA80;
}
SB_L_08A7DA80:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(80)));
{ const bool branch_taken = tier2_gpr_4 != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7DAA4;
}
goto SB_L_08A7DA8C;
}
SB_L_08A7DA8C:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(92)));
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(64));
tier2_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(tier2_mem.aot_load16(tier2_gpr_4 + static_cast<std::uint32_t>(0))))));
tier2_gpr_6 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(4)));
jump_target = tier2_gpr_6;
tier2_gpr_31 = (0x08A7DAA4u);
tier2_gpr_4 = (tier2_gpr_16 + tier2_gpr_5);
ctx.pc = jump_target;
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7DAA4u) goto SB_L_08A7DAA4;
TIER2_SB_RETURN();
SB_L_08A7DAA4:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(80)));
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(20)));
tier2_gpr_6 = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(20)));
{ const bool branch_taken = tier2_gpr_5 == tier2_gpr_6;
// nop
if (branch_taken) {
goto SB_L_08A7DAC4;
}
goto SB_L_08A7DAB8;
}
SB_L_08A7DAB8:
tier2_gpr_5 = (tier2_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(20)));
tier2_gpr_31 = (0x08A7DAC4u);
tier2_gpr_6 = (0u | 4u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0085_entry, 85u, 455u, 0x0895B470u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7DAC4u) goto SB_L_08A7DAC4;
TIER2_SB_RETURN();
SB_L_08A7DAC4:
tier2_gpr_4 = (tier2_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(57)));
tier2_gpr_4 = (static_cast<std::int32_t>(tier2_gpr_4) < 239 ? 1u : 0u);
{ const bool branch_taken = tier2_gpr_4 == 0u;
tier2_gpr_4 = (0u | 255u);
if (branch_taken) {
goto SB_L_08A7DAE4;
}
goto SB_L_08A7DAD4;
}
SB_L_08A7DAD4:
tier2_gpr_4 = (tier2_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(57)));
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(16));
{ const bool branch_taken = 0u == 0u;
tier2_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(57), static_cast<std::uint8_t>(tier2_gpr_4));
if (branch_taken) {
goto SB_L_08A7DAE8;
}
goto SB_L_08A7DAE4;
}
SB_L_08A7DAE4:
tier2_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(57), static_cast<std::uint8_t>(tier2_gpr_4));
goto SB_L_08A7DAE8;
SB_L_08A7DAE8:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(80)));
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7DB20;
}
goto SB_L_08A7DAF4;
}
SB_L_08A7DAF4:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(72)));
tier2_gpr_5 = (8u << 16u);
tier2_gpr_4 = (tier2_gpr_4 & tier2_gpr_5);
{ const bool branch_taken = tier2_gpr_4 == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7DB20;
}
goto SB_L_08A7DB08;
}
SB_L_08A7DB08:
tier2_gpr_31 = (0x08A7DB10u);
tier2_gpr_4 = (tier2_gpr_16 | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7DB10u) goto SB_L_08A7DB10;
TIER2_SB_RETURN();
SB_L_08A7DB10:
{ const bool branch_taken = ctx.gpr[2] != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7DB28;
}
goto SB_L_08A7DB18;
}
SB_L_08A7DB18:
{ const bool branch_taken = 0u == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7DB54;
}
goto SB_L_08A7DB20;
}
SB_L_08A7DB20:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 0u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7DB28;
}
SB_L_08A7DB28:
tier2_gpr_31 = (0x08A7DB30u);
tier2_gpr_4 = (tier2_gpr_16 | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0195_entry, 195u, 375u, 0x08B11994u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7DB30u) goto SB_L_08A7DB30;
TIER2_SB_RETURN();
SB_L_08A7DB30:
{ const bool branch_taken = ctx.gpr[2] != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7DB54;
}
goto SB_L_08A7DB38;
}
SB_L_08A7DB38:
tier2_gpr_4 = (tier2_gpr_16 | 0u);
tier2_gpr_31 = (0x08A7DB44u);
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0080_entry, 80u, 165u, 0x089451D8u>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7DB44u) goto SB_L_08A7DB44;
TIER2_SB_RETURN();
SB_L_08A7DB44:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_16 + static_cast<std::uint32_t>(76)));
tier2_gpr_4 = (tier2_gpr_4 | 128u);
{ const bool branch_taken = 0u == 0u;
tier2_mem.aot_store32(tier2_gpr_16 + static_cast<std::uint32_t>(76), tier2_gpr_4);
if (branch_taken) {
goto SB_L_08A7DB5C;
}
goto SB_L_08A7DB54;
}
SB_L_08A7DB54:
tier2_gpr_4 = (0u | 255u);
tier2_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(57), static_cast<std::uint8_t>(tier2_gpr_4));
goto SB_L_08A7DB5C;
SB_L_08A7DB5C:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 2u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7DB64;
}
SB_L_08A7DB64:
tier2_gpr_31 = (0x08A7DB6Cu);
tier2_gpr_4 = (ctx.gpr[17] | 0u);
if (([&]() { TIER2_GPR_SYNC_OUT(); const bool tier2_same_ = (rt.invoke_chained_direct<&recomp_unit_0170_entry, 170u, 396u, 0x08AAE0ECu>(ctx, &aot_mem)); if (tier2_same_) TIER2_GPR_SYNC_IN(); else tier2_gpr_shadow_valid = false; return tier2_same_; }()) && ctx.pc == 0x08A7DB6Cu) goto SB_L_08A7DB6C;
TIER2_SB_RETURN();
SB_L_08A7DB6C:
tier2_gpr_4 = (16968u << 16u);
ctx.fpr[12] = std::bit_cast<float>(tier2_gpr_4);
ctx.fpr[12] = ctx.fpr[20] - ctx.fpr[12];
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= ctx.fpr[12])) ? 0x00800000u : 0u);
// nop
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
// nop
if (branch_taken) {
goto SB_L_08A7DB98;
}
goto SB_L_08A7DB88;
}
SB_L_08A7DB88:
{ const bool branch_taken = ctx.gpr[18] == 0u;
// nop
if (branch_taken) {
goto SB_L_08A7DB98;
}
goto SB_L_08A7DB90;
}
SB_L_08A7DB90:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[2] = (0u | 3u);
if (branch_taken) {
goto SB_L_08A7DB9C;
}
goto SB_L_08A7DB98;
}
SB_L_08A7DB98:
ctx.gpr[2] = (0u | 0u);
goto SB_L_08A7DB9C;
SB_L_08A7DB9C:
{ std::uint32_t tier2_words[6]{};
if (tier2_mem.aot_try_load32_block(tier2_gpr_29 + static_cast<std::uint32_t>(116), tier2_words)) {
ctx.fpr[20] = std::bit_cast<float>(tier2_words[0]);
tier2_gpr_16 = tier2_words[1];
ctx.gpr[17] = tier2_words[2];
ctx.gpr[18] = tier2_words[3];
ctx.gpr[19] = tier2_words[4];
tier2_gpr_31 = tier2_words[5];
} else {
ctx.fpr[20] = std::bit_cast<float>(tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(116)));
tier2_gpr_16 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(120)));
ctx.gpr[17] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(124)));
ctx.gpr[18] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(128)));
ctx.gpr[19] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(132)));
tier2_gpr_31 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(136)));
} }
jump_target = tier2_gpr_31;
tier2_gpr_29 = (tier2_gpr_29 + static_cast<std::uint32_t>(144));
local_pc = jump_target;
goto TIER2_LOCAL_DISPATCH_U0158;
SB_L_08A7EC68:
tier2_gpr_29 = (tier2_gpr_29 + static_cast<std::uint32_t>(-80));
tier2_gpr_5 = (0u | 12u);
tier2_gpr_6 = (tier2_mem.aot_load8(ctx.gpr[28] + static_cast<std::uint32_t>(-7080)));
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(8));
{ const std::uint32_t tier2_words[13]{tier2_gpr_5, std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[22]), tier2_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], tier2_gpr_31};
tier2_mem.aot_store32_block(tier2_gpr_29 + static_cast<std::uint32_t>(16), tier2_words); }
{ const bool branch_taken = tier2_gpr_6 == 0u;
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(12), tier2_gpr_4);
if (branch_taken) {
goto SB_L_08A7ECBC;
}
goto SB_L_08A7ECB4;
}
SB_L_08A7ECB4:
tier2_gpr_4 = (0u | 3u);
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(16), tier2_gpr_4);
goto SB_L_08A7ECBC;
SB_L_08A7ECBC:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(16)));
tier2_gpr_5 = (tier2_gpr_4 + static_cast<std::uint32_t>(-1));
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(8), tier2_gpr_5);
{ const bool branch_taken = tier2_gpr_4 == 0u;
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(16), tier2_gpr_5);
if (branch_taken) {
goto SB_L_08A7F048;
}
goto SB_L_08A7ECD0;
}
SB_L_08A7ECD0:
tier2_gpr_4 = (ctx.gpr[28] + static_cast<std::uint32_t>(-5492));
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(4), tier2_gpr_4);
tier2_gpr_4 = (49648u << 16u);
tier2_gpr_5 = (2280u << 16u);
ctx.fpr[20] = std::bit_cast<float>(tier2_gpr_4);
tier2_gpr_5 = (tier2_gpr_5 + static_cast<std::uint32_t>(-29568));
ctx.gpr[30] = (2280u << 16u);
ctx.gpr[23] = (2279u << 16u);
tier2_gpr_4 = (16880u << 16u);
ctx.gpr[20] = (2280u << 16u);
ctx.fpr[22] = std::bit_cast<float>(tier2_gpr_4);
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(0), tier2_gpr_5);
ctx.gpr[22] = (0u | 1u);
ctx.gpr[21] = (0u | 3u);
ctx.gpr[30] = (ctx.gpr[30] + static_cast<std::uint32_t>(-21568));
ctx.gpr[23] = (ctx.gpr[23] + static_cast<std::uint32_t>(27328));
ctx.gpr[20] = (ctx.gpr[20] + static_cast<std::uint32_t>(-30208));
goto SB_L_08A7ED14;
SB_L_08A7ED14:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(12)));
ctx.gpr[19] = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(0)));
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(4));
{ const bool branch_taken = ctx.gpr[19] == 0u;
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(12), tier2_gpr_4);
if (branch_taken) {
goto SB_L_08A7F030;
}
goto SB_L_08A7ED28;
}
SB_L_08A7ED28:
ctx.gpr[17] = (tier2_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
tier2_gpr_5 = (tier2_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(84)));
tier2_gpr_4 = (tier2_mem.aot_load16(ctx.gpr[28] + static_cast<std::uint32_t>(-25492)));
{ const bool branch_taken = tier2_gpr_5 == tier2_gpr_4;
ctx.gpr[19] = (tier2_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(8)));
if (branch_taken) {
goto SB_L_08A7F028;
}
goto SB_L_08A7ED3C;
}
SB_L_08A7ED3C:
tier2_gpr_6 = (tier2_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(76)));
tier2_gpr_5 = (0u + static_cast<std::uint32_t>(-1025));
tier2_mem.aot_store16(ctx.gpr[17] + static_cast<std::uint32_t>(84), static_cast<std::uint16_t>(tier2_gpr_4));
tier2_gpr_4 = (tier2_gpr_6 & tier2_gpr_5);
tier2_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(76), tier2_gpr_4);
tier2_gpr_31 = (0x08A7ED58u);
tier2_gpr_4 = (ctx.gpr[17] | 0u);
goto SB_L_08A7CEC8;
SB_L_08A7F028:
{ const bool branch_taken = ctx.gpr[19] != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7ED28;
}
goto SB_L_08A7F030;
}
SB_L_08A7F030:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(16)));
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(8)));
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(-1));
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(8), tier2_gpr_4);
{ const bool branch_taken = tier2_gpr_5 != 0u;
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(16), tier2_gpr_4);
if (branch_taken) {
goto SB_L_08A7ED14;
}
goto SB_L_08A7F048;
}
SB_L_08A7F048:
{ std::uint32_t tier2_words[12]{};
if (tier2_mem.aot_try_load32_block(tier2_gpr_29 + static_cast<std::uint32_t>(20), tier2_words)) {
ctx.fpr[20] = std::bit_cast<float>(tier2_words[0]);
ctx.fpr[22] = std::bit_cast<float>(tier2_words[1]);
tier2_gpr_16 = tier2_words[2];
ctx.gpr[17] = tier2_words[3];
ctx.gpr[18] = tier2_words[4];
ctx.gpr[19] = tier2_words[5];
ctx.gpr[20] = tier2_words[6];
ctx.gpr[21] = tier2_words[7];
ctx.gpr[22] = tier2_words[8];
ctx.gpr[23] = tier2_words[9];
ctx.gpr[30] = tier2_words[10];
tier2_gpr_31 = tier2_words[11];
} else {
ctx.fpr[20] = std::bit_cast<float>(tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(20)));
ctx.fpr[22] = std::bit_cast<float>(tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(24)));
tier2_gpr_16 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(28)));
ctx.gpr[17] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(32)));
ctx.gpr[18] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(36)));
ctx.gpr[19] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(40)));
ctx.gpr[20] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(44)));
ctx.gpr[21] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(48)));
ctx.gpr[22] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(52)));
ctx.gpr[23] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(56)));
ctx.gpr[30] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(60)));
tier2_gpr_31 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(64)));
} }
jump_target = tier2_gpr_31;
tier2_gpr_29 = (tier2_gpr_29 + static_cast<std::uint32_t>(80));
local_pc = jump_target;
goto TIER2_LOCAL_DISPATCH_U0158;
SB_L_08A7F080:
tier2_gpr_29 = (tier2_gpr_29 + static_cast<std::uint32_t>(-80));
tier2_gpr_5 = (0u | 12u);
tier2_gpr_6 = (tier2_mem.aot_load8(ctx.gpr[28] + static_cast<std::uint32_t>(-7080)));
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(8));
{ const std::uint32_t tier2_words[13]{tier2_gpr_5, std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[22]), tier2_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], tier2_gpr_31};
tier2_mem.aot_store32_block(tier2_gpr_29 + static_cast<std::uint32_t>(16), tier2_words); }
{ const bool branch_taken = tier2_gpr_6 == 0u;
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(12), tier2_gpr_4);
if (branch_taken) {
goto SB_L_08A7F0D4;
}
goto SB_L_08A7F0CC;
}
SB_L_08A7F0CC:
tier2_gpr_4 = (0u | 4u);
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(16), tier2_gpr_4);
goto SB_L_08A7F0D4;
SB_L_08A7F0D4:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(16)));
tier2_gpr_5 = (tier2_gpr_4 + static_cast<std::uint32_t>(-1));
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(8), tier2_gpr_5);
{ const bool branch_taken = tier2_gpr_4 == 0u;
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(16), tier2_gpr_5);
if (branch_taken) {
goto SB_L_08A7F4A0;
}
goto SB_L_08A7F0E8;
}
SB_L_08A7F0E8:
tier2_gpr_4 = (ctx.gpr[28] + static_cast<std::uint32_t>(-5492));
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(4), tier2_gpr_4);
tier2_gpr_4 = (49648u << 16u);
tier2_gpr_5 = (2280u << 16u);
ctx.fpr[20] = std::bit_cast<float>(tier2_gpr_4);
tier2_gpr_5 = (tier2_gpr_5 + static_cast<std::uint32_t>(-29568));
ctx.gpr[30] = (2280u << 16u);
ctx.gpr[23] = (2279u << 16u);
tier2_gpr_4 = (16880u << 16u);
ctx.gpr[20] = (2280u << 16u);
ctx.fpr[22] = std::bit_cast<float>(tier2_gpr_4);
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(0), tier2_gpr_5);
ctx.gpr[22] = (0u | 1u);
ctx.gpr[21] = (0u | 3u);
ctx.gpr[30] = (ctx.gpr[30] + static_cast<std::uint32_t>(-21568));
ctx.gpr[23] = (ctx.gpr[23] + static_cast<std::uint32_t>(27328));
ctx.gpr[20] = (ctx.gpr[20] + static_cast<std::uint32_t>(-30208));
goto SB_L_08A7F12C;
SB_L_08A7F12C:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(12)));
ctx.gpr[19] = (tier2_mem.aot_load32(tier2_gpr_4 + static_cast<std::uint32_t>(0)));
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(4));
{ const bool branch_taken = ctx.gpr[19] == 0u;
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(12), tier2_gpr_4);
if (branch_taken) {
goto SB_L_08A7F488;
}
goto SB_L_08A7F140;
}
SB_L_08A7F140:
ctx.gpr[17] = (tier2_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
tier2_gpr_5 = (tier2_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(84)));
tier2_gpr_4 = (tier2_mem.aot_load16(ctx.gpr[28] + static_cast<std::uint32_t>(-25492)));
{ const bool branch_taken = tier2_gpr_5 == tier2_gpr_4;
ctx.gpr[19] = (tier2_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(8)));
if (branch_taken) {
goto SB_L_08A7F480;
}
goto SB_L_08A7F154;
}
SB_L_08A7F154:
tier2_gpr_6 = (tier2_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(76)));
tier2_gpr_5 = (0u + static_cast<std::uint32_t>(-1025));
tier2_mem.aot_store16(ctx.gpr[17] + static_cast<std::uint32_t>(84), static_cast<std::uint16_t>(tier2_gpr_4));
tier2_gpr_4 = (tier2_gpr_6 & tier2_gpr_5);
tier2_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(76), tier2_gpr_4);
tier2_gpr_31 = (0x08A7F170u);
tier2_gpr_4 = (ctx.gpr[17] | 0u);
goto SB_L_08A7CEC8;
SB_L_08A7F480:
{ const bool branch_taken = ctx.gpr[19] != 0u;
// nop
if (branch_taken) {
goto SB_L_08A7F140;
}
goto SB_L_08A7F488;
}
SB_L_08A7F488:
tier2_gpr_4 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(16)));
tier2_gpr_5 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(8)));
tier2_gpr_4 = (tier2_gpr_4 + static_cast<std::uint32_t>(-1));
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(8), tier2_gpr_4);
{ const bool branch_taken = tier2_gpr_5 != 0u;
tier2_mem.aot_store32(tier2_gpr_29 + static_cast<std::uint32_t>(16), tier2_gpr_4);
if (branch_taken) {
goto SB_L_08A7F12C;
}
goto SB_L_08A7F4A0;
}
SB_L_08A7F4A0:
{ std::uint32_t tier2_words[12]{};
if (tier2_mem.aot_try_load32_block(tier2_gpr_29 + static_cast<std::uint32_t>(20), tier2_words)) {
ctx.fpr[20] = std::bit_cast<float>(tier2_words[0]);
ctx.fpr[22] = std::bit_cast<float>(tier2_words[1]);
tier2_gpr_16 = tier2_words[2];
ctx.gpr[17] = tier2_words[3];
ctx.gpr[18] = tier2_words[4];
ctx.gpr[19] = tier2_words[5];
ctx.gpr[20] = tier2_words[6];
ctx.gpr[21] = tier2_words[7];
ctx.gpr[22] = tier2_words[8];
ctx.gpr[23] = tier2_words[9];
ctx.gpr[30] = tier2_words[10];
tier2_gpr_31 = tier2_words[11];
} else {
ctx.fpr[20] = std::bit_cast<float>(tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(20)));
ctx.fpr[22] = std::bit_cast<float>(tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(24)));
tier2_gpr_16 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(28)));
ctx.gpr[17] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(32)));
ctx.gpr[18] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(36)));
ctx.gpr[19] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(40)));
ctx.gpr[20] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(44)));
ctx.gpr[21] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(48)));
ctx.gpr[22] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(52)));
ctx.gpr[23] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(56)));
ctx.gpr[30] = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(60)));
tier2_gpr_31 = (tier2_mem.aot_load32(tier2_gpr_29 + static_cast<std::uint32_t>(64)));
} }
jump_target = tier2_gpr_31;
tier2_gpr_29 = (tier2_gpr_29 + static_cast<std::uint32_t>(80));
local_pc = jump_target;
goto TIER2_LOCAL_DISPATCH_U0158;
SB_L_08A7FAA4:
ctx.gpr[2] = (2216u << 16u);
jump_target = tier2_gpr_31;
ctx.gpr[2] = (ctx.gpr[2] + static_cast<std::uint32_t>(-1372));
local_pc = jump_target;
goto TIER2_LOCAL_DISPATCH_U0158;
// TIER2_GPR_BODY_END
#undef TIER2_SB_RETURN
#undef TIER2_GPR_BEFORE_COLD
#undef TIER2_GPR_SYNC_IN
#undef TIER2_GPR_SYNC_OUT
}
} // namespace vcs