Files
PSPRecomp/profiles/vcs/generated/generated_unit_0038.cpp
Jessica_Natalia 96405fbb47 otimizaçoes round 20
otimizaçoes round 20
2026-08-28 01:47:51 -03:00

11792 lines
577 KiB
C++

#include "psprecomp/runtime.hpp"
#include "generated_units.hpp"
#include "vcs_resident_regions.hpp"
#include <bit>
#include <cmath>
#include <cstdint>
#include <limits>
namespace psprecomp {
// PSPRECOMP_V811_COMPACT_DISPATCH: 64-slot occupancy masks + per-group base id.
static constexpr std::uint64_t kEntryMasks_recomp_unit_0038[64] = {
0x522154AA282002A5ull, 0x910A222505488120ull, 0x401505402820A082ull, 0x0A80502540000000ull,
0x244140000000802Aull, 0xA101511110000000ull, 0x0400200000020006ull, 0x04205442A040A000ull,
0x8210A15128888423ull, 0x4544428204110908ull, 0x0401510850200A88ull, 0x0400082182B00002ull,
0x1240019810810020ull, 0x5008101100885205ull, 0x50440A1100192002ull, 0x9280400010A10290ull,
0x20020815054A4400ull, 0x88A1228211010221ull, 0x9295240829100000ull, 0x952A494022421924ull,
0x4481045008428104ull, 0x22EAA00406512008ull, 0x4082540204541010ull, 0x3095129008654A49ull,
0x244922494A490008ull, 0x20408D4402011122ull, 0x48948008892224A5ull, 0x491290102492A48Aull,
0x08A00832948AA925ull, 0x0808929208C20021ull, 0x1048404014600215ull, 0x0084084AA0890080ull,
0x4288041195204010ull, 0x2352A00244200202ull, 0x4940841452854442ull, 0x92409014A4019495ull,
0x2420984082440A24ull, 0xA086A2A084202242ull, 0x2010D24002114108ull, 0x92421590A1025242ull,
0x4800002400924924ull, 0x0413522204881220ull, 0x108400008055000Aull, 0x0108502150902204ull,
0x0011208000000001ull, 0xC244084441100954ull, 0x8104040000020020ull, 0x0500140820202002ull,
0x000000000AA21000ull, 0x800000000A020000ull, 0x00000000002A8844ull, 0x6400000000501000ull,
0x0A02AA8551AA0001ull, 0x41111515442502A8ull, 0x8051000810944554ull, 0x1824115282A20A94ull,
0x4900800040A41045ull, 0x6084104508882A20ull, 0x22A22A0214108228ull, 0x0881004500844511ull,
0x40A0008540808882ull, 0x80081440010A9400ull, 0x222222011140010Aull, 0xA40AA00940008542ull,
};
static constexpr std::uint16_t kEntryBases_recomp_unit_0038[64] = {
1u, 21u, 38u, 52u, 61u, 70u, 80u, 85u, 97u, 115u, 130u, 143u, 153u, 164u, 177u, 190u,
202u, 215u, 230u, 244u, 264u, 277u, 294u, 307u, 328u, 345u, 359u, 377u, 396u, 416u, 430u, 443u,
455u, 469u, 483u, 501u, 520u, 535u, 552u, 565u, 584u, 596u, 611u, 621u, 634u, 639u, 655u, 661u,
670u, 676u, 680u, 687u, 693u, 711u, 730u, 745u, 764u, 776u, 791u, 807u, 820u, 832u, 843u, 856u,
};
void recomp_unit_0038_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) {
// PSPRECOMP_AOT_REGCACHE_BEGIN
// PSPRECOMP_AOT_REGCACHE_META gprs=4,5,31,29,6,2 fprs=12,13,14,20 gpr_occ=4205 fpr_occ=423 gpr_total=6003 fpr_total=649
std::uint32_t aot_gpr_4 = ctx.gpr[4];
std::uint32_t aot_gpr_5 = ctx.gpr[5];
std::uint32_t aot_gpr_31 = ctx.gpr[31];
std::uint32_t aot_gpr_29 = ctx.gpr[29];
std::uint32_t aot_gpr_6 = ctx.gpr[6];
std::uint32_t aot_gpr_2 = ctx.gpr[2];
float aot_fpr_12 = ctx.fpr[12];
float aot_fpr_13 = ctx.fpr[13];
float aot_fpr_14 = ctx.fpr[14];
float aot_fpr_20 = ctx.fpr[20];
bool aot_regcache_valid = true;
#define AOT_REGCACHE_SYNC_OUT() do { if (aot_regcache_valid) { ctx.gpr[4] = aot_gpr_4; ctx.gpr[5] = aot_gpr_5; ctx.gpr[31] = aot_gpr_31; ctx.gpr[29] = aot_gpr_29; ctx.gpr[6] = aot_gpr_6; ctx.gpr[2] = aot_gpr_2; ctx.fpr[12] = aot_fpr_12; ctx.fpr[13] = aot_fpr_13; ctx.fpr[14] = aot_fpr_14; ctx.fpr[20] = aot_fpr_20; } } while (false)
#define AOT_REGCACHE_SYNC_IN() do { if (aot_regcache_valid) { aot_gpr_4 = ctx.gpr[4]; aot_gpr_5 = ctx.gpr[5]; aot_gpr_31 = ctx.gpr[31]; aot_gpr_29 = ctx.gpr[29]; aot_gpr_6 = ctx.gpr[6]; aot_gpr_2 = ctx.gpr[2]; aot_fpr_12 = ctx.fpr[12]; aot_fpr_13 = ctx.fpr[13]; aot_fpr_14 = ctx.fpr[14]; aot_fpr_20 = ctx.fpr[20]; } } while (false)
// PSPRECOMP_AOT_REGCACHE_END
std::uint32_t jump_target = 0u;
std::uint32_t local_transfers = 0u;
std::uint32_t local_redispatch_rounds = 0u;
std::uint32_t local_pc = ctx.pc;
std::uint32_t entry_id = direct_entry_id;
LOCAL_DISPATCH:
{
if (entry_id == 0u) {
const std::uint32_t entry_delta = local_pc - 0x0889C000u;
entry_id = 0u;
if (entry_delta < 16384u && (entry_delta & 3u) == 0u) {
const std::uint32_t entry_slot = entry_delta >> 2u;
const std::uint32_t entry_group = entry_slot >> 6u;
const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0038[entry_group];
const std::uint64_t entry_bit = 1ull << (entry_slot & 63u);
if ((entry_mask & entry_bit) != 0u) {
entry_id = static_cast<std::uint16_t>(
kEntryBases_recomp_unit_0038[entry_group] +
std::popcount(entry_mask & (entry_bit - 1ull)));
}
}
}
switch (entry_id) {
case 1u: goto L_0889C000;
case 2u: goto L_0889C008;
case 3u: goto L_0889C014;
case 4u: goto L_0889C01C;
case 5u: goto L_0889C024;
case 6u: goto L_0889C054;
case 7u: goto L_0889C06C;
case 8u: goto L_0889C074;
case 9u: goto L_0889C084;
case 10u: goto L_0889C08C;
case 11u: goto L_0889C094;
case 12u: goto L_0889C09C;
case 13u: goto L_0889C0A8;
case 14u: goto L_0889C0B0;
case 15u: goto L_0889C0B8;
case 16u: goto L_0889C0C0;
case 17u: goto L_0889C0D4;
case 18u: goto L_0889C0E4;
case 19u: goto L_0889C0F0;
case 20u: goto L_0889C0F8;
case 21u: goto L_0889C114;
case 22u: goto L_0889C120;
case 23u: goto L_0889C13C;
case 24u: goto L_0889C14C;
case 25u: goto L_0889C158;
case 26u: goto L_0889C160;
case 27u: goto L_0889C168;
case 28u: goto L_0889C180;
case 29u: goto L_0889C188;
case 30u: goto L_0889C194;
case 31u: goto L_0889C1A4;
case 32u: goto L_0889C1B4;
case 33u: goto L_0889C1C4;
case 34u: goto L_0889C1CC;
case 35u: goto L_0889C1E0;
case 36u: goto L_0889C1F0;
case 37u: goto L_0889C1FC;
case 38u: goto L_0889C204;
case 39u: goto L_0889C21C;
case 40u: goto L_0889C234;
case 41u: goto L_0889C23C;
case 42u: goto L_0889C254;
case 43u: goto L_0889C26C;
case 44u: goto L_0889C274;
case 45u: goto L_0889C298;
case 46u: goto L_0889C2A0;
case 47u: goto L_0889C2A8;
case 48u: goto L_0889C2C0;
case 49u: goto L_0889C2C8;
case 50u: goto L_0889C2D0;
case 51u: goto L_0889C2F8;
case 52u: goto L_0889C378;
case 53u: goto L_0889C380;
case 54u: goto L_0889C388;
case 55u: goto L_0889C394;
case 56u: goto L_0889C3B0;
case 57u: goto L_0889C3B8;
case 58u: goto L_0889C3DC;
case 59u: goto L_0889C3E4;
case 60u: goto L_0889C3EC;
case 61u: goto L_0889C404;
case 62u: goto L_0889C40C;
case 63u: goto L_0889C414;
case 64u: goto L_0889C43C;
case 65u: goto L_0889C4B8;
case 66u: goto L_0889C4C0;
case 67u: goto L_0889C4D8;
case 68u: goto L_0889C4E8;
case 69u: goto L_0889C4F4;
case 70u: goto L_0889C570;
case 71u: goto L_0889C580;
case 72u: goto L_0889C590;
case 73u: goto L_0889C5A0;
case 74u: goto L_0889C5B0;
case 75u: goto L_0889C5B8;
case 76u: goto L_0889C5C0;
case 77u: goto L_0889C5E0;
case 78u: goto L_0889C5F4;
case 79u: goto L_0889C5FC;
case 80u: goto L_0889C604;
case 81u: goto L_0889C608;
case 82u: goto L_0889C644;
case 83u: goto L_0889C6B4;
case 84u: goto L_0889C6E8;
case 85u: goto L_0889C734;
case 86u: goto L_0889C73C;
case 87u: goto L_0889C758;
case 88u: goto L_0889C774;
case 89u: goto L_0889C77C;
case 90u: goto L_0889C784;
case 91u: goto L_0889C798;
case 92u: goto L_0889C7A8;
case 93u: goto L_0889C7B0;
case 94u: goto L_0889C7B8;
case 95u: goto L_0889C7D4;
case 96u: goto L_0889C7E8;
case 97u: goto L_0889C800;
case 98u: goto L_0889C804;
case 99u: goto L_0889C814;
case 100u: goto L_0889C828;
case 101u: goto L_0889C83C;
case 102u: goto L_0889C84C;
case 103u: goto L_0889C85C;
case 104u: goto L_0889C86C;
case 105u: goto L_0889C874;
case 106u: goto L_0889C880;
case 107u: goto L_0889C890;
case 108u: goto L_0889C898;
case 109u: goto L_0889C8A0;
case 110u: goto L_0889C8B4;
case 111u: goto L_0889C8BC;
case 112u: goto L_0889C8D0;
case 113u: goto L_0889C8E4;
case 114u: goto L_0889C8FC;
case 115u: goto L_0889C90C;
case 116u: goto L_0889C920;
case 117u: goto L_0889C92C;
case 118u: goto L_0889C940;
case 119u: goto L_0889C950;
case 120u: goto L_0889C968;
case 121u: goto L_0889C984;
case 122u: goto L_0889C99C;
case 123u: goto L_0889C9A4;
case 124u: goto L_0889C9B8;
case 125u: goto L_0889C9C8;
case 126u: goto L_0889C9D8;
case 127u: goto L_0889C9E0;
case 128u: goto L_0889C9E8;
case 129u: goto L_0889C9F8;
case 130u: goto L_0889CA0C;
case 131u: goto L_0889CA1C;
case 132u: goto L_0889CA24;
case 133u: goto L_0889CA2C;
case 134u: goto L_0889CA54;
case 135u: goto L_0889CA70;
case 136u: goto L_0889CA78;
case 137u: goto L_0889CA8C;
case 138u: goto L_0889CAA0;
case 139u: goto L_0889CAB0;
case 140u: goto L_0889CAB8;
case 141u: goto L_0889CAC0;
case 142u: goto L_0889CAE8;
case 143u: goto L_0889CB04;
case 144u: goto L_0889CB50;
case 145u: goto L_0889CB54;
case 146u: goto L_0889CB5C;
case 147u: goto L_0889CB64;
case 148u: goto L_0889CB7C;
case 149u: goto L_0889CB80;
case 150u: goto L_0889CB94;
case 151u: goto L_0889CBAC;
case 152u: goto L_0889CBE8;
case 153u: goto L_0889CC14;
case 154u: goto L_0889CC40;
case 155u: goto L_0889CC5C;
case 156u: goto L_0889CC70;
case 157u: goto L_0889CC8C;
case 158u: goto L_0889CC90;
case 159u: goto L_0889CC9C;
case 160u: goto L_0889CCA0;
case 161u: goto L_0889CCD8;
case 162u: goto L_0889CCE4;
case 163u: goto L_0889CCF0;
case 164u: goto L_0889CD00;
case 165u: goto L_0889CD08;
case 166u: goto L_0889CD24;
case 167u: goto L_0889CD30;
case 168u: goto L_0889CD38;
case 169u: goto L_0889CD4C;
case 170u: goto L_0889CD5C;
case 171u: goto L_0889CD80;
case 172u: goto L_0889CD90;
case 173u: goto L_0889CDB0;
case 174u: goto L_0889CDCC;
case 175u: goto L_0889CDF0;
case 176u: goto L_0889CDF8;
case 177u: goto L_0889CE04;
case 178u: goto L_0889CE34;
case 179u: goto L_0889CE40;
case 180u: goto L_0889CE4C;
case 181u: goto L_0889CE50;
case 182u: goto L_0889CE80;
case 183u: goto L_0889CE90;
case 184u: goto L_0889CEA4;
case 185u: goto L_0889CEAC;
case 186u: goto L_0889CEC8;
case 187u: goto L_0889CED8;
case 188u: goto L_0889CEF0;
case 189u: goto L_0889CEF8;
case 190u: goto L_0889CF10;
case 191u: goto L_0889CF1C;
case 192u: goto L_0889CF24;
case 193u: goto L_0889CF40;
case 194u: goto L_0889CF54;
case 195u: goto L_0889CF5C;
case 196u: goto L_0889CF70;
case 197u: goto L_0889CFB8;
case 198u: goto L_0889CFDC;
case 199u: goto L_0889CFE4;
case 200u: goto L_0889CFF0;
case 201u: goto L_0889CFFC;
case 202u: goto L_0889D028;
case 203u: goto L_0889D038;
case 204u: goto L_0889D044;
case 205u: goto L_0889D04C;
case 206u: goto L_0889D058;
case 207u: goto L_0889D060;
case 208u: goto L_0889D068;
case 209u: goto L_0889D080;
case 210u: goto L_0889D088;
case 211u: goto L_0889D090;
case 212u: goto L_0889D0AC;
case 213u: goto L_0889D0C4;
case 214u: goto L_0889D0F4;
case 215u: goto L_0889D100;
case 216u: goto L_0889D114;
case 217u: goto L_0889D124;
case 218u: goto L_0889D140;
case 219u: goto L_0889D160;
case 220u: goto L_0889D170;
case 221u: goto L_0889D184;
case 222u: goto L_0889D19C;
case 223u: goto L_0889D1A4;
case 224u: goto L_0889D1B4;
case 225u: goto L_0889D1C0;
case 226u: goto L_0889D1D4;
case 227u: goto L_0889D1DC;
case 228u: goto L_0889D1EC;
case 229u: goto L_0889D1FC;
case 230u: goto L_0889D250;
case 231u: goto L_0889D260;
case 232u: goto L_0889D26C;
case 233u: goto L_0889D274;
case 234u: goto L_0889D28C;
case 235u: goto L_0889D2A8;
case 236u: goto L_0889D2B4;
case 237u: goto L_0889D2C0;
case 238u: goto L_0889D2C8;
case 239u: goto L_0889D2D0;
case 240u: goto L_0889D2DC;
case 241u: goto L_0889D2E4;
case 242u: goto L_0889D2F0;
case 243u: goto L_0889D2FC;
case 244u: goto L_0889D308;
case 245u: goto L_0889D314;
case 246u: goto L_0889D320;
case 247u: goto L_0889D32C;
case 248u: goto L_0889D330;
case 249u: goto L_0889D344;
case 250u: goto L_0889D358;
case 251u: goto L_0889D364;
case 252u: goto L_0889D374;
case 253u: goto L_0889D398;
case 254u: goto L_0889D3A0;
case 255u: goto L_0889D3AC;
case 256u: goto L_0889D3B8;
case 257u: goto L_0889D3C4;
case 258u: goto L_0889D3CC;
case 259u: goto L_0889D3D4;
case 260u: goto L_0889D3E0;
case 261u: goto L_0889D3E8;
case 262u: goto L_0889D3F0;
case 263u: goto L_0889D3FC;
case 264u: goto L_0889D408;
case 265u: goto L_0889D420;
case 266u: goto L_0889D43C;
case 267u: goto L_0889D444;
case 268u: goto L_0889D458;
case 269u: goto L_0889D46C;
case 270u: goto L_0889D490;
case 271u: goto L_0889D498;
case 272u: goto L_0889D4A8;
case 273u: goto L_0889D4C0;
case 274u: goto L_0889D4DC;
case 275u: goto L_0889D4E8;
case 276u: goto L_0889D4F8;
case 277u: goto L_0889D50C;
case 278u: goto L_0889D534;
case 279u: goto L_0889D540;
case 280u: goto L_0889D550;
case 281u: goto L_0889D558;
case 282u: goto L_0889D564;
case 283u: goto L_0889D568;
case 284u: goto L_0889D588;
case 285u: goto L_0889D5B4;
case 286u: goto L_0889D5BC;
case 287u: goto L_0889D5C4;
case 288u: goto L_0889D5CC;
case 289u: goto L_0889D5D4;
case 290u: goto L_0889D5D8;
case 291u: goto L_0889D5DC;
case 292u: goto L_0889D5E4;
case 293u: goto L_0889D5F4;
case 294u: goto L_0889D610;
case 295u: goto L_0889D630;
case 296u: goto L_0889D648;
case 297u: goto L_0889D650;
case 298u: goto L_0889D658;
case 299u: goto L_0889D668;
case 300u: goto L_0889D684;
case 301u: goto L_0889D6A8;
case 302u: goto L_0889D6B0;
case 303u: goto L_0889D6B8;
case 304u: goto L_0889D6C4;
case 305u: goto L_0889D6DC;
case 306u: goto L_0889D6F8;
case 307u: goto L_0889D700;
case 308u: goto L_0889D70C;
case 309u: goto L_0889D718;
case 310u: goto L_0889D724;
case 311u: goto L_0889D72C;
case 312u: goto L_0889D738;
case 313u: goto L_0889D740;
case 314u: goto L_0889D748;
case 315u: goto L_0889D754;
case 316u: goto L_0889D758;
case 317u: goto L_0889D76C;
case 318u: goto L_0889D790;
case 319u: goto L_0889D79C;
case 320u: goto L_0889D7A4;
case 321u: goto L_0889D7B0;
case 322u: goto L_0889D7C0;
case 323u: goto L_0889D7C8;
case 324u: goto L_0889D7D0;
case 325u: goto L_0889D7DC;
case 326u: goto L_0889D7F0;
case 327u: goto L_0889D7F4;
case 328u: goto L_0889D80C;
case 329u: goto L_0889D840;
case 330u: goto L_0889D84C;
case 331u: goto L_0889D858;
case 332u: goto L_0889D864;
case 333u: goto L_0889D86C;
case 334u: goto L_0889D878;
case 335u: goto L_0889D880;
case 336u: goto L_0889D88C;
case 337u: goto L_0889D898;
case 338u: goto L_0889D8A4;
case 339u: goto L_0889D8B4;
case 340u: goto L_0889D8C0;
case 341u: goto L_0889D8CC;
case 342u: goto L_0889D8D8;
case 343u: goto L_0889D8E8;
case 344u: goto L_0889D8F4;
case 345u: goto L_0889D904;
case 346u: goto L_0889D914;
case 347u: goto L_0889D920;
case 348u: goto L_0889D930;
case 349u: goto L_0889D940;
case 350u: goto L_0889D964;
case 351u: goto L_0889D988;
case 352u: goto L_0889D998;
case 353u: goto L_0889D9A0;
case 354u: goto L_0889D9A8;
case 355u: goto L_0889D9AC;
case 356u: goto L_0889D9BC;
case 357u: goto L_0889D9D8;
case 358u: goto L_0889D9F4;
case 359u: goto L_0889DA00;
case 360u: goto L_0889DA08;
case 361u: goto L_0889DA14;
case 362u: goto L_0889DA1C;
case 363u: goto L_0889DA28;
case 364u: goto L_0889DA34;
case 365u: goto L_0889DA44;
case 366u: goto L_0889DA54;
case 367u: goto L_0889DA60;
case 368u: goto L_0889DA6C;
case 369u: goto L_0889DA7C;
case 370u: goto L_0889DA8C;
case 371u: goto L_0889DABC;
case 372u: goto L_0889DAC8;
case 373u: goto L_0889DAD0;
case 374u: goto L_0889DADC;
case 375u: goto L_0889DAEC;
case 376u: goto L_0889DAF8;
case 377u: goto L_0889DB04;
case 378u: goto L_0889DB0C;
case 379u: goto L_0889DB1C;
case 380u: goto L_0889DB28;
case 381u: goto L_0889DB34;
case 382u: goto L_0889DB3C;
case 383u: goto L_0889DB44;
case 384u: goto L_0889DB50;
case 385u: goto L_0889DB5C;
case 386u: goto L_0889DB68;
case 387u: goto L_0889DB74;
case 388u: goto L_0889DB90;
case 389u: goto L_0889DBB0;
case 390u: goto L_0889DBBC;
case 391u: goto L_0889DBC4;
case 392u: goto L_0889DBD0;
case 393u: goto L_0889DBE0;
case 394u: goto L_0889DBEC;
case 395u: goto L_0889DBF8;
case 396u: goto L_0889DC00;
case 397u: goto L_0889DC08;
case 398u: goto L_0889DC14;
case 399u: goto L_0889DC20;
case 400u: goto L_0889DC2C;
case 401u: goto L_0889DC34;
case 402u: goto L_0889DC3C;
case 403u: goto L_0889DC44;
case 404u: goto L_0889DC4C;
case 405u: goto L_0889DC5C;
case 406u: goto L_0889DC68;
case 407u: goto L_0889DC70;
case 408u: goto L_0889DC7C;
case 409u: goto L_0889DC84;
case 410u: goto L_0889DC90;
case 411u: goto L_0889DC94;
case 412u: goto L_0889DCAC;
case 413u: goto L_0889DCD4;
case 414u: goto L_0889DCDC;
case 415u: goto L_0889DCEC;
case 416u: goto L_0889DD00;
case 417u: goto L_0889DD14;
case 418u: goto L_0889DD44;
case 419u: goto L_0889DD58;
case 420u: goto L_0889DD5C;
case 421u: goto L_0889DD6C;
case 422u: goto L_0889DD84;
case 423u: goto L_0889DD90;
case 424u: goto L_0889DD9C;
case 425u: goto L_0889DDA4;
case 426u: goto L_0889DDB0;
case 427u: goto L_0889DDBC;
case 428u: goto L_0889DDCC;
case 429u: goto L_0889DDEC;
case 430u: goto L_0889DE00;
case 431u: goto L_0889DE08;
case 432u: goto L_0889DE10;
case 433u: goto L_0889DE24;
case 434u: goto L_0889DE54;
case 435u: goto L_0889DE58;
case 436u: goto L_0889DE68;
case 437u: goto L_0889DE70;
case 438u: goto L_0889DE98;
case 439u: goto L_0889DEB8;
case 440u: goto L_0889DECC;
case 441u: goto L_0889DED8;
case 442u: goto L_0889DEF0;
case 443u: goto L_0889DF1C;
case 444u: goto L_0889DF40;
case 445u: goto L_0889DF4C;
case 446u: goto L_0889DF5C;
case 447u: goto L_0889DF74;
case 448u: goto L_0889DF7C;
case 449u: goto L_0889DF84;
case 450u: goto L_0889DF8C;
case 451u: goto L_0889DF98;
case 452u: goto L_0889DFAC;
case 453u: goto L_0889DFC8;
case 454u: goto L_0889DFDC;
case 455u: goto L_0889E010;
case 456u: goto L_0889E038;
case 457u: goto L_0889E054;
case 458u: goto L_0889E060;
case 459u: goto L_0889E068;
case 460u: goto L_0889E070;
case 461u: goto L_0889E07C;
case 462u: goto L_0889E080;
case 463u: goto L_0889E090;
case 464u: goto L_0889E0A8;
case 465u: goto L_0889E0CC;
case 466u: goto L_0889E0DC;
case 467u: goto L_0889E0E4;
case 468u: goto L_0889E0F8;
case 469u: goto L_0889E104;
case 470u: goto L_0889E124;
case 471u: goto L_0889E154;
case 472u: goto L_0889E168;
case 473u: goto L_0889E178;
case 474u: goto L_0889E184;
case 475u: goto L_0889E1B4;
case 476u: goto L_0889E1BC;
case 477u: goto L_0889E1C4;
case 478u: goto L_0889E1D0;
case 479u: goto L_0889E1D8;
case 480u: goto L_0889E1E0;
case 481u: goto L_0889E1E4;
case 482u: goto L_0889E1F4;
case 483u: goto L_0889E204;
case 484u: goto L_0889E218;
case 485u: goto L_0889E228;
case 486u: goto L_0889E238;
case 487u: goto L_0889E240;
case 488u: goto L_0889E248;
case 489u: goto L_0889E25C;
case 490u: goto L_0889E264;
case 491u: goto L_0889E270;
case 492u: goto L_0889E278;
case 493u: goto L_0889E288;
case 494u: goto L_0889E290;
case 495u: goto L_0889E2A8;
case 496u: goto L_0889E2BC;
case 497u: goto L_0889E2D8;
case 498u: goto L_0889E2E0;
case 499u: goto L_0889E2EC;
case 500u: goto L_0889E2F8;
case 501u: goto L_0889E300;
case 502u: goto L_0889E308;
case 503u: goto L_0889E310;
case 504u: goto L_0889E31C;
case 505u: goto L_0889E328;
case 506u: goto L_0889E330;
case 507u: goto L_0889E33C;
case 508u: goto L_0889E340;
case 509u: goto L_0889E368;
case 510u: goto L_0889E374;
case 511u: goto L_0889E37C;
case 512u: goto L_0889E388;
case 513u: goto L_0889E390;
case 514u: goto L_0889E3B0;
case 515u: goto L_0889E3BC;
case 516u: goto L_0889E3D8;
case 517u: goto L_0889E3E4;
case 518u: goto L_0889E3F0;
case 519u: goto L_0889E3FC;
case 520u: goto L_0889E408;
case 521u: goto L_0889E414;
case 522u: goto L_0889E424;
case 523u: goto L_0889E42C;
case 524u: goto L_0889E448;
case 525u: goto L_0889E458;
case 526u: goto L_0889E464;
case 527u: goto L_0889E47C;
case 528u: goto L_0889E498;
case 529u: goto L_0889E4AC;
case 530u: goto L_0889E4B0;
case 531u: goto L_0889E4BC;
case 532u: goto L_0889E4D4;
case 533u: goto L_0889E4E8;
case 534u: goto L_0889E4F4;
case 535u: goto L_0889E504;
case 536u: goto L_0889E518;
case 537u: goto L_0889E524;
case 538u: goto L_0889E534;
case 539u: goto L_0889E554;
case 540u: goto L_0889E568;
case 541u: goto L_0889E57C;
case 542u: goto L_0889E594;
case 543u: goto L_0889E59C;
case 544u: goto L_0889E5A4;
case 545u: goto L_0889E5B4;
case 546u: goto L_0889E5BC;
case 547u: goto L_0889E5C4;
case 548u: goto L_0889E5C8;
case 549u: goto L_0889E5DC;
case 550u: goto L_0889E5F4;
case 551u: goto L_0889E5FC;
case 552u: goto L_0889E60C;
case 553u: goto L_0889E620;
case 554u: goto L_0889E638;
case 555u: goto L_0889E640;
case 556u: goto L_0889E650;
case 557u: goto L_0889E664;
case 558u: goto L_0889E698;
case 559u: goto L_0889E6A4;
case 560u: goto L_0889E6B0;
case 561u: goto L_0889E6B8;
case 562u: goto L_0889E6BC;
case 563u: goto L_0889E6D0;
case 564u: goto L_0889E6F4;
case 565u: goto L_0889E704;
case 566u: goto L_0889E718;
case 567u: goto L_0889E724;
case 568u: goto L_0889E730;
case 569u: goto L_0889E738;
case 570u: goto L_0889E744;
case 571u: goto L_0889E760;
case 572u: goto L_0889E774;
case 573u: goto L_0889E77C;
case 574u: goto L_0889E790;
case 575u: goto L_0889E79C;
case 576u: goto L_0889E7A0;
case 577u: goto L_0889E7A8;
case 578u: goto L_0889E7B0;
case 579u: goto L_0889E7C4;
case 580u: goto L_0889E7D8;
case 581u: goto L_0889E7E4;
case 582u: goto L_0889E7F0;
case 583u: goto L_0889E7FC;
case 584u: goto L_0889E808;
case 585u: goto L_0889E814;
case 586u: goto L_0889E820;
case 587u: goto L_0889E82C;
case 588u: goto L_0889E838;
case 589u: goto L_0889E844;
case 590u: goto L_0889E850;
case 591u: goto L_0889E85C;
case 592u: goto L_0889E888;
case 593u: goto L_0889E894;
case 594u: goto L_0889E8EC;
case 595u: goto L_0889E8F8;
case 596u: goto L_0889E914;
case 597u: goto L_0889E924;
case 598u: goto L_0889E930;
case 599u: goto L_0889E94C;
case 600u: goto L_0889E95C;
case 601u: goto L_0889E968;
case 602u: goto L_0889E984;
case 603u: goto L_0889E994;
case 604u: goto L_0889E9A4;
case 605u: goto L_0889E9B0;
case 606u: goto L_0889E9B8;
case 607u: goto L_0889E9C0;
case 608u: goto L_0889E9C4;
case 609u: goto L_0889E9D0;
case 610u: goto L_0889E9E8;
case 611u: goto L_0889EA04;
case 612u: goto L_0889EA0C;
case 613u: goto L_0889EA40;
case 614u: goto L_0889EA48;
case 615u: goto L_0889EA50;
case 616u: goto L_0889EA58;
case 617u: goto L_0889EA7C;
case 618u: goto L_0889EAC8;
case 619u: goto L_0889EADC;
case 620u: goto L_0889EAF0;
case 621u: goto L_0889EB08;
case 622u: goto L_0889EB24;
case 623u: goto L_0889EB34;
case 624u: goto L_0889EB50;
case 625u: goto L_0889EB5C;
case 626u: goto L_0889EB70;
case 627u: goto L_0889EB78;
case 628u: goto L_0889EB80;
case 629u: goto L_0889EB94;
case 630u: goto L_0889EBB0;
case 631u: goto L_0889EBB8;
case 632u: goto L_0889EBCC;
case 633u: goto L_0889EBE0;
case 634u: goto L_0889EC00;
case 635u: goto L_0889EC9C;
case 636u: goto L_0889ECB4;
case 637u: goto L_0889ECC0;
case 638u: goto L_0889ECD0;
case 639u: goto L_0889ED08;
case 640u: goto L_0889ED10;
case 641u: goto L_0889ED18;
case 642u: goto L_0889ED20;
case 643u: goto L_0889ED2C;
case 644u: goto L_0889ED50;
case 645u: goto L_0889ED60;
case 646u: goto L_0889ED78;
case 647u: goto L_0889ED88;
case 648u: goto L_0889ED98;
case 649u: goto L_0889EDAC;
case 650u: goto L_0889EDC8;
case 651u: goto L_0889EDD8;
case 652u: goto L_0889EDE4;
case 653u: goto L_0889EDF8;
case 654u: goto L_0889EDFC;
case 655u: goto L_0889EE14;
case 656u: goto L_0889EE44;
case 657u: goto L_0889EEA8;
case 658u: goto L_0889EEC8;
case 659u: goto L_0889EEE0;
case 660u: goto L_0889EEFC;
case 661u: goto L_0889EF04;
case 662u: goto L_0889EF34;
case 663u: goto L_0889EF54;
case 664u: goto L_0889EF74;
case 665u: goto L_0889EF8C;
case 666u: goto L_0889EFA8;
case 667u: goto L_0889EFB0;
case 668u: goto L_0889EFE0;
case 669u: goto L_0889EFE8;
case 670u: goto L_0889F030;
case 671u: goto L_0889F044;
case 672u: goto L_0889F054;
case 673u: goto L_0889F05C;
case 674u: goto L_0889F064;
case 675u: goto L_0889F06C;
case 676u: goto L_0889F144;
case 677u: goto L_0889F164;
case 678u: goto L_0889F16C;
case 679u: goto L_0889F1FC;
case 680u: goto L_0889F208;
case 681u: goto L_0889F218;
case 682u: goto L_0889F22C;
case 683u: goto L_0889F23C;
case 684u: goto L_0889F244;
case 685u: goto L_0889F24C;
case 686u: goto L_0889F254;
case 687u: goto L_0889F330;
case 688u: goto L_0889F350;
case 689u: goto L_0889F358;
case 690u: goto L_0889F3E8;
case 691u: goto L_0889F3F4;
case 692u: goto L_0889F3F8;
case 693u: goto L_0889F400;
case 694u: goto L_0889F444;
case 695u: goto L_0889F44C;
case 696u: goto L_0889F454;
case 697u: goto L_0889F45C;
case 698u: goto L_0889F460;
case 699u: goto L_0889F470;
case 700u: goto L_0889F478;
case 701u: goto L_0889F480;
case 702u: goto L_0889F488;
case 703u: goto L_0889F49C;
case 704u: goto L_0889F4A4;
case 705u: goto L_0889F4AC;
case 706u: goto L_0889F4B4;
case 707u: goto L_0889F4BC;
case 708u: goto L_0889F4C4;
case 709u: goto L_0889F4E4;
case 710u: goto L_0889F4EC;
case 711u: goto L_0889F50C;
case 712u: goto L_0889F514;
case 713u: goto L_0889F51C;
case 714u: goto L_0889F524;
case 715u: goto L_0889F540;
case 716u: goto L_0889F548;
case 717u: goto L_0889F554;
case 718u: goto L_0889F568;
case 719u: goto L_0889F578;
case 720u: goto L_0889F580;
case 721u: goto L_0889F588;
case 722u: goto L_0889F590;
case 723u: goto L_0889F5A0;
case 724u: goto L_0889F5A8;
case 725u: goto L_0889F5B0;
case 726u: goto L_0889F5C0;
case 727u: goto L_0889F5D0;
case 728u: goto L_0889F5E0;
case 729u: goto L_0889F5F8;
case 730u: goto L_0889F608;
case 731u: goto L_0889F610;
case 732u: goto L_0889F618;
case 733u: goto L_0889F620;
case 734u: goto L_0889F628;
case 735u: goto L_0889F638;
case 736u: goto L_0889F648;
case 737u: goto L_0889F650;
case 738u: goto L_0889F65C;
case 739u: goto L_0889F670;
case 740u: goto L_0889F68C;
case 741u: goto L_0889F6C0;
case 742u: goto L_0889F6D0;
case 743u: goto L_0889F6D8;
case 744u: goto L_0889F6FC;
case 745u: goto L_0889F708;
case 746u: goto L_0889F710;
case 747u: goto L_0889F71C;
case 748u: goto L_0889F724;
case 749u: goto L_0889F72C;
case 750u: goto L_0889F744;
case 751u: goto L_0889F754;
case 752u: goto L_0889F75C;
case 753u: goto L_0889F764;
case 754u: goto L_0889F77C;
case 755u: goto L_0889F784;
case 756u: goto L_0889F790;
case 757u: goto L_0889F798;
case 758u: goto L_0889F7A0;
case 759u: goto L_0889F7B0;
case 760u: goto L_0889F7C8;
case 761u: goto L_0889F7D4;
case 762u: goto L_0889F7EC;
case 763u: goto L_0889F7F0;
case 764u: goto L_0889F800;
case 765u: goto L_0889F808;
case 766u: goto L_0889F818;
case 767u: goto L_0889F830;
case 768u: goto L_0889F848;
case 769u: goto L_0889F854;
case 770u: goto L_0889F85C;
case 771u: goto L_0889F878;
case 772u: goto L_0889F8BC;
case 773u: goto L_0889F8E0;
case 774u: goto L_0889F8EC;
case 775u: goto L_0889F8F8;
case 776u: goto L_0889F914;
case 777u: goto L_0889F924;
case 778u: goto L_0889F92C;
case 779u: goto L_0889F934;
case 780u: goto L_0889F94C;
case 781u: goto L_0889F95C;
case 782u: goto L_0889F96C;
case 783u: goto L_0889F980;
case 784u: goto L_0889F988;
case 785u: goto L_0889F998;
case 786u: goto L_0889F9B0;
case 787u: goto L_0889F9C8;
case 788u: goto L_0889F9DC;
case 789u: goto L_0889F9F4;
case 790u: goto L_0889F9F8;
case 791u: goto L_0889FA0C;
case 792u: goto L_0889FA14;
case 793u: goto L_0889FA24;
case 794u: goto L_0889FA3C;
case 795u: goto L_0889FA50;
case 796u: goto L_0889FA68;
case 797u: goto L_0889FA70;
case 798u: goto L_0889FA84;
case 799u: goto L_0889FAA4;
case 800u: goto L_0889FAAC;
case 801u: goto L_0889FAB4;
case 802u: goto L_0889FAC4;
case 803u: goto L_0889FAD4;
case 804u: goto L_0889FADC;
case 805u: goto L_0889FAE4;
case 806u: goto L_0889FAF4;
case 807u: goto L_0889FB00;
case 808u: goto L_0889FB10;
case 809u: goto L_0889FB20;
case 810u: goto L_0889FB28;
case 811u: goto L_0889FB38;
case 812u: goto L_0889FB48;
case 813u: goto L_0889FB5C;
case 814u: goto L_0889FB80;
case 815u: goto L_0889FB88;
case 816u: goto L_0889FB98;
case 817u: goto L_0889FBC0;
case 818u: goto L_0889FBDC;
case 819u: goto L_0889FBEC;
case 820u: goto L_0889FC04;
case 821u: goto L_0889FC1C;
case 822u: goto L_0889FC2C;
case 823u: goto L_0889FC3C;
case 824u: goto L_0889FC5C;
case 825u: goto L_0889FC78;
case 826u: goto L_0889FC80;
case 827u: goto L_0889FC88;
case 828u: goto L_0889FC9C;
case 829u: goto L_0889FCD4;
case 830u: goto L_0889FCDC;
case 831u: goto L_0889FCF8;
case 832u: goto L_0889FD28;
case 833u: goto L_0889FD30;
case 834u: goto L_0889FD3C;
case 835u: goto L_0889FD44;
case 836u: goto L_0889FD4C;
case 837u: goto L_0889FD60;
case 838u: goto L_0889FD98;
case 839u: goto L_0889FDA8;
case 840u: goto L_0889FDB0;
case 841u: goto L_0889FDCC;
case 842u: goto L_0889FDFC;
case 843u: goto L_0889FE04;
case 844u: goto L_0889FE0C;
case 845u: goto L_0889FE20;
case 846u: goto L_0889FE58;
case 847u: goto L_0889FE60;
case 848u: goto L_0889FE70;
case 849u: goto L_0889FE80;
case 850u: goto L_0889FEA4;
case 851u: goto L_0889FEB4;
case 852u: goto L_0889FEC4;
case 853u: goto L_0889FED4;
case 854u: goto L_0889FEE4;
case 855u: goto L_0889FEF4;
case 856u: goto L_0889FF04;
case 857u: goto L_0889FF18;
case 858u: goto L_0889FF20;
case 859u: goto L_0889FF28;
case 860u: goto L_0889FF3C;
case 861u: goto L_0889FF78;
case 862u: goto L_0889FF80;
case 863u: goto L_0889FF8C;
case 864u: goto L_0889FFB4;
case 865u: goto L_0889FFBC;
case 866u: goto L_0889FFC4;
case 867u: goto L_0889FFCC;
case 868u: goto L_0889FFE8;
case 869u: goto L_0889FFF4;
case 870u: goto L_0889FFFC;
default:
if (local_transfers == 0u) rt.unsupported(ctx.pc, 0u, "invalid internal function entry");
else ctx.pc = local_pc;
AOT_REGCACHE_SYNC_OUT(); return;
}
}
// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit.
LOCAL_JR_DISPATCH:
{
const std::uint32_t local_delta_v813 = jump_target - 0x0889C000u;
if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) {
ctx.pc = jump_target;
AOT_REGCACHE_SYNC_OUT();
// PSPRECOMP_V814_CONTINUATION_RETURN
Runtime::AotTailContinuation aot_cont_v814{};
if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) {
#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
[[clang::musttail]] return aot_cont_v814.function(
rt, ctx, aot_cont_v814.entry_id, aot_mem);
#else
aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return;
#endif
}
return;
}
}
local_pc = jump_target;
entry_id = 0u;
goto LOCAL_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit.
LOCAL_SCHED_BOUNDARY:
ctx.pc = jump_target;
AOT_REGCACHE_SYNC_OUT();
if (local_redispatch_rounds < 7u && rt.continue_generated_local_dispatch(ctx)) {
++local_redispatch_rounds;
AOT_REGCACHE_SYNC_IN();
local_transfers = 0u;
local_pc = ctx.pc;
entry_id = 0u;
goto LOCAL_DISPATCH;
}
return;
L_0889C000:
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889C5B8;
}
goto L_0889C008;
}
L_0889C008:
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(628)));
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889C024;
}
goto L_0889C014;
}
L_0889C014:
aot_gpr_31 = (0x0889C01Cu);
aot_gpr_4 = (ctx.gpr[18] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0036.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 4u, 0x0889C01Cu, 0x088961FCu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 434u, aot_mem);
#else
recomp_unit_0036_entry(rt, ctx, 434u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 434u, 0x088961FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C01Cu) goto L_0889C01C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C01C:
{ const bool branch_taken = aot_gpr_2 != 0u;
if (branch_taken) {
goto L_0889C5B8;
}
goto L_0889C024;
}
L_0889C024:
aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast<std::uint32_t>(-25492)));
aot_mem.aot_direct_store16(ctx.gpr[18] + static_cast<std::uint32_t>(84), static_cast<std::uint16_t>(aot_gpr_4));
ctx.gpr[19] = (0u | 0u);
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(336), std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_4 & 14u);
aot_gpr_4 = (aot_gpr_4 ^ 6u);
aot_gpr_4 = (aot_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
aot_gpr_4 = (aot_gpr_4 & 255u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889C0F8;
}
goto L_0889C054;
}
L_0889C054:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_4 & 512u);
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
aot_gpr_4 = (aot_gpr_4 & 255u);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889C0C0;
}
goto L_0889C06C;
}
L_0889C06C:
{ const bool branch_taken = ctx.gpr[17] == 0u;
if (branch_taken) {
goto L_0889C084;
}
goto L_0889C074;
}
L_0889C074:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(2228)));
aot_gpr_5 = (0u | 58u);
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
if (branch_taken) {
goto L_0889C0C0;
}
goto L_0889C084;
}
L_0889C084:
{ const bool branch_taken = ctx.gpr[16] == 0u;
if (branch_taken) {
goto L_0889C0B8;
}
goto L_0889C08C;
}
L_0889C08C:
aot_gpr_31 = (0x0889C094u);
aot_gpr_4 = (ctx.gpr[18] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 11u, 0x0889C094u, 0x08910B38u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem);
#else
recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C094u) goto L_0889C094;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C094:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889C0B8;
}
goto L_0889C09C;
}
L_0889C09C:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(1152)));
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889C0B8;
}
goto L_0889C0A8;
}
L_0889C0A8:
aot_gpr_31 = (0x0889C0B0u);
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(1152)));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0191.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 14u, 0x0889C0B0u, 0x08B017A8u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 409u, aot_mem);
#else
recomp_unit_0191_entry(rt, ctx, 409u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 409u, 0x08B017A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C0B0u) goto L_0889C0B0;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C0B0:
{ const bool branch_taken = aot_gpr_2 != 0u;
if (branch_taken) {
goto L_0889C0C0;
}
goto L_0889C0B8;
}
L_0889C0B8:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[19] = (0u | 0u);
if (branch_taken) {
goto L_0889C26C;
}
goto L_0889C0C0;
}
L_0889C0C0:
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast<std::uint32_t>(86))))));
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7656)));
aot_gpr_6 = (static_cast<std::int32_t>(aot_gpr_4) < static_cast<std::int32_t>(aot_gpr_6) ? 1u : 0u);
{ const bool branch_taken = aot_gpr_6 == 0u;
aot_gpr_5 = (0u | 0u);
if (branch_taken) {
goto L_0889C0E4;
}
goto L_0889C0D4;
}
L_0889C0D4:
aot_gpr_4 = (aot_gpr_4 << 2u);
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
aot_gpr_4 = (aot_gpr_5 + aot_gpr_4);
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
goto L_0889C0E4;
L_0889C0E4:
aot_gpr_4 = (aot_gpr_5 | 0u);
aot_gpr_31 = (0x0889C0F0u);
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(80)));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0063.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 19u, 0x0889C0F0u, 0x089039E4u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 664u, aot_mem);
#else
recomp_unit_0063_entry(rt, ctx, 664u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 664u, 0x089039E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C0F0u) goto L_0889C0F0;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C0F0:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[19] = (aot_gpr_2 | 0u);
if (branch_taken) {
goto L_0889C26C;
}
goto L_0889C0F8;
}
L_0889C0F8:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_4 & 14u);
aot_gpr_4 = (aot_gpr_4 ^ 14u);
aot_gpr_4 = (aot_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
aot_gpr_4 = (aot_gpr_4 & 255u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889C23C;
}
goto L_0889C114;
}
L_0889C114:
ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(352)));
{ const bool branch_taken = ctx.gpr[16] == 0u;
if (branch_taken) {
goto L_0889C158;
}
goto L_0889C120;
}
L_0889C120:
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(640), ctx.gpr[21]);
aot_mem.aot_direct_store8(aot_gpr_29 + static_cast<std::uint32_t>(596), static_cast<std::uint8_t>(ctx.gpr[17]));
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(108)));
ctx.gpr[17] = (aot_gpr_4 + static_cast<std::uint32_t>(16));
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast<std::uint32_t>(0))))));
aot_gpr_31 = (0x0889C13Cu);
ctx.gpr[21] = (ctx.gpr[16] + aot_gpr_4);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0115.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 23u, 0x0889C13Cu, 0x089D273Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 419u, aot_mem);
#else
recomp_unit_0115_entry(rt, ctx, 419u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 419u, 0x089D273Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C13Cu) goto L_0889C13C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C13C:
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
aot_gpr_4 = (ctx.gpr[21] | 0u);
jump_target = aot_gpr_6;
aot_gpr_31 = (0x0889C14Cu);
aot_gpr_5 = (aot_gpr_2 | 0u);
ctx.pc = jump_target;
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C14Cu) goto L_0889C14C;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889C14C:
ctx.gpr[17] = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(596)));
{ const bool branch_taken = aot_gpr_2 != 0u;
ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(640)));
if (branch_taken) {
goto L_0889C160;
}
goto L_0889C158;
}
L_0889C158:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[16] = (0u | 0u);
if (branch_taken) {
goto L_0889C160;
}
goto L_0889C160;
}
L_0889C160:
{ const bool branch_taken = ctx.gpr[16] == 0u;
if (branch_taken) {
goto L_0889C204;
}
goto L_0889C168;
}
L_0889C168:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_4 & 512u);
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
aot_gpr_4 = (aot_gpr_4 & 255u);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889C1CC;
}
goto L_0889C180;
}
L_0889C180:
{ const bool branch_taken = ctx.gpr[17] == 0u;
if (branch_taken) {
goto L_0889C1C4;
}
goto L_0889C188;
}
L_0889C188:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(96)));
if (aot_gpr_4 != 0u) {
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(96)));
goto L_0889C1B4;
}
goto L_0889C194;
L_0889C194:
aot_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast<std::uint32_t>(10))))));
aot_gpr_6 = (aot_gpr_29 + static_cast<std::uint32_t>(384));
aot_gpr_31 = (0x0889C1A4u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0166.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 31u, 0x0889C1A4u, 0x08A9C6FCu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem);
#else
recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C1A4u) goto L_0889C1A4;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C1A4:
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(96), aot_gpr_2);
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(384)));
aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast<std::uint32_t>(4), static_cast<std::uint8_t>(aot_gpr_4));
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(96)));
goto L_0889C1B4;
L_0889C1B4:
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(180)));
aot_gpr_5 = (0u | 58u);
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
if (branch_taken) {
goto L_0889C1CC;
}
goto L_0889C1C4;
}
L_0889C1C4:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[19] = (0u | 0u);
if (branch_taken) {
goto L_0889C234;
}
goto L_0889C1CC;
}
L_0889C1CC:
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast<std::uint32_t>(86))))));
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7656)));
aot_gpr_6 = (static_cast<std::int32_t>(aot_gpr_4) < static_cast<std::int32_t>(aot_gpr_6) ? 1u : 0u);
{ const bool branch_taken = aot_gpr_6 == 0u;
aot_gpr_5 = (0u | 0u);
if (branch_taken) {
goto L_0889C1F0;
}
goto L_0889C1E0;
}
L_0889C1E0:
aot_gpr_4 = (aot_gpr_4 << 2u);
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
aot_gpr_4 = (aot_gpr_5 + aot_gpr_4);
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
goto L_0889C1F0;
L_0889C1F0:
aot_gpr_4 = (aot_gpr_5 | 0u);
aot_gpr_31 = (0x0889C1FCu);
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(80)));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0063.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 37u, 0x0889C1FCu, 0x089039E4u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 664u, aot_mem);
#else
recomp_unit_0063_entry(rt, ctx, 664u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 664u, 0x089039E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C1FCu) goto L_0889C1FC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C1FC:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[19] = (aot_gpr_2 | 0u);
if (branch_taken) {
goto L_0889C234;
}
goto L_0889C204;
}
L_0889C204:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_4 & 512u);
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
aot_gpr_4 = (aot_gpr_4 & 255u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889C234;
}
goto L_0889C21C;
}
L_0889C21C:
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast<std::uint32_t>(86))))));
aot_gpr_4 = (aot_gpr_4 << 2u);
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
aot_gpr_4 = (aot_gpr_5 + aot_gpr_4);
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(20)));
goto L_0889C234;
L_0889C234:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889C26C;
}
goto L_0889C23C;
}
L_0889C23C:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_4 & 512u);
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
aot_gpr_4 = (aot_gpr_4 & 255u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889C26C;
}
goto L_0889C254;
}
L_0889C254:
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast<std::uint32_t>(86))))));
aot_gpr_4 = (aot_gpr_4 << 2u);
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
aot_gpr_4 = (aot_gpr_5 + aot_gpr_4);
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(20)));
goto L_0889C26C;
L_0889C26C:
{ const bool branch_taken = ctx.gpr[19] == 0u;
if (branch_taken) {
goto L_0889C388;
}
goto L_0889C274;
}
L_0889C274:
ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(632)));
ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(612)));
ctx.gpr[17] = (ctx.gpr[17] & 255u);
ctx.gpr[16] = (ctx.gpr[16] & 255u);
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(600)));
aot_gpr_6 = (ctx.gpr[19] + static_cast<std::uint32_t>(16));
ctx.gpr[7] = (aot_gpr_29 + static_cast<std::uint32_t>(464));
aot_gpr_31 = (0x0889C298u);
aot_gpr_5 = (ctx.gpr[18] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0043.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 45u, 0x0889C298u, 0x088B1820u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 207u, aot_mem);
#else
recomp_unit_0043_entry(rt, ctx, 207u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 207u, 0x088B1820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C298u) goto L_0889C298;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C298:
{ const bool branch_taken = aot_gpr_2 != 0u;
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(464));
if (branch_taken) {
goto L_0889C2A8;
}
goto L_0889C2A0;
}
L_0889C2A0:
{ const bool branch_taken = 0u == 0u;
aot_gpr_4 = (0u | 0u);
if (branch_taken) {
goto L_0889C378;
}
goto L_0889C2A8;
}
L_0889C2A8:
ctx.gpr[7] = (aot_gpr_29 + static_cast<std::uint32_t>(16));
aot_gpr_5 = (ctx.gpr[19] | 0u);
aot_gpr_6 = (ctx.gpr[20] | 0u);
ctx.gpr[8] = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889C2C0u);
ctx.gpr[9] = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0043.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 48u, 0x0889C2C0u, 0x088B3CECu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 484u, aot_mem);
#else
recomp_unit_0043_entry(rt, ctx, 484u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 484u, 0x088B3CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C2C0u) goto L_0889C2C0;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C2C0:
if (aot_gpr_2 != 0u) {
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
goto L_0889C2D0;
}
goto L_0889C2C8;
L_0889C2C8:
{ const bool branch_taken = 0u == 0u;
aot_gpr_4 = (0u | 0u);
if (branch_taken) {
goto L_0889C378;
}
goto L_0889C2D0;
}
L_0889C2D0:
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(448), std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(4)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(452), std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(8)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(456), std::bit_cast<std::uint32_t>(aot_fpr_12));
ctx.gpr[16] = (aot_gpr_29 + static_cast<std::uint32_t>(448));
aot_gpr_4 = (ctx.gpr[23] | 0u);
aot_gpr_5 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889C2F8u);
aot_gpr_6 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0035.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 51u, 0x0889C2F8u, 0x08891710u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 194u, aot_mem);
#else
recomp_unit_0035_entry(rt, ctx, 194u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 194u, 0x08891710u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C2F8u) goto L_0889C2F8;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C2F8:
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast<std::uint32_t>(0)));
aot_gpr_4 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast<std::uint32_t>(4)));
aot_gpr_5 = (std::bit_cast<std::uint32_t>(aot_fpr_13));
aot_fpr_14 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast<std::uint32_t>(8)));
aot_gpr_6 = (std::bit_cast<std::uint32_t>(aot_fpr_14));
{ const std::uint32_t aot_run_words[3]{aot_gpr_4, aot_gpr_5, aot_gpr_6};
aot_mem.aot_direct_store32_block(ctx.gpr[20] + static_cast<std::uint32_t>(0), aot_run_words); }
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(16)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(448), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(20)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(452), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(24)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(456), std::bit_cast<std::uint32_t>(aot_fpr_12));
{ const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast<std::uint32_t>(16);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast<std::uint32_t>(32);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
ctx.execute_vfpu_vtfm_ct<0u, 36u, 7u, 3u, 3u>();
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(620)));
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast<std::uint32_t>(0)));
aot_gpr_5 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast<std::uint32_t>(4)));
aot_gpr_6 = (std::bit_cast<std::uint32_t>(aot_fpr_13));
aot_fpr_14 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast<std::uint32_t>(8)));
ctx.gpr[7] = (std::bit_cast<std::uint32_t>(aot_fpr_14));
{ const std::uint32_t aot_run_words[3]{aot_gpr_5, aot_gpr_6, ctx.gpr[7]};
aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast<std::uint32_t>(0), aot_run_words); }
aot_gpr_4 = (0u | 1u);
goto L_0889C378;
L_0889C378:
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889C388;
}
goto L_0889C380;
}
L_0889C380:
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(604)));
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(0), ctx.gpr[18]);
goto L_0889C388;
L_0889C388:
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(624)));
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889C5B8;
}
goto L_0889C394;
}
L_0889C394:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(92)));
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(336));
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(0))))));
aot_gpr_4 = (ctx.gpr[18] + aot_gpr_4);
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(4)));
jump_target = aot_gpr_6;
aot_gpr_31 = (0x0889C3B0u);
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(64));
ctx.pc = jump_target;
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C3B0u) goto L_0889C3B0;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889C3B0:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889C5B8;
}
goto L_0889C3B8;
}
L_0889C3B8:
ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(612)));
ctx.gpr[16] = (ctx.gpr[16] & 255u);
ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(600)));
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_6 = (aot_gpr_29 + static_cast<std::uint32_t>(80));
ctx.gpr[19] = (aot_gpr_29 + static_cast<std::uint32_t>(544));
aot_gpr_5 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889C3DCu);
ctx.gpr[7] = (ctx.gpr[19] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0043.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 58u, 0x0889C3DCu, 0x088B1820u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 207u, aot_mem);
#else
recomp_unit_0043_entry(rt, ctx, 207u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 207u, 0x088B1820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C3DCu) goto L_0889C3DC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C3DC:
{ const bool branch_taken = aot_gpr_2 != 0u;
ctx.gpr[8] = (0u | 0u);
if (branch_taken) {
goto L_0889C3EC;
}
goto L_0889C3E4;
}
L_0889C3E4:
{ const bool branch_taken = 0u == 0u;
aot_gpr_4 = (0u | 0u);
if (branch_taken) {
goto L_0889C4B8;
}
goto L_0889C3EC;
}
L_0889C3EC:
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(64));
aot_gpr_6 = (aot_gpr_29 + static_cast<std::uint32_t>(32));
aot_gpr_4 = (ctx.gpr[19] | 0u);
ctx.gpr[7] = (aot_gpr_29 + static_cast<std::uint32_t>(336));
aot_gpr_31 = (0x0889C404u);
ctx.gpr[9] = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0043.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 61u, 0x0889C404u, 0x088B3CECu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 484u, aot_mem);
#else
recomp_unit_0043_entry(rt, ctx, 484u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 484u, 0x088B3CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C404u) goto L_0889C404;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C404:
if (aot_gpr_2 != 0u) {
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(32)));
goto L_0889C414;
}
goto L_0889C40C;
L_0889C40C:
{ const bool branch_taken = 0u == 0u;
aot_gpr_4 = (0u | 0u);
if (branch_taken) {
goto L_0889C4B8;
}
goto L_0889C414;
}
L_0889C414:
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(528), std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(36)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(532), std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(40)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(536), std::bit_cast<std::uint32_t>(aot_fpr_12));
ctx.gpr[16] = (aot_gpr_29 + static_cast<std::uint32_t>(528));
aot_gpr_4 = (ctx.gpr[22] | 0u);
aot_gpr_5 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889C43Cu);
aot_gpr_6 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0035.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 64u, 0x0889C43Cu, 0x08891710u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 194u, aot_mem);
#else
recomp_unit_0035_entry(rt, ctx, 194u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 194u, 0x08891710u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C43Cu) goto L_0889C43C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C43C:
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast<std::uint32_t>(0)));
aot_gpr_4 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast<std::uint32_t>(4)));
aot_gpr_5 = (std::bit_cast<std::uint32_t>(aot_fpr_13));
aot_fpr_14 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast<std::uint32_t>(8)));
aot_gpr_6 = (std::bit_cast<std::uint32_t>(aot_fpr_14));
{ const std::uint32_t aot_run_words[3]{aot_gpr_4, aot_gpr_5, aot_gpr_6};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(32), aot_run_words); }
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(48)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(528), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(52)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(532), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(56)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(536), std::bit_cast<std::uint32_t>(aot_fpr_12));
{ const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast<std::uint32_t>(16);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast<std::uint32_t>(32);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
ctx.execute_vfpu_vtfm_ct<0u, 36u, 7u, 3u, 3u>();
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast<std::uint32_t>(0)));
aot_gpr_4 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast<std::uint32_t>(4)));
aot_gpr_5 = (std::bit_cast<std::uint32_t>(aot_fpr_13));
aot_fpr_14 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast<std::uint32_t>(8)));
aot_gpr_6 = (std::bit_cast<std::uint32_t>(aot_fpr_14));
{ const std::uint32_t aot_run_words[3]{aot_gpr_4, aot_gpr_5, aot_gpr_6};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(48), aot_run_words); }
aot_gpr_4 = (0u | 1u);
goto L_0889C4B8;
L_0889C4B8:
{ const bool branch_taken = aot_gpr_4 == 0u;
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(32));
if (branch_taken) {
goto L_0889C5B8;
}
goto L_0889C4C0;
}
L_0889C4C0:
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(336)));
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_13)) ? 0x00800000u : 0u);
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889C4F4;
}
goto L_0889C4D8;
}
L_0889C4D8:
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(336)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_gpr_31 = (0x0889C4E8u);
aot_gpr_4 = (ctx.gpr[20] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 68u, 0x0889C4E8u, 0x08805288u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 157u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 157u, 0x08805288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C4E8u) goto L_0889C4E8;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C4E8:
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(604)));
{ const bool branch_taken = 0u == 0u;
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(0), ctx.gpr[18]);
if (branch_taken) {
goto L_0889C5B8;
}
goto L_0889C4F4;
}
L_0889C4F4:
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(616)));
{ const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>();
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>();
aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>());
aot_fpr_12 = std::bit_cast<float>(aot_gpr_4);
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(368), std::bit_cast<std::uint32_t>(aot_fpr_13));
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(4)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(372), std::bit_cast<std::uint32_t>(aot_fpr_13));
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(8)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(376), std::bit_cast<std::uint32_t>(aot_fpr_13));
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(368));
{ const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
aot_gpr_4 = (ctx.gpr[18] + static_cast<std::uint32_t>(48));
{ const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>();
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>();
aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>());
aot_fpr_13 = std::bit_cast<float>(aot_gpr_4);
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u);
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889C580;
}
goto L_0889C570;
}
L_0889C570:
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 <= ctx.fpr[22])) ? 0x00800000u : 0u);
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889C5A0;
}
goto L_0889C580;
}
L_0889C580:
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[24])) ? 0x00800000u : 0u);
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889C5B8;
}
goto L_0889C590;
}
L_0889C590:
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 < ctx.fpr[22])) ? 0x00800000u : 0u);
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889C5B8;
}
goto L_0889C5A0;
}
L_0889C5A0:
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(336)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_gpr_31 = (0x0889C5B0u);
aot_gpr_4 = (ctx.gpr[20] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 74u, 0x0889C5B0u, 0x08805288u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 157u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 157u, 0x08805288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C5B0u) goto L_0889C5B0;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C5B0:
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(604)));
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(0), ctx.gpr[18]);
goto L_0889C5B8;
L_0889C5B8:
{ const bool branch_taken = ctx.gpr[30] != 0u;
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 706u, 0x0889BFC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889C5C0;
}
L_0889C5C0:
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(120), 0u);
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(636)));
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_13)) ? 0x00800000u : 0u);
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(64));
goto L_0889C5FC;
}
goto L_0889C5E0;
L_0889C5E0:
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(64));
aot_gpr_31 = (0x0889C5F4u);
aot_gpr_5 = (0u | 2u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0099.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 78u, 0x0889C5F4u, 0x08990464u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 70u, aot_mem);
#else
recomp_unit_0099_entry(rt, ctx, 70u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 70u, 0x08990464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C5F4u) goto L_0889C5F4;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C5F4:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 1u);
if (branch_taken) {
goto L_0889C608;
}
goto L_0889C5FC;
}
L_0889C5FC:
aot_gpr_31 = (0x0889C604u);
aot_gpr_5 = (0u | 2u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0099.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 80u, 0x0889C604u, 0x08990464u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 70u, aot_mem);
#else
recomp_unit_0099_entry(rt, ctx, 70u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 70u, 0x08990464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C604u) goto L_0889C604;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C604:
aot_gpr_2 = (0u | 0u);
goto L_0889C608;
L_0889C608:
{ std::uint32_t aot_run_words[13]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(644), aot_run_words);
aot_fpr_20 = std::bit_cast<float>(aot_run_words[0]);
ctx.fpr[22] = std::bit_cast<float>(aot_run_words[1]);
ctx.fpr[24] = std::bit_cast<float>(aot_run_words[2]);
ctx.gpr[16] = aot_run_words[3];
ctx.gpr[17] = aot_run_words[4];
ctx.gpr[18] = aot_run_words[5];
ctx.gpr[19] = aot_run_words[6];
ctx.gpr[20] = aot_run_words[7];
ctx.gpr[21] = aot_run_words[8];
ctx.gpr[22] = aot_run_words[9];
ctx.gpr[23] = aot_run_words[10];
ctx.gpr[30] = aot_run_words[11];
aot_gpr_31 = aot_run_words[12];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(704));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889C644:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-336));
{ const std::uint32_t aot_run_words[16]{std::bit_cast<std::uint32_t>(aot_fpr_20), std::bit_cast<std::uint32_t>(ctx.fpr[22]), std::bit_cast<std::uint32_t>(ctx.fpr[24]), std::bit_cast<std::uint32_t>(ctx.fpr[26]), std::bit_cast<std::uint32_t>(ctx.fpr[28]), std::bit_cast<std::uint32_t>(ctx.fpr[30]), ctx.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], aot_gpr_31};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(272), aot_run_words); }
ctx.gpr[7] = (ctx.gpr[7] & 255u);
ctx.gpr[8] = (ctx.gpr[8] & 255u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(268), ctx.gpr[7]);
ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(256), ctx.gpr[8]);
ctx.gpr[20] = (aot_gpr_6 | 0u);
ctx.gpr[30] = (ctx.gpr[9] | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(244), aot_gpr_5);
ctx.fpr[26] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(aot_fpr_12));
{ const bool branch_taken = ctx.gpr[21] == 0u;
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(260), std::bit_cast<std::uint32_t>(aot_fpr_13));
if (branch_taken) {
goto L_0889CF70;
}
goto L_0889C6B4;
}
L_0889C6B4:
ctx.gpr[23] = (aot_gpr_29 + static_cast<std::uint32_t>(16));
ctx.fpr[22] = std::bit_cast<float>(0u);
ctx.gpr[22] = (aot_gpr_29 + static_cast<std::uint32_t>(64));
aot_gpr_4 = (16256u << 16u);
ctx.fpr[30] = std::bit_cast<float>(aot_gpr_4);
aot_gpr_4 = (2236u << 16u);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(32304));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(264), aot_gpr_4);
{ std::uint32_t aot_run_words[3]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(192), aot_run_words);
aot_fpr_12 = std::bit_cast<float>(aot_run_words[0]);
ctx.fpr[28] = std::bit_cast<float>(aot_run_words[1]);
aot_fpr_13 = std::bit_cast<float>(aot_run_words[2]);
}
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(252), std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(248), std::bit_cast<std::uint32_t>(aot_fpr_13));
goto L_0889C6E8;
L_0889C6E8:
ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast<std::uint32_t>(0)));
ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast<std::uint32_t>(8)));
ctx.gpr[16] = (ctx.gpr[17] + static_cast<std::uint32_t>(48));
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = aot_gpr_29 + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(244)));
{ const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>();
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 22u>();
aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>());
ctx.fpr[24] = std::bit_cast<float>(aot_gpr_4);
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[24] < ctx.fpr[26])) ? 0x00800000u : 0u);
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
ctx.gpr[19] = (0u + static_cast<std::uint32_t>(-65));
if (branch_taken) {
goto L_0889CF54;
}
goto L_0889C734;
}
L_0889C734:
aot_gpr_31 = (0x0889C73Cu);
aot_gpr_4 = (ctx.gpr[17] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0143.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 86u, 0x0889C73Cu, 0x08A4182Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 290u, aot_mem);
#else
recomp_unit_0143_entry(rt, ctx, 290u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 290u, 0x08A4182Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C73Cu) goto L_0889C73C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C73C:
aot_gpr_4 = (4u << 16u);
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_5 & aot_gpr_4);
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
aot_gpr_4 = (aot_gpr_4 & 255u);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889CF54;
}
goto L_0889C758;
}
L_0889C758:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_4 & 14u);
aot_gpr_4 = (aot_gpr_4 ^ 6u);
aot_gpr_4 = (aot_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
aot_gpr_4 = (aot_gpr_4 & 255u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889C784;
}
goto L_0889C774;
}
L_0889C774:
aot_gpr_31 = (0x0889C77Cu);
aot_gpr_4 = (ctx.gpr[17] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 89u, 0x0889C77Cu, 0x08910B38u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem);
#else
recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C77Cu) goto L_0889C77C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C77C:
{ const bool branch_taken = aot_gpr_2 != 0u;
if (branch_taken) {
goto L_0889CF54;
}
goto L_0889C784;
}
L_0889C784:
aot_gpr_4 = (0u | 0u);
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
aot_gpr_5 = (aot_gpr_5 & 2048u);
{ const bool branch_taken = aot_gpr_5 != 0u;
aot_gpr_6 = (0u | 1u);
if (branch_taken) {
goto L_0889C7A8;
}
goto L_0889C798;
}
L_0889C798:
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(76)));
aot_gpr_5 = (aot_gpr_5 & 2048u);
{ const bool branch_taken = aot_gpr_5 == 0u;
aot_gpr_4 = (aot_gpr_4 & 255u);
if (branch_taken) {
goto L_0889C7B0;
}
goto L_0889C7A8;
}
L_0889C7A8:
aot_gpr_4 = (aot_gpr_6 | 0u);
aot_gpr_4 = (aot_gpr_4 & 255u);
goto L_0889C7B0;
L_0889C7B0:
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889CA8C;
}
goto L_0889C7B8;
}
L_0889C7B8:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_4 & 14u);
aot_gpr_4 = (aot_gpr_4 ^ 8u);
aot_gpr_4 = (aot_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
aot_gpr_4 = (aot_gpr_4 & 255u);
{ const bool branch_taken = aot_gpr_4 == 0u;
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-2049));
if (branch_taken) {
goto L_0889CA78;
}
goto L_0889C7D4;
}
L_0889C7D4:
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(456)));
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[22])) ? 0x00800000u : 0u);
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast<std::uint32_t>(86))))));
goto L_0889C804;
}
goto L_0889C7E8;
L_0889C7E8:
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(456)));
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(260)));
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 <= aot_fpr_12)) ? 0x00800000u : 0u);
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889C828;
}
goto L_0889C800;
}
L_0889C800:
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast<std::uint32_t>(86))))));
goto L_0889C804;
L_0889C804:
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(104)));
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(186)));
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
if (branch_taken) {
goto L_0889C828;
}
goto L_0889C814;
}
L_0889C814:
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast<std::uint32_t>(86))))));
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(104)));
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(188)));
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
if (branch_taken) {
goto L_0889C9F8;
}
goto L_0889C828;
}
L_0889C828:
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast<std::uint32_t>(86))))));
ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7656)));
ctx.gpr[7] = (static_cast<std::int32_t>(aot_gpr_4) < static_cast<std::int32_t>(ctx.gpr[7]) ? 1u : 0u);
{ const bool branch_taken = ctx.gpr[7] == 0u;
aot_gpr_5 = (0u | 0u);
if (branch_taken) {
goto L_0889C84C;
}
goto L_0889C83C;
}
L_0889C83C:
aot_gpr_4 = (aot_gpr_4 << 2u);
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
aot_gpr_4 = (aot_gpr_5 + aot_gpr_4);
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
goto L_0889C84C;
L_0889C84C:
aot_gpr_4 = (aot_gpr_5 | 0u);
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(16)));
if (aot_gpr_5 == aot_gpr_6) {
ctx.gpr[7] = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast<std::uint32_t>(58)));
goto L_0889C874;
}
goto L_0889C85C;
L_0889C85C:
aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(16)));
ctx.gpr[7] = (0u | 3u);
if (aot_gpr_5 == ctx.gpr[7]) {
ctx.gpr[7] = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast<std::uint32_t>(58)));
goto L_0889C874;
}
goto L_0889C86C;
L_0889C86C:
{ const bool branch_taken = 0u == 0u;
aot_gpr_4 = (0u | 0u);
if (branch_taken) {
goto L_0889C898;
}
goto L_0889C874;
}
L_0889C874:
ctx.gpr[7] = (ctx.gpr[7] & 8192u);
{ const bool branch_taken = ctx.gpr[7] != 0u;
aot_gpr_5 = (0u | 0u);
if (branch_taken) {
goto L_0889C890;
}
goto L_0889C880;
}
L_0889C880:
aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast<std::uint32_t>(58)));
aot_gpr_4 = (aot_gpr_4 & 16384u);
{ const bool branch_taken = aot_gpr_4 == 0u;
aot_gpr_4 = (aot_gpr_5 & 255u);
if (branch_taken) {
goto L_0889C898;
}
goto L_0889C890;
}
L_0889C890:
aot_gpr_5 = (aot_gpr_6 | 0u);
aot_gpr_4 = (aot_gpr_5 & 255u);
goto L_0889C898;
L_0889C898:
{ const bool branch_taken = aot_gpr_4 == 0u;
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-2049));
if (branch_taken) {
goto L_0889C8BC;
}
goto L_0889C8A0;
}
L_0889C8A0:
{ const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(48));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = aot_gpr_5 + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
aot_gpr_31 = (0x0889C8B4u);
aot_gpr_4 = (ctx.gpr[17] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0008.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 110u, 0x0889C8B4u, 0x08827E00u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 598u, aot_mem);
#else
recomp_unit_0008_entry(rt, ctx, 598u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 598u, 0x08827E00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C8B4u) goto L_0889C8B4;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C8B4:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889C9F8;
}
goto L_0889C8BC;
}
L_0889C8BC:
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_5 & aot_gpr_4);
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(72), aot_gpr_4);
aot_gpr_31 = (0x0889C8D0u);
aot_gpr_4 = (ctx.gpr[17] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0152.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 112u, 0x0889C8D0u, 0x08A66048u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem);
#else
recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C8D0u) goto L_0889C8D0;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C8D0:
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast<std::uint32_t>(86))))));
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(104)));
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(76)));
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
if (branch_taken) {
goto L_0889C968;
}
goto L_0889C8E4;
}
L_0889C8E4:
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast<std::uint32_t>(482))))));
aot_gpr_4 = (aot_gpr_4 & 64u);
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
aot_gpr_4 = (aot_gpr_4 & 255u);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889C968;
}
goto L_0889C8FC;
}
L_0889C8FC:
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
aot_gpr_31 = (0x0889C90Cu);
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(72)));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B61B60, 215u, 341u, 0x08B61B60u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], aot_gpr_29, aot_gpr_31, aot_fpr_12); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0215_entry, 215u, 341u, 0x08B61B60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C90Cu) goto L_0889C90C;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889C90C:
ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25444)));
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25448)));
aot_gpr_5 = (ctx.gpr[3] | 0u);
aot_gpr_31 = (0x0889C920u);
aot_gpr_4 = (aot_gpr_2 | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0215.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 116u, 0x0889C920u, 0x08B61F5Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem);
#else
recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C920u) goto L_0889C920;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C920:
aot_gpr_5 = (ctx.gpr[3] | 0u);
aot_gpr_31 = (0x0889C92Cu);
aot_gpr_4 = (aot_gpr_2 | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B627F0, 215u, 515u, 0x08B627F0u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0215_entry, 215u, 515u, 0x08B627F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C92Cu) goto L_0889C92C;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889C92C:
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(72), std::bit_cast<std::uint32_t>(ctx.fpr[0]));
aot_gpr_4 = (0u | 5u);
aot_gpr_5 = (ctx.gpr[22] | 0u);
aot_gpr_31 = (0x0889C940u);
aot_gpr_6 = (0u | 1u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0079.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 118u, 0x0889C940u, 0x08941D04u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 280u, aot_mem);
#else
recomp_unit_0079_entry(rt, ctx, 280u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 280u, 0x08941D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C940u) goto L_0889C940;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C940:
aot_gpr_4 = (0u | 6u);
aot_gpr_5 = (ctx.gpr[22] | 0u);
aot_gpr_31 = (0x0889C950u);
aot_gpr_6 = (0u | 1u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0079.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 119u, 0x0889C950u, 0x08941D04u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 280u, aot_mem);
#else
recomp_unit_0079_entry(rt, ctx, 280u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 280u, 0x08941D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C950u) goto L_0889C950;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889C950:
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast<std::uint32_t>(482))))));
aot_gpr_4 = (aot_gpr_4 & ctx.gpr[19]);
aot_gpr_4 = (aot_gpr_4 | 64u);
aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast<std::uint32_t>(482), static_cast<std::uint8_t>(aot_gpr_4));
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889C9F8;
}
goto L_0889C968;
}
L_0889C968:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_4 & 14u);
aot_gpr_4 = (aot_gpr_4 ^ 8u);
aot_gpr_4 = (aot_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
aot_gpr_4 = (aot_gpr_4 & 255u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889C9F8;
}
goto L_0889C984;
}
L_0889C984:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(92)));
aot_gpr_5 = (aot_gpr_4 + static_cast<std::uint32_t>(32));
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(0))))));
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(4)));
jump_target = aot_gpr_5;
aot_gpr_31 = (0x0889C99Cu);
aot_gpr_4 = (ctx.gpr[17] + aot_gpr_4);
ctx.pc = jump_target;
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C99Cu) goto L_0889C99C;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889C99C:
{ const bool branch_taken = aot_gpr_2 != 0u;
if (branch_taken) {
goto L_0889C9F8;
}
goto L_0889C9A4;
}
L_0889C9A4:
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast<std::uint32_t>(86))))));
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(104)));
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(138)));
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
if (branch_taken) {
goto L_0889C9D8;
}
goto L_0889C9B8;
}
L_0889C9B8:
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(104)));
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(190)));
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
if (branch_taken) {
goto L_0889C9D8;
}
goto L_0889C9C8;
}
L_0889C9C8:
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(104)));
aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast<std::uint32_t>(192)));
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
aot_gpr_4 = (0u | 0u);
if (branch_taken) {
goto L_0889C9E0;
}
goto L_0889C9D8;
}
L_0889C9D8:
{ const bool branch_taken = 0u == 0u;
aot_gpr_4 = (0u | 1u);
if (branch_taken) {
goto L_0889C9E0;
}
goto L_0889C9E0;
}
L_0889C9E0:
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889C9F8;
}
goto L_0889C9E8;
}
L_0889C9E8:
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast<std::uint32_t>(482))))));
aot_gpr_4 = (aot_gpr_4 & ctx.gpr[19]);
aot_gpr_4 = (aot_gpr_4 | 64u);
aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast<std::uint32_t>(482), static_cast<std::uint8_t>(aot_gpr_4));
goto L_0889C9F8;
L_0889C9F8:
aot_gpr_4 = (0u | 0u);
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
aot_gpr_5 = (aot_gpr_5 & 2048u);
{ const bool branch_taken = aot_gpr_5 != 0u;
aot_gpr_6 = (0u | 1u);
if (branch_taken) {
goto L_0889CA1C;
}
goto L_0889CA0C;
}
L_0889CA0C:
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(76)));
aot_gpr_5 = (aot_gpr_5 & 2048u);
{ const bool branch_taken = aot_gpr_5 == 0u;
aot_gpr_4 = (aot_gpr_4 & 255u);
if (branch_taken) {
goto L_0889CA24;
}
goto L_0889CA1C;
}
L_0889CA1C:
aot_gpr_4 = (aot_gpr_6 | 0u);
aot_gpr_4 = (aot_gpr_4 & 255u);
goto L_0889CA24;
L_0889CA24:
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889CA8C;
}
goto L_0889CA2C;
}
L_0889CA2C:
aot_gpr_4 = (16384u << 16u);
aot_fpr_12 = std::bit_cast<float>(aot_gpr_4);
aot_fpr_13 = ctx.fpr[26] - ctx.fpr[24];
{ const float fs = aot_fpr_13; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast<float>(0x7FC00000u); else aot_fpr_13 = fs * ft; }
aot_fpr_13 = aot_fpr_13 / ctx.fpr[26];
aot_fpr_12 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[30]));
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 < aot_fpr_12)) ? 0x00800000u : 0u);
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
aot_fpr_12 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(aot_fpr_13));
goto L_0889CA54;
}
goto L_0889CA54;
L_0889CA54:
aot_gpr_4 = (17723u << 16u);
aot_gpr_4 = (aot_gpr_4 | 32768u);
aot_fpr_13 = std::bit_cast<float>(aot_gpr_4);
{ const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast<float>(0x7FC00000u); else aot_fpr_12 = fs * ft; }
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889CA70u);
aot_gpr_5 = (0u | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0009.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 135u, 0x0889CA70u, 0x0882BFC8u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 482u, aot_mem);
#else
recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 482u, 0x0882BFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CA70u) goto L_0889CA70;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889CA70:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889CA8C;
}
goto L_0889CA78;
}
L_0889CA78:
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_5 & aot_gpr_4);
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(72), aot_gpr_4);
aot_gpr_31 = (0x0889CA8Cu);
aot_gpr_4 = (ctx.gpr[17] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0152.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 137u, 0x0889CA8Cu, 0x08A66048u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem);
#else
recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CA8Cu) goto L_0889CA8C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889CA8C:
aot_gpr_4 = (0u | 0u);
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
aot_gpr_5 = (aot_gpr_5 & 2048u);
{ const bool branch_taken = aot_gpr_5 != 0u;
aot_gpr_6 = (0u | 1u);
if (branch_taken) {
goto L_0889CAB0;
}
goto L_0889CAA0;
}
L_0889CAA0:
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(76)));
aot_gpr_5 = (aot_gpr_5 & 2048u);
{ const bool branch_taken = aot_gpr_5 == 0u;
aot_gpr_4 = (aot_gpr_4 & 255u);
if (branch_taken) {
goto L_0889CAB8;
}
goto L_0889CAB0;
}
L_0889CAB0:
aot_gpr_4 = (aot_gpr_6 | 0u);
aot_gpr_4 = (aot_gpr_4 & 255u);
goto L_0889CAB8;
L_0889CAB8:
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889CF54;
}
goto L_0889CAC0;
}
L_0889CAC0:
aot_gpr_4 = (16384u << 16u);
aot_fpr_12 = std::bit_cast<float>(aot_gpr_4);
aot_fpr_13 = ctx.fpr[26] - ctx.fpr[24];
{ const float fs = aot_fpr_13; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast<float>(0x7FC00000u); else aot_fpr_12 = fs * ft; }
aot_fpr_12 = aot_fpr_12 / ctx.fpr[26];
aot_fpr_20 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[30]));
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u);
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
aot_fpr_20 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(aot_fpr_12));
goto L_0889CAE8;
}
goto L_0889CAE8;
L_0889CAE8:
aot_gpr_4 = (15395u << 16u);
aot_gpr_4 = (aot_gpr_4 | 55050u);
aot_fpr_12 = std::bit_cast<float>(aot_gpr_4);
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[24])) ? 0x00800000u : 0u);
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
ctx.fpr[24] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(aot_fpr_12));
goto L_0889CB04;
}
goto L_0889CB04;
L_0889CB04:
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(260)));
aot_gpr_4 = (17583u << 16u);
aot_fpr_13 = std::bit_cast<float>(aot_gpr_4);
aot_fpr_14 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(208)));
{ const float fs = aot_fpr_12; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast<float>(0x7FC00000u); else aot_fpr_12 = fs * ft; }
aot_fpr_12 = aot_fpr_12 / aot_fpr_13;
{ const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast<float>(0x7FC00000u); else aot_fpr_12 = fs * ft; }
aot_fpr_12 = aot_fpr_12 / ctx.fpr[24];
aot_gpr_4 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4);
{ const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(96));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(104)));
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 < ctx.fpr[22])) ? 0x00800000u : 0u);
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889CB54;
}
goto L_0889CB50;
}
L_0889CB50:
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(104), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
goto L_0889CB54;
L_0889CB54:
aot_gpr_31 = (0x0889CB5Cu);
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CB5Cu) goto L_0889CB5C;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889CB5C:
{ const bool branch_taken = ctx.gpr[17] != aot_gpr_2;
if (branch_taken) {
goto L_0889CB80;
}
goto L_0889CB64;
}
L_0889CB64:
aot_fpr_12 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[30]));
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(104)));
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 < aot_fpr_12)) ? 0x00800000u : 0u);
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(104)));
goto L_0889CB7C;
}
goto L_0889CB7C;
L_0889CB7C:
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(104), std::bit_cast<std::uint32_t>(aot_fpr_12));
goto L_0889CB80;
L_0889CB80:
{ std::uint32_t aot_run_words[3]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(96), aot_run_words);
aot_fpr_12 = std::bit_cast<float>(aot_run_words[0]);
aot_fpr_13 = std::bit_cast<float>(aot_run_words[1]);
aot_fpr_14 = std::bit_cast<float>(aot_run_words[2]);
}
aot_gpr_31 = (0x0889CB94u);
aot_gpr_4 = (ctx.gpr[17] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0152.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 150u, 0x0889CB94u, 0x08A66CD8u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem);
#else
recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CB94u) goto L_0889CB94;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889CB94:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_4 & 8192u);
aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u);
aot_gpr_4 = (aot_gpr_4 & 255u);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889CC40;
}
goto L_0889CBAC;
}
L_0889CBAC:
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(8)));
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(8)));
aot_fpr_12 = aot_fpr_12 - aot_fpr_13;
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast<std::uint32_t>(86))))));
aot_gpr_4 = (aot_gpr_4 << 2u);
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
aot_gpr_4 = (aot_gpr_5 + aot_gpr_4);
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(20)));
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
aot_fpr_13 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(aot_fpr_13) ^ 0x80000000u);
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_13)) ? 0x00800000u : 0u);
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
aot_fpr_13 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(aot_fpr_12));
goto L_0889CBE8;
}
goto L_0889CBE8;
L_0889CBE8:
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast<std::uint32_t>(86))))));
aot_gpr_4 = (aot_gpr_4 << 2u);
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
aot_gpr_4 = (aot_gpr_5 + aot_gpr_4);
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(20)));
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 < aot_fpr_12)) ? 0x00800000u : 0u);
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
aot_fpr_12 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(aot_fpr_13));
goto L_0889CC14;
}
goto L_0889CC14;
L_0889CC14:
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(ctx.fpr[22]), std::bit_cast<std::uint32_t>(ctx.fpr[22]), std::bit_cast<std::uint32_t>(aot_fpr_12)};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(144), aot_run_words); }
ctx.fpr[17] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(aot_fpr_12));
{ std::uint32_t aot_run_words[3]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(96), aot_run_words);
aot_fpr_12 = std::bit_cast<float>(aot_run_words[0]);
aot_fpr_13 = std::bit_cast<float>(aot_run_words[1]);
aot_fpr_14 = std::bit_cast<float>(aot_run_words[2]);
}
aot_gpr_4 = (ctx.gpr[17] | 0u);
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]));
aot_gpr_31 = (0x0889CC40u);
ctx.fpr[16] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0152.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 154u, 0x0889CC40u, 0x08A66E08u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem);
#else
recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CC40u) goto L_0889CC40;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889CC40:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_4 & 14u);
aot_gpr_4 = (aot_gpr_4 ^ 4u);
aot_gpr_4 = (aot_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
aot_gpr_4 = (aot_gpr_4 & 255u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889CD08;
}
goto L_0889CC5C;
}
L_0889CC5C:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_4 & 496u);
aot_gpr_5 = (0u | 32u);
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
aot_gpr_4 = (0u | 1u);
if (branch_taken) {
goto L_0889CC90;
}
goto L_0889CC70;
}
L_0889CC70:
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-497));
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_5 & aot_gpr_4);
aot_gpr_4 = (aot_gpr_4 | 48u);
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(72), aot_gpr_4);
aot_gpr_31 = (0x0889CC8Cu);
aot_gpr_4 = (ctx.gpr[17] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0207.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 157u, 0x0889CC8Cu, 0x08B41608u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 365u, aot_mem);
#else
recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 365u, 0x08B41608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CC8Cu) goto L_0889CC8C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889CC8C:
aot_gpr_4 = (0u | 1u);
goto L_0889CC90;
L_0889CC90:
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(256)));
{ const bool branch_taken = aot_gpr_5 == 0u;
aot_gpr_5 = (17545u << 16u);
if (branch_taken) {
goto L_0889CCA0;
}
goto L_0889CC9C;
}
L_0889CC9C:
aot_gpr_4 = (0u | 2u);
goto L_0889CCA0;
L_0889CCA0:
aot_gpr_5 = (aot_gpr_5 | 32768u);
aot_fpr_12 = std::bit_cast<float>(aot_gpr_5);
{ const float fs = aot_fpr_20; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast<float>(0x7FC00000u); else aot_fpr_12 = fs * ft; }
aot_fpr_13 = std::bit_cast<float>(aot_gpr_4);
aot_fpr_13 = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(aot_fpr_13)));
{ const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast<float>(0x7FC00000u); else aot_fpr_12 = fs * ft; }
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(ctx.fpr[22]), std::bit_cast<std::uint32_t>(ctx.fpr[22]), std::bit_cast<std::uint32_t>(ctx.fpr[22])};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(160), aot_run_words); }
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_5 = (ctx.gpr[20] | 0u);
ctx.gpr[7] = (aot_gpr_29 + static_cast<std::uint32_t>(160));
aot_gpr_31 = (0x0889CCD8u);
aot_gpr_6 = (ctx.gpr[30] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0192.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 161u, 0x0889CCD8u, 0x08B0452Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 71u, aot_mem);
#else
recomp_unit_0192_entry(rt, ctx, 71u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 71u, 0x08B0452Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CCD8u) goto L_0889CCD8;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889CCD8:
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(268)));
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889CD00;
}
goto L_0889CCE4;
}
L_0889CCE4:
aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast<std::uint32_t>(666)));
{ const bool branch_taken = aot_gpr_4 == 0u;
aot_gpr_4 = (0u | 10u);
if (branch_taken) {
goto L_0889CD00;
}
goto L_0889CCF0;
}
L_0889CCF0:
aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast<std::uint32_t>(666)));
{ const std::int32_t dividend = static_cast<std::int32_t>(aot_gpr_5); const std::int32_t divisor = static_cast<std::int32_t>(aot_gpr_4); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast<std::uint32_t>(dividend); } else if (dividend == static_cast<std::int32_t>(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast<std::uint32_t>(dividend / divisor); ctx.hi = static_cast<std::uint32_t>(dividend % divisor); } }
aot_gpr_4 = (ctx.lo);
aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast<std::uint32_t>(666), static_cast<std::uint16_t>(aot_gpr_4));
goto L_0889CD00;
L_0889CD00:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889CF54;
}
goto L_0889CD08;
}
L_0889CD08:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_4 & 14u);
aot_gpr_4 = (aot_gpr_4 ^ 6u);
aot_gpr_4 = (aot_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
aot_gpr_4 = (aot_gpr_4 & 255u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889CF24;
}
goto L_0889CD24;
}
L_0889CD24:
ctx.gpr[16] = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889CD30u);
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CD30u) goto L_0889CD30;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889CD30:
{ const bool branch_taken = ctx.gpr[16] != aot_gpr_2;
if (branch_taken) {
goto L_0889CD5C;
}
goto L_0889CD38;
}
L_0889CD38:
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(264)));
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast<std::uint32_t>(1976))))));
aot_gpr_5 = (0u | 45u);
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
if (branch_taken) {
goto L_0889CD5C;
}
goto L_0889CD4C;
}
L_0889CD4C:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2228)));
aot_gpr_5 = (0u | 12u);
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
if (branch_taken) {
goto L_0889CF1C;
}
goto L_0889CD5C;
}
L_0889CD5C:
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(96)));
aot_fpr_12 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(aot_fpr_12) ^ 0x80000000u);
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(100)));
aot_fpr_13 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(aot_fpr_13) ^ 0x80000000u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(176), std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(180), std::bit_cast<std::uint32_t>(aot_fpr_13));
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(176));
aot_gpr_31 = (0x0889CD80u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0064.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 171u, 0x0889CD80u, 0x08906DC4u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 618u, aot_mem);
#else
recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 618u, 0x08906DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CD80u) goto L_0889CD80;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889CD80:
ctx.gpr[19] = (aot_gpr_2 | 0u);
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2120)));
{ const bool branch_taken = aot_gpr_4 == 0u;
ctx.gpr[18] = (ctx.gpr[19] & 255u);
if (branch_taken) {
goto L_0889CDF8;
}
goto L_0889CD90;
}
L_0889CD90:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2120)));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_4 & 14u);
aot_gpr_4 = (aot_gpr_4 ^ 4u);
aot_gpr_4 = (aot_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
aot_gpr_4 = (aot_gpr_4 & 255u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889CDF8;
}
goto L_0889CDB0;
}
L_0889CDB0:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2120)));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_4 & 496u);
aot_gpr_4 = (aot_gpr_4 >> 4u);
aot_gpr_5 = (0u | 5u);
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
if (branch_taken) {
goto L_0889CDF8;
}
goto L_0889CDCC;
}
L_0889CDCC:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_5 = (17530u << 16u);
aot_fpr_12 = std::bit_cast<float>(aot_gpr_5);
aot_gpr_5 = (ctx.gpr[20] | 0u);
aot_gpr_6 = (ctx.gpr[30] | 0u);
ctx.gpr[7] = (0u | 0u);
ctx.gpr[8] = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889CDF0u);
ctx.gpr[9] = (0u | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0057.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 175u, 0x0889CDF0u, 0x088EB674u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem);
#else
recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CDF0u) goto L_0889CDF0;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889CDF0:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889CE80;
}
goto L_0889CDF8;
}
L_0889CDF8:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2120)));
{ const bool branch_taken = aot_gpr_4 != 0u;
aot_gpr_4 = (0u | 1u);
if (branch_taken) {
goto L_0889CE40;
}
goto L_0889CE04;
}
L_0889CE04:
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-2));
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(456)));
aot_gpr_4 = (aot_gpr_5 & aot_gpr_4);
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(456), aot_gpr_4);
aot_gpr_4 = (16384u << 16u);
ctx.fpr[24] = std::bit_cast<float>(aot_gpr_4);
ctx.fpr[28] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]));
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_fpr_12 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[28]));
aot_fpr_13 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[28]));
aot_gpr_31 = (0x0889CE34u);
aot_fpr_14 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[24]));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0152.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 178u, 0x0889CE34u, 0x08A66CD8u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem);
#else
recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CE34u) goto L_0889CE34;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889CE34:
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(248), std::bit_cast<std::uint32_t>(ctx.fpr[24]));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(252), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
aot_gpr_4 = (0u | 1u);
goto L_0889CE40;
L_0889CE40:
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(256)));
{ const bool branch_taken = aot_gpr_5 == 0u;
aot_gpr_5 = (17274u << 16u);
if (branch_taken) {
goto L_0889CE50;
}
goto L_0889CE4C;
}
L_0889CE4C:
aot_gpr_4 = (0u | 2u);
goto L_0889CE50;
L_0889CE50:
aot_fpr_12 = std::bit_cast<float>(aot_gpr_5);
{ const float fs = aot_fpr_20; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast<float>(0x7FC00000u); else aot_fpr_12 = fs * ft; }
aot_fpr_13 = std::bit_cast<float>(aot_gpr_4);
aot_fpr_13 = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(aot_fpr_13)));
{ const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast<float>(0x7FC00000u); else aot_fpr_12 = fs * ft; }
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_5 = (ctx.gpr[20] | 0u);
aot_gpr_6 = (ctx.gpr[30] | 0u);
ctx.gpr[7] = (0u | 0u);
ctx.gpr[8] = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889CE80u);
ctx.gpr[9] = (0u | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0057.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 182u, 0x0889CE80u, 0x088EB674u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem);
#else
recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CE80u) goto L_0889CE80;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889CE80:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(2228)));
aot_gpr_5 = (0u | 57u);
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
if (branch_taken) {
goto L_0889CEA4;
}
goto L_0889CE90;
}
L_0889CE90:
aot_gpr_6 = (ctx.gpr[19] + static_cast<std::uint32_t>(28));
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_5 = (0u | 2000u);
aot_gpr_31 = (0x0889CEA4u);
ctx.gpr[7] = (0u | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0070.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 184u, 0x0889CEA4u, 0x0891C0E8u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem);
#else
recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CEA4u) goto L_0889CEA4;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889CEA4:
{ const bool branch_taken = ctx.gpr[20] == 0u;
if (branch_taken) {
goto L_0889CF1C;
}
goto L_0889CEAC;
}
L_0889CEAC:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_4 & 14u);
aot_gpr_4 = (aot_gpr_4 ^ 6u);
aot_gpr_4 = (aot_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
aot_gpr_4 = (aot_gpr_4 & 255u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889CF1C;
}
goto L_0889CEC8;
}
L_0889CEC8:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(1360)));
aot_gpr_5 = (0u | 6u);
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
if (branch_taken) {
goto L_0889CEF8;
}
goto L_0889CED8;
}
L_0889CED8:
aot_gpr_4 = (0u | 12u);
aot_gpr_5 = (0u | 1u);
aot_gpr_6 = (ctx.gpr[17] | 0u);
ctx.gpr[7] = (ctx.gpr[20] | 0u);
aot_gpr_31 = (0x0889CEF0u);
ctx.gpr[8] = (0u | 10000u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0095.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 188u, 0x0889CEF0u, 0x0898019Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem);
#else
recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CEF0u) goto L_0889CEF0;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889CEF0:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889CF10;
}
goto L_0889CEF8;
}
L_0889CEF8:
aot_gpr_4 = (0u | 11u);
aot_gpr_5 = (0u | 1u);
aot_gpr_6 = (ctx.gpr[17] | 0u);
ctx.gpr[7] = (ctx.gpr[20] | 0u);
aot_gpr_31 = (0x0889CF10u);
ctx.gpr[8] = (0u | 10000u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0095.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 190u, 0x0889CF10u, 0x0898019Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem);
#else
recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CF10u) goto L_0889CF10;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889CF10:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889CF1Cu);
aot_gpr_5 = (ctx.gpr[20] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0108.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 191u, 0x0889CF1Cu, 0x089B4624u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 119u, aot_mem);
#else
recomp_unit_0108_entry(rt, ctx, 119u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 119u, 0x089B4624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CF1Cu) goto L_0889CF1C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889CF1C:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889CF54;
}
goto L_0889CF24;
}
L_0889CF24:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_4 & 14u);
aot_gpr_4 = (aot_gpr_4 ^ 8u);
aot_gpr_4 = (aot_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
aot_gpr_4 = (aot_gpr_4 & 255u);
{ const bool branch_taken = aot_gpr_4 == 0u;
aot_gpr_4 = (17302u << 16u);
if (branch_taken) {
goto L_0889CF54;
}
goto L_0889CF40;
}
L_0889CF40:
aot_fpr_12 = std::bit_cast<float>(aot_gpr_4);
{ const float fs = aot_fpr_20; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast<float>(0x7FC00000u); else aot_fpr_12 = fs * ft; }
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889CF54u);
aot_gpr_5 = (0u | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0009.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 194u, 0x0889CF54u, 0x0882BFC8u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 482u, aot_mem);
#else
recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 482u, 0x0882BFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CF54u) goto L_0889CF54;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889CF54:
{ const bool branch_taken = ctx.gpr[21] != 0u;
if (branch_taken) {
goto L_0889C6E8;
}
goto L_0889CF5C;
}
L_0889CF5C:
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(252)));
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(248)));
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(aot_fpr_12), std::bit_cast<std::uint32_t>(ctx.fpr[28]), std::bit_cast<std::uint32_t>(aot_fpr_13)};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(192), aot_run_words); }
goto L_0889CF70;
L_0889CF70:
{ std::uint32_t aot_run_words[16]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(272), aot_run_words);
aot_fpr_20 = std::bit_cast<float>(aot_run_words[0]);
ctx.fpr[22] = std::bit_cast<float>(aot_run_words[1]);
ctx.fpr[24] = std::bit_cast<float>(aot_run_words[2]);
ctx.fpr[26] = std::bit_cast<float>(aot_run_words[3]);
ctx.fpr[28] = std::bit_cast<float>(aot_run_words[4]);
ctx.fpr[30] = std::bit_cast<float>(aot_run_words[5]);
ctx.gpr[16] = aot_run_words[6];
ctx.gpr[17] = aot_run_words[7];
ctx.gpr[18] = aot_run_words[8];
ctx.gpr[19] = aot_run_words[9];
ctx.gpr[20] = aot_run_words[10];
ctx.gpr[21] = aot_run_words[11];
ctx.gpr[22] = aot_run_words[12];
ctx.gpr[23] = aot_run_words[13];
ctx.gpr[30] = aot_run_words[14];
aot_gpr_31 = aot_run_words[15];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(336));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889CFB8:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_gpr_31);
aot_gpr_4 = (2238u << 16u);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-6992));
ctx.gpr[7] = (2185u << 16u);
ctx.gpr[7] = (ctx.gpr[7] + static_cast<std::uint32_t>(6516));
aot_gpr_5 = (0u | 1u);
aot_gpr_31 = (0x0889CFDCu);
aot_gpr_6 = (0u | 352u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0215.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 198u, 0x0889CFDCu, 0x08B60C7Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem);
#else
recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CFDCu) goto L_0889CFDC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889CFDC:
aot_gpr_31 = (0x0889CFE4u);
aot_gpr_4 = (ctx.gpr[28] + static_cast<std::uint32_t>(-25440));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B60680, 215u, 68u, 0x08B60680u>(ctx, &aot_mem, ctx.pc, ctx.gpr[1], aot_gpr_2, aot_gpr_4, aot_gpr_5, ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0215_entry, 215u, 68u, 0x08B60680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CFE4u) goto L_0889CFE4;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889CFE4:
aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast<std::uint32_t>(7636), 0u);
aot_gpr_31 = (0x0889CFF0u);
aot_gpr_4 = (ctx.gpr[28] + static_cast<std::uint32_t>(-25428));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B60680, 215u, 68u, 0x08B60680u>(ctx, &aot_mem, ctx.pc, ctx.gpr[1], aot_gpr_2, aot_gpr_4, aot_gpr_5, ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0215_entry, 215u, 68u, 0x08B60680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CFF0u) goto L_0889CFF0;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889CFF0:
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889CFFC:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-112));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(100), ctx.gpr[17]);
ctx.gpr[17] = (aot_gpr_5 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(96), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(104), ctx.gpr[18]);
ctx.gpr[16] = (aot_gpr_6 | 0u);
ctx.gpr[18] = (aot_gpr_4 | 0u);
aot_gpr_5 = (0u | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(108), aot_gpr_31);
aot_gpr_31 = (0x0889D028u);
aot_gpr_6 = (aot_gpr_29 | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0120.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 202u, 0x0889D028u, 0x089E69E8u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 547u, aot_mem);
#else
recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 547u, 0x089E69E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D028u) goto L_0889D028;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D028:
aot_gpr_5 = (ctx.gpr[28] + static_cast<std::uint32_t>(-25416));
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889D038u);
aot_gpr_6 = (aot_gpr_29 | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0120.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 203u, 0x0889D038u, 0x089E6F54u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 622u, aot_mem);
#else
recomp_unit_0120_entry(rt, ctx, 622u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 622u, 0x089E6F54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D038u) goto L_0889D038;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D038:
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(8)));
aot_gpr_31 = (0x0889D044u);
aot_gpr_5 = (ctx.gpr[28] + static_cast<std::uint32_t>(-25412));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0213.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 204u, 0x0889D044u, 0x08B582CCu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem);
#else
recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D044u) goto L_0889D044;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D044:
{ const bool branch_taken = aot_gpr_2 != 0u;
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
if (branch_taken) {
goto L_0889D058;
}
goto L_0889D04C;
}
L_0889D04C:
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(-1));
{ const bool branch_taken = ctx.gpr[17] == 0u;
if (branch_taken) {
goto L_0889D068;
}
goto L_0889D058;
}
L_0889D058:
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889D088;
}
goto L_0889D060;
}
L_0889D060:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889D090;
}
goto L_0889D068;
}
L_0889D068:
aot_gpr_6 = (aot_gpr_4 | 0u);
aot_gpr_5 = (2232u << 16u);
aot_gpr_4 = (ctx.gpr[18] | 0u);
ctx.gpr[7] = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889D080u);
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-22816));
goto L_0889D1FC;
L_0889D080:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889D0AC;
}
goto L_0889D088;
}
L_0889D088:
aot_gpr_4 = (ctx.gpr[28] + static_cast<std::uint32_t>(-25404));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_4);
goto L_0889D090;
L_0889D090:
ctx.gpr[7] = (aot_gpr_4 | 0u);
aot_gpr_5 = (2232u << 16u);
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_6 = (ctx.gpr[17] | 0u);
ctx.gpr[8] = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889D0ACu);
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-22784));
goto L_0889D1FC;
L_0889D0AC:
{ std::uint32_t aot_run_words[4]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(96), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
ctx.gpr[18] = aot_run_words[2];
aot_gpr_31 = aot_run_words[3];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(112));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889D0C4:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
ctx.gpr[17] = (aot_gpr_6 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[18]);
aot_gpr_6 = (2232u << 16u);
ctx.gpr[16] = (aot_gpr_5 | 0u);
ctx.gpr[18] = (aot_gpr_4 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), ctx.gpr[19]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_gpr_31);
aot_gpr_31 = (0x0889D0F4u);
ctx.gpr[19] = (aot_gpr_6 + static_cast<std::uint32_t>(-22752));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806888, 0u, 324u, 0x08806888u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 324u, 0x08806888u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D0F4u) goto L_0889D0F4;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D0F4:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889D100u);
aot_gpr_5 = (aot_gpr_2 | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 215u, 0x0889D100u, 0x088068B4u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 327u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 327u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 327u, 0x088068B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D100u) goto L_0889D100;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D100:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_5 = (ctx.gpr[19] | 0u);
aot_gpr_6 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889D114u);
ctx.gpr[7] = (aot_gpr_2 | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 216u, 0x0889D114u, 0x08806F24u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 440u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 440u, 0x08806F24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D114u) goto L_0889D114;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D114:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_5 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889D124u);
aot_gpr_6 = (aot_gpr_2 | 0u);
goto L_0889CFFC;
L_0889D124:
{ std::uint32_t aot_run_words[5]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
ctx.gpr[18] = aot_run_words[2];
ctx.gpr[19] = aot_run_words[3];
aot_gpr_31 = aot_run_words[4];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(32));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889D140:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
ctx.gpr[16] = (aot_gpr_5 | 0u);
ctx.gpr[17] = (aot_gpr_4 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_31);
aot_gpr_31 = (0x0889D160u);
aot_gpr_5 = (aot_gpr_6 | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 219u, 0x0889D160u, 0x088068B4u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 327u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 327u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 327u, 0x088068B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D160u) goto L_0889D160;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D160:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_5 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889D170u);
aot_gpr_6 = (aot_gpr_2 | 0u);
goto L_0889D0C4;
L_0889D170:
{ std::uint32_t aot_run_words[3]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
aot_gpr_31 = aot_run_words[2];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889D184:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-112));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(96), ctx.gpr[16]);
ctx.gpr[16] = (aot_gpr_4 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(100), aot_gpr_31);
aot_gpr_31 = (0x0889D19Cu);
aot_gpr_6 = (aot_gpr_29 | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0120.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 222u, 0x0889D19Cu, 0x089E69E8u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 547u, aot_mem);
#else
recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 547u, 0x089E69E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D19Cu) goto L_0889D19C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D19C:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889D1DC;
}
goto L_0889D1A4;
}
L_0889D1A4:
aot_gpr_5 = (ctx.gpr[28] + static_cast<std::uint32_t>(-25400));
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889D1B4u);
aot_gpr_6 = (aot_gpr_29 | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0120.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 224u, 0x0889D1B4u, 0x089E6F54u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 622u, aot_mem);
#else
recomp_unit_0120_entry(rt, ctx, 622u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 622u, 0x089E6F54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D1B4u) goto L_0889D1B4;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D1B4:
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(20)));
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_4) <= 0;
if (branch_taken) {
goto L_0889D1DC;
}
goto L_0889D1C0;
}
L_0889D1C0:
ctx.gpr[7] = (aot_gpr_4 | 0u);
aot_gpr_5 = (ctx.gpr[28] + static_cast<std::uint32_t>(-25396));
aot_gpr_6 = (aot_gpr_29 + static_cast<std::uint32_t>(32));
aot_gpr_31 = (0x0889D1D4u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 226u, 0x0889D1D4u, 0x08806F24u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 440u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 440u, 0x08806F24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D1D4u) goto L_0889D1D4;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D1D4:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889D1EC;
}
goto L_0889D1DC;
}
L_0889D1DC:
aot_gpr_5 = (ctx.gpr[28] + static_cast<std::uint32_t>(-25388));
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889D1ECu);
aot_gpr_6 = (0u | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 228u, 0x0889D1ECu, 0x08806DE0u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D1ECu) goto L_0889D1EC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D1EC:
ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(96)));
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(100)));
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(112));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889D1FC:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-64));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[16]);
ctx.gpr[16] = (aot_gpr_4 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(40), aot_gpr_6);
aot_gpr_4 = (0u << 16u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(44), ctx.gpr[7]);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(32));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(48), ctx.gpr[8]);
aot_gpr_4 = (aot_gpr_4 & 65535u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(52), ctx.gpr[9]);
aot_gpr_4 = (aot_gpr_29 + aot_gpr_4);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), ctx.gpr[18]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(56), ctx.gpr[10]);
ctx.gpr[18] = (aot_gpr_4 + static_cast<std::uint32_t>(8));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[17]);
ctx.gpr[17] = (aot_gpr_5 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(60), ctx.gpr[11]);
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_gpr_31);
aot_gpr_31 = (0x0889D250u);
aot_gpr_5 = (0u | 1u);
goto L_0889D184;
L_0889D250:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_5 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889D260u);
aot_gpr_6 = (ctx.gpr[18] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 231u, 0x0889D260u, 0x08806EC0u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 436u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 436u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 436u, 0x08806EC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D260u) goto L_0889D260;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D260:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889D26Cu);
aot_gpr_5 = (0u | 2u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 232u, 0x0889D26Cu, 0x08807904u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 546u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 546u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 546u, 0x08807904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D26Cu) goto L_0889D26C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D26C:
aot_gpr_31 = (0x0889D274u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 233u, 0x0889D274u, 0x08807890u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 538u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 538u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 538u, 0x08807890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D274u) goto L_0889D274;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D274:
{ std::uint32_t aot_run_words[4]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
ctx.gpr[18] = aot_run_words[2];
aot_gpr_31 = aot_run_words[3];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(64));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889D28C:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
ctx.gpr[16] = (aot_gpr_5 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_31);
aot_gpr_31 = (0x0889D2A8u);
ctx.gpr[17] = (aot_gpr_4 | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 235u, 0x0889D2A8u, 0x08806E68u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D2A8u) goto L_0889D2A8;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D2A8:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889D2B4u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-10000));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 236u, 0x0889D2B4u, 0x08807148u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D2B4u) goto L_0889D2B4;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D2B4:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889D2C0u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-1));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806888, 0u, 324u, 0x08806888u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 324u, 0x08806888u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D2C0u) goto L_0889D2C0;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D2C0:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889D2D0;
}
goto L_0889D2C8;
}
L_0889D2C8:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 0u);
if (branch_taken) {
goto L_0889D330;
}
goto L_0889D2D0;
}
L_0889D2D0:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889D2DCu);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806654, 0u, 303u, 0x08806654u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 303u, 0x08806654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D2DCu) goto L_0889D2DC;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D2DC:
aot_gpr_31 = (0x0889D2E4u);
aot_gpr_4 = (ctx.gpr[17] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 241u, 0x0889D2E4u, 0x08807220u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D2E4u) goto L_0889D2E4;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D2E4:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889D2F0u);
aot_gpr_5 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 242u, 0x0889D2F0u, 0x08806E68u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D2F0u) goto L_0889D2F0;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D2F0:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889D2FCu);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0880682C, 0u, 322u, 0x0880682Cu>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[16], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 322u, 0x0880682Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D2FCu) goto L_0889D2FC;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D2FC:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889D308u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-10000));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 244u, 0x0889D308u, 0x08807414u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D308u) goto L_0889D308;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D308:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889D314u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-1));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0880682C, 0u, 322u, 0x0880682Cu>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[16], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 322u, 0x0880682Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D314u) goto L_0889D314;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D314:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889D320u);
aot_gpr_5 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 246u, 0x0889D320u, 0x08806E68u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D320u) goto L_0889D320;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D320:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889D32Cu);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-10000));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 247u, 0x0889D32Cu, 0x08807414u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D32Cu) goto L_0889D32C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D32C:
aot_gpr_2 = (0u | 1u);
goto L_0889D330;
L_0889D330:
{ std::uint32_t aot_run_words[3]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
aot_gpr_31 = aot_run_words[2];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889D344:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_31);
aot_gpr_31 = (0x0889D358u);
ctx.gpr[16] = (aot_gpr_4 | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 250u, 0x0889D358u, 0x08806E68u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D358u) goto L_0889D358;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D358:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889D364u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-10000));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 251u, 0x0889D364u, 0x08807148u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D364u) goto L_0889D364;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D364:
ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889D374:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
ctx.gpr[17] = (aot_gpr_5 | 0u);
ctx.gpr[16] = (aot_gpr_6 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[18]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_gpr_31);
aot_gpr_31 = (0x0889D398u);
ctx.gpr[18] = (aot_gpr_4 | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 253u, 0x0889D398u, 0x08807294u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 466u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 466u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 466u, 0x08807294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D398u) goto L_0889D398;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D398:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889D3E8;
}
goto L_0889D3A0;
}
L_0889D3A0:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889D3ACu);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-10000));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 255u, 0x0889D3ACu, 0x08807148u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D3ACu) goto L_0889D3AC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D3AC:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889D3B8u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-1));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 256u, 0x0889D3B8u, 0x08806B2Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D3B8u) goto L_0889D3B8;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D3B8:
aot_gpr_4 = (aot_gpr_2 | 0u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889D3D4;
}
goto L_0889D3C4;
}
L_0889D3C4:
aot_gpr_31 = (0x0889D3CCu);
aot_gpr_5 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0213.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 258u, 0x0889D3CCu, 0x08B582CCu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem);
#else
recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D3CCu) goto L_0889D3CC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D3CC:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889D3F0;
}
goto L_0889D3D4;
}
L_0889D3D4:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889D3E0u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806654, 0u, 303u, 0x08806654u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 303u, 0x08806654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D3E0u) goto L_0889D3E0;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D3E0:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 0u);
if (branch_taken) {
goto L_0889D408;
}
goto L_0889D3E8;
}
L_0889D3E8:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 0u);
if (branch_taken) {
goto L_0889D408;
}
goto L_0889D3F0;
}
L_0889D3F0:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889D3FCu);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806654, 0u, 303u, 0x08806654u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 303u, 0x08806654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D3FCu) goto L_0889D3FC;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D3FC:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889D408u);
aot_gpr_5 = (ctx.gpr[17] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 264u, 0x0889D408u, 0x08806C5Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 397u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 397u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 397u, 0x08806C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D408u) goto L_0889D408;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D408:
{ std::uint32_t aot_run_words[4]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
ctx.gpr[18] = aot_run_words[2];
aot_gpr_31 = aot_run_words[3];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889D420:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
ctx.gpr[17] = (aot_gpr_4 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_31);
aot_gpr_31 = (0x0889D43Cu);
ctx.gpr[16] = (aot_gpr_6 | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 266u, 0x0889D43Cu, 0x088064C0u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 286u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 286u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 286u, 0x088064C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D43Cu) goto L_0889D43C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D43C:
{ const bool branch_taken = aot_gpr_2 != 0u;
if (branch_taken) {
goto L_0889D458;
}
goto L_0889D444;
}
L_0889D444:
aot_gpr_5 = (2232u << 16u);
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_6 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889D458u);
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-22732));
goto L_0889D1FC;
L_0889D458:
{ std::uint32_t aot_run_words[3]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
aot_gpr_31 = aot_run_words[2];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889D46C:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
ctx.gpr[17] = (aot_gpr_5 | 0u);
ctx.gpr[16] = (aot_gpr_6 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[18]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_gpr_31);
aot_gpr_31 = (0x0889D490u);
ctx.gpr[18] = (aot_gpr_4 | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806888, 0u, 324u, 0x08806888u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 324u, 0x08806888u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D490u) goto L_0889D490;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D490:
{ const bool branch_taken = aot_gpr_2 == ctx.gpr[16];
if (branch_taken) {
goto L_0889D4A8;
}
goto L_0889D498;
}
L_0889D498:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_5 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889D4A8u);
aot_gpr_6 = (ctx.gpr[16] | 0u);
goto L_0889D140;
L_0889D4A8:
{ std::uint32_t aot_run_words[4]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
ctx.gpr[18] = aot_run_words[2];
aot_gpr_31 = aot_run_words[3];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889D4C0:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
ctx.gpr[16] = (aot_gpr_5 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_31);
aot_gpr_31 = (0x0889D4DCu);
ctx.gpr[17] = (aot_gpr_4 | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806888, 0u, 324u, 0x08806888u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 324u, 0x08806888u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D4DCu) goto L_0889D4DC;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D4DC:
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-1));
{ const bool branch_taken = aot_gpr_2 != aot_gpr_4;
if (branch_taken) {
goto L_0889D4F8;
}
goto L_0889D4E8;
}
L_0889D4E8:
aot_gpr_6 = (ctx.gpr[28] + static_cast<std::uint32_t>(-25384));
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889D4F8u);
aot_gpr_5 = (ctx.gpr[16] | 0u);
goto L_0889CFFC;
L_0889D4F8:
{ std::uint32_t aot_run_words[3]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
aot_gpr_31 = aot_run_words[2];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889D50C:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
ctx.gpr[17] = (aot_gpr_5 | 0u);
ctx.gpr[16] = (aot_gpr_6 | 0u);
{ const std::uint32_t aot_run_words[3]{ctx.gpr[18], ctx.gpr[19], aot_gpr_31};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_run_words); }
aot_gpr_31 = (0x0889D534u);
ctx.gpr[18] = (aot_gpr_4 | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 278u, 0x0889D534u, 0x08806B2Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D534u) goto L_0889D534;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D534:
ctx.gpr[19] = (aot_gpr_2 | 0u);
{ const bool branch_taken = ctx.gpr[19] != 0u;
if (branch_taken) {
goto L_0889D550;
}
goto L_0889D540;
}
L_0889D540:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_5 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889D550u);
aot_gpr_6 = (0u | 4u);
goto L_0889D140;
L_0889D550:
{ const bool branch_taken = ctx.gpr[16] == 0u;
if (branch_taken) {
goto L_0889D568;
}
goto L_0889D558;
}
L_0889D558:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889D564u);
aot_gpr_5 = (ctx.gpr[17] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 282u, 0x0889D564u, 0x08806BD8u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 387u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 387u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 387u, 0x08806BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D564u) goto L_0889D564;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D564:
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(0), aot_gpr_2);
goto L_0889D568;
L_0889D568:
aot_gpr_2 = (ctx.gpr[19] | 0u);
{ std::uint32_t aot_run_words[5]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
ctx.gpr[18] = aot_run_words[2];
ctx.gpr[19] = aot_run_words[3];
aot_gpr_31 = aot_run_words[4];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(32));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889D588:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
{ const std::uint32_t aot_run_words[3]{ctx.gpr[16], ctx.gpr[17], ctx.gpr[18]};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
ctx.gpr[16] = (ctx.gpr[7] | 0u);
ctx.gpr[18] = (aot_gpr_5 | 0u);
ctx.gpr[17] = (aot_gpr_6 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), ctx.gpr[19]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_gpr_31);
aot_gpr_31 = (0x0889D5B4u);
ctx.gpr[19] = (aot_gpr_4 | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806888, 0u, 324u, 0x08806888u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 324u, 0x08806888u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D5B4u) goto L_0889D5B4;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D5B4:
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_2) > 0;
if (branch_taken) {
goto L_0889D5E4;
}
goto L_0889D5BC;
}
L_0889D5BC:
{ const bool branch_taken = ctx.gpr[16] == 0u;
if (branch_taken) {
goto L_0889D5DC;
}
goto L_0889D5C4;
}
L_0889D5C4:
{ const bool branch_taken = ctx.gpr[17] == 0u;
aot_gpr_4 = (0u | 0u);
if (branch_taken) {
goto L_0889D5D8;
}
goto L_0889D5CC;
}
L_0889D5CC:
aot_gpr_31 = (0x0889D5D4u);
aot_gpr_4 = (ctx.gpr[17] | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B58974, 213u, 150u, 0x08B58974u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0213_entry, 213u, 150u, 0x08B58974u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D5D4u) goto L_0889D5D4;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D5D4:
aot_gpr_4 = (aot_gpr_2 | 0u);
goto L_0889D5D8;
L_0889D5D8:
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(0), aot_gpr_4);
goto L_0889D5DC;
L_0889D5DC:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (ctx.gpr[17] | 0u);
if (branch_taken) {
goto L_0889D5F4;
}
goto L_0889D5E4;
}
L_0889D5E4:
aot_gpr_4 = (ctx.gpr[19] | 0u);
aot_gpr_5 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889D5F4u);
aot_gpr_6 = (ctx.gpr[16] | 0u);
goto L_0889D50C;
L_0889D5F4:
{ std::uint32_t aot_run_words[5]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
ctx.gpr[18] = aot_run_words[2];
ctx.gpr[19] = aot_run_words[3];
aot_gpr_31 = aot_run_words[4];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(32));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889D610:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[16]);
ctx.gpr[16] = (aot_gpr_5 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(aot_fpr_20));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[17]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_gpr_31);
aot_gpr_31 = (0x0889D630u);
ctx.gpr[17] = (aot_gpr_4 | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806A88, 0u, 360u, 0x08806A88u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 360u, 0x08806A88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D630u) goto L_0889D630;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D630:
aot_fpr_20 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
aot_fpr_12 = std::bit_cast<float>(0u);
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_20) || std::isnan(aot_fpr_12)) && aot_fpr_20 == aot_fpr_12)) ? 0x00800000u : 0u);
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
aot_gpr_4 = (ctx.gpr[17] | 0u);
if (branch_taken) {
goto L_0889D668;
}
goto L_0889D648;
}
L_0889D648:
aot_gpr_31 = (0x0889D650u);
aot_gpr_5 = (ctx.gpr[16] | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0880692C, 0u, 337u, 0x0880692Cu>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[16], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 337u, 0x0880692Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D650u) goto L_0889D650;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D650:
{ const bool branch_taken = aot_gpr_2 != 0u;
if (branch_taken) {
goto L_0889D668;
}
goto L_0889D658;
}
L_0889D658:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_5 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889D668u);
aot_gpr_6 = (0u | 3u);
goto L_0889D140;
L_0889D668:
ctx.fpr[0] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(aot_fpr_20));
{ std::uint32_t aot_run_words[4]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
aot_fpr_20 = std::bit_cast<float>(aot_run_words[0]);
ctx.gpr[16] = aot_run_words[1];
ctx.gpr[17] = aot_run_words[2];
aot_gpr_31 = aot_run_words[3];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889D684:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(aot_fpr_20));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[16]);
aot_fpr_20 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(aot_fpr_12));
ctx.gpr[16] = (aot_gpr_5 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[17]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_gpr_31);
aot_gpr_31 = (0x0889D6A8u);
ctx.gpr[17] = (aot_gpr_4 | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806888, 0u, 324u, 0x08806888u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 324u, 0x08806888u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D6A8u) goto L_0889D6A8;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D6A8:
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_2) > 0;
if (branch_taken) {
goto L_0889D6B8;
}
goto L_0889D6B0;
}
L_0889D6B0:
{ const bool branch_taken = 0u == 0u;
ctx.fpr[0] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(aot_fpr_20));
if (branch_taken) {
goto L_0889D6C4;
}
goto L_0889D6B8;
}
L_0889D6B8:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889D6C4u);
aot_gpr_5 = (ctx.gpr[16] | 0u);
goto L_0889D610;
L_0889D6C4:
{ std::uint32_t aot_run_words[4]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
aot_fpr_20 = std::bit_cast<float>(aot_run_words[0]);
ctx.gpr[16] = aot_run_words[1];
ctx.gpr[17] = aot_run_words[2];
aot_gpr_31 = aot_run_words[3];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889D6DC:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
ctx.gpr[17] = (aot_gpr_4 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_31);
aot_gpr_31 = (0x0889D6F8u);
ctx.gpr[16] = (aot_gpr_6 | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 306u, 0x0889D6F8u, 0x08807294u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 466u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 466u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 466u, 0x08807294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D6F8u) goto L_0889D6F8;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D6F8:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889D740;
}
goto L_0889D700;
}
L_0889D700:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889D70Cu);
aot_gpr_5 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 308u, 0x0889D70Cu, 0x08806E68u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D70Cu) goto L_0889D70C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D70C:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889D718u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 309u, 0x0889D718u, 0x08807148u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D718u) goto L_0889D718;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D718:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889D724u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-1));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806888, 0u, 324u, 0x08806888u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 324u, 0x08806888u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D724u) goto L_0889D724;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D724:
{ const bool branch_taken = aot_gpr_2 != 0u;
if (branch_taken) {
goto L_0889D748;
}
goto L_0889D72C;
}
L_0889D72C:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889D738u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-3));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806654, 0u, 303u, 0x08806654u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 303u, 0x08806654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D738u) goto L_0889D738;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D738:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 0u);
if (branch_taken) {
goto L_0889D758;
}
goto L_0889D740;
}
L_0889D740:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 0u);
if (branch_taken) {
goto L_0889D758;
}
goto L_0889D748;
}
L_0889D748:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889D754u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 315u, 0x0889D754u, 0x088066C0u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 310u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 310u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 310u, 0x088066C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D754u) goto L_0889D754;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D754:
aot_gpr_2 = (0u | 1u);
goto L_0889D758;
L_0889D758:
{ std::uint32_t aot_run_words[3]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
aot_gpr_31 = aot_run_words[2];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889D76C:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[18]);
ctx.gpr[18] = (aot_gpr_4 | 0u);
ctx.gpr[17] = (aot_gpr_5 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_gpr_31);
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_5) > 0;
ctx.gpr[16] = (aot_gpr_6 | 0u);
if (branch_taken) {
goto L_0889D7B0;
}
goto L_0889D790;
}
L_0889D790:
aot_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[17]) < -9999 ? 1u : 0u);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889D7B0;
}
goto L_0889D79C;
}
L_0889D79C:
aot_gpr_31 = (0x0889D7A4u);
aot_gpr_4 = (ctx.gpr[18] | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806634, 0u, 302u, 0x08806634u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 302u, 0x08806634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D7A4u) goto L_0889D7A4;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D7A4:
ctx.gpr[17] = (aot_gpr_2 + ctx.gpr[17]);
{ const bool branch_taken = 0u == 0u;
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(1));
if (branch_taken) {
goto L_0889D7B0;
}
goto L_0889D7B0;
}
L_0889D7B0:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_5 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889D7C0u);
aot_gpr_6 = (ctx.gpr[16] | 0u);
goto L_0889D6DC;
L_0889D7C0:
{ const bool branch_taken = aot_gpr_2 != 0u;
if (branch_taken) {
goto L_0889D7D0;
}
goto L_0889D7C8;
}
L_0889D7C8:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 0u);
if (branch_taken) {
goto L_0889D7F4;
}
goto L_0889D7D0;
}
L_0889D7D0:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889D7DCu);
aot_gpr_5 = (ctx.gpr[17] | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0880682C, 0u, 322u, 0x0880682Cu>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[16], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 322u, 0x0880682Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D7DCu) goto L_0889D7DC;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D7DC:
aot_gpr_4 = (ctx.gpr[18] | 0u);
ctx.gpr[16] = (0u | 1u);
aot_gpr_5 = (0u | 1u);
aot_gpr_31 = (0x0889D7F0u);
aot_gpr_6 = (0u | 1u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 326u, 0x0889D7F0u, 0x08807644u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 508u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 508u, 0x08807644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D7F0u) goto L_0889D7F0;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D7F0:
aot_gpr_2 = (ctx.gpr[16] | 0u);
goto L_0889D7F4;
L_0889D7F4:
{ std::uint32_t aot_run_words[4]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
ctx.gpr[18] = aot_run_words[2];
aot_gpr_31 = aot_run_words[3];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889D80C:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
{ const std::uint32_t aot_run_words[3]{ctx.gpr[17], ctx.gpr[18], ctx.gpr[19]};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_run_words); }
ctx.gpr[18] = (aot_gpr_4 | 0u);
ctx.gpr[19] = (aot_gpr_5 | 0u);
ctx.gpr[17] = (aot_gpr_6 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
{ const std::uint32_t aot_run_words[3]{ctx.gpr[20], ctx.gpr[21], aot_gpr_31};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_run_words); }
{ const bool branch_taken = aot_gpr_5 == 0u;
ctx.gpr[16] = (ctx.gpr[7] | 0u);
if (branch_taken) {
goto L_0889D8B4;
}
goto L_0889D840;
}
L_0889D840:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889D84Cu);
aot_gpr_5 = (ctx.gpr[19] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 330u, 0x0889D84Cu, 0x08806E68u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D84Cu) goto L_0889D84C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D84C:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889D858u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-10001));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 331u, 0x0889D858u, 0x088070DCu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D858u) goto L_0889D858;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D858:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889D864u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-1));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806888, 0u, 324u, 0x08806888u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 324u, 0x08806888u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D864u) goto L_0889D864;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D864:
{ const bool branch_taken = aot_gpr_2 != 0u;
if (branch_taken) {
goto L_0889D8A4;
}
goto L_0889D86C;
}
L_0889D86C:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889D878u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806654, 0u, 303u, 0x08806654u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 303u, 0x08806654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D878u) goto L_0889D878;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D878:
aot_gpr_31 = (0x0889D880u);
aot_gpr_4 = (ctx.gpr[18] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 335u, 0x0889D880u, 0x08807220u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D880u) goto L_0889D880;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D880:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889D88Cu);
aot_gpr_5 = (ctx.gpr[19] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 336u, 0x0889D88Cu, 0x08806E68u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D88Cu) goto L_0889D88C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D88C:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889D898u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0880682C, 0u, 322u, 0x0880682Cu>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[16], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 322u, 0x0880682Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D898u) goto L_0889D898;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D898:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889D8A4u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-10001));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_088073CC, 0u, 483u, 0x088073CCu>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[16], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 483u, 0x088073CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D8A4u) goto L_0889D8A4;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D8A4:
aot_gpr_5 = (ctx.gpr[16] + static_cast<std::uint32_t>(1));
aot_gpr_5 = (0u - aot_gpr_5);
aot_gpr_31 = (0x0889D8B4u);
aot_gpr_4 = (ctx.gpr[18] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 339u, 0x0889D8B4u, 0x0880673Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D8B4u) goto L_0889D8B4;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D8B4:
ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(0)));
{ const bool branch_taken = ctx.gpr[20] == 0u;
ctx.gpr[21] = (ctx.gpr[16] + static_cast<std::uint32_t>(1));
if (branch_taken) {
goto L_0889D930;
}
goto L_0889D8C0;
}
L_0889D8C0:
ctx.gpr[19] = (ctx.gpr[16] + static_cast<std::uint32_t>(3));
ctx.gpr[21] = (0u - ctx.gpr[21]);
ctx.gpr[19] = (0u - ctx.gpr[19]);
goto L_0889D8CC;
L_0889D8CC:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889D8D8u);
aot_gpr_5 = (ctx.gpr[20] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 342u, 0x0889D8D8u, 0x08806E68u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D8D8u) goto L_0889D8D8;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D8D8:
ctx.gpr[20] = (0u | 0u);
aot_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[20]) < static_cast<std::int32_t>(ctx.gpr[16]) ? 1u : 0u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889D904;
}
goto L_0889D8E8;
}
L_0889D8E8:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889D8F4u);
aot_gpr_5 = (ctx.gpr[21] | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0880682C, 0u, 322u, 0x0880682Cu>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[16], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 322u, 0x0880682Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D8F4u) goto L_0889D8F4;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D8F4:
ctx.gpr[20] = (ctx.gpr[20] + static_cast<std::uint32_t>(1));
aot_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[20]) < static_cast<std::int32_t>(ctx.gpr[16]) ? 1u : 0u);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889D8E8;
}
goto L_0889D904;
}
L_0889D904:
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889D914u);
aot_gpr_6 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 346u, 0x0889D914u, 0x08806FA8u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D914u) goto L_0889D914;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D914:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889D920u);
aot_gpr_5 = (ctx.gpr[19] | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_088073CC, 0u, 483u, 0x088073CCu>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[16], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 483u, 0x088073CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D920u) goto L_0889D920;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D920:
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(8));
ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(0)));
{ const bool branch_taken = ctx.gpr[20] != 0u;
if (branch_taken) {
goto L_0889D8CC;
}
goto L_0889D930;
}
L_0889D930:
aot_gpr_5 = (0u - ctx.gpr[16]);
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
aot_gpr_31 = (0x0889D940u);
aot_gpr_4 = (ctx.gpr[18] | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806654, 0u, 303u, 0x08806654u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 303u, 0x08806654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D940u) goto L_0889D940;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D940:
{ std::uint32_t aot_run_words[7]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
ctx.gpr[18] = aot_run_words[2];
ctx.gpr[19] = aot_run_words[3];
ctx.gpr[20] = aot_run_words[4];
ctx.gpr[21] = aot_run_words[5];
aot_gpr_31 = aot_run_words[6];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(32));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889D964:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
ctx.gpr[16] = (aot_gpr_5 | 0u);
ctx.gpr[17] = (aot_gpr_4 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[18]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_gpr_31);
aot_gpr_31 = (0x0889D988u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-1));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806A88, 0u, 360u, 0x08806A88u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 360u, 0x08806A88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D988u) goto L_0889D988;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D988:
aot_fpr_12 = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0]));
ctx.gpr[18] = (std::bit_cast<std::uint32_t>(aot_fpr_12));
{ const bool branch_taken = ctx.gpr[18] != 0u;
aot_gpr_4 = (ctx.gpr[17] | 0u);
if (branch_taken) {
goto L_0889D9AC;
}
goto L_0889D998;
}
L_0889D998:
aot_gpr_31 = (0x0889D9A0u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-1));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0880692C, 0u, 337u, 0x0880692Cu>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[16], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 337u, 0x0880692Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D9A0u) goto L_0889D9A0;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D9A0:
{ const bool branch_taken = aot_gpr_2 != 0u;
if (branch_taken) {
goto L_0889D9AC;
}
goto L_0889D9A8;
}
L_0889D9A8:
ctx.gpr[18] = (0u + static_cast<std::uint32_t>(-1));
goto L_0889D9AC;
L_0889D9AC:
aot_gpr_5 = (0u - ctx.gpr[16]);
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
aot_gpr_31 = (0x0889D9BCu);
aot_gpr_4 = (ctx.gpr[17] | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806654, 0u, 303u, 0x08806654u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 303u, 0x08806654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D9BCu) goto L_0889D9BC;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889D9BC:
aot_gpr_2 = (ctx.gpr[18] | 0u);
{ std::uint32_t aot_run_words[4]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
ctx.gpr[18] = aot_run_words[2];
aot_gpr_31 = aot_run_words[3];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889D9D8:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
ctx.gpr[16] = (aot_gpr_4 | 0u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-10000));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_31);
aot_gpr_31 = (0x0889D9F4u);
aot_gpr_6 = (0u | 2u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 358u, 0x0889D9F4u, 0x088071ACu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D9F4u) goto L_0889D9F4;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889D9F4:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889DA00u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-1));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806888, 0u, 324u, 0x08806888u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 324u, 0x08806888u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DA00u) goto L_0889DA00;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889DA00:
{ const bool branch_taken = aot_gpr_2 != 0u;
if (branch_taken) {
goto L_0889DA7C;
}
goto L_0889DA08;
}
L_0889DA08:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889DA14u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806654, 0u, 303u, 0x08806654u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 303u, 0x08806654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DA14u) goto L_0889DA14;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889DA14:
aot_gpr_31 = (0x0889DA1Cu);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 362u, 0x0889DA1Cu, 0x08807220u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DA1Cu) goto L_0889DA1C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DA1C:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889DA28u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-1));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0880682C, 0u, 322u, 0x0880682Cu>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[16], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 322u, 0x0880682Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DA28u) goto L_0889DA28;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889DA28:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889DA34u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 364u, 0x0889DA34u, 0x08807510u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 492u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 492u, 0x08807510u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DA34u) goto L_0889DA34;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DA34:
aot_gpr_5 = (ctx.gpr[28] + static_cast<std::uint32_t>(-25368));
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889DA44u);
aot_gpr_6 = (0u | 6u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 365u, 0x0889DA44u, 0x08806DE0u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DA44u) goto L_0889DA44;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DA44:
aot_gpr_5 = (ctx.gpr[28] + static_cast<std::uint32_t>(-25360));
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889DA54u);
aot_gpr_6 = (0u | 1u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 366u, 0x0889DA54u, 0x08806DE0u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DA54u) goto L_0889DA54;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DA54:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889DA60u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-3));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 367u, 0x0889DA60u, 0x08807414u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DA60u) goto L_0889DA60;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DA60:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889DA6Cu);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-1));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0880682C, 0u, 322u, 0x0880682Cu>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[16], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 322u, 0x0880682Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DA6Cu) goto L_0889DA6C;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889DA6C:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-10000));
aot_gpr_31 = (0x0889DA7Cu);
aot_gpr_6 = (0u | 2u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 369u, 0x0889DA7Cu, 0x0880748Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 489u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 489u, 0x0880748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DA7Cu) goto L_0889DA7C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DA7C:
ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889DA8C:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(aot_fpr_20));
aot_fpr_20 = std::bit_cast<float>(aot_gpr_6);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[17]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), ctx.gpr[18]);
aot_fpr_20 = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(aot_fpr_20)));
ctx.gpr[18] = (ctx.gpr[28] + static_cast<std::uint32_t>(-25416));
ctx.gpr[17] = (aot_gpr_4 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_gpr_31);
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_5) > 0;
ctx.gpr[16] = (aot_gpr_5 | 0u);
if (branch_taken) {
goto L_0889DADC;
}
goto L_0889DABC;
}
L_0889DABC:
aot_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[16]) < -9999 ? 1u : 0u);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889DADC;
}
goto L_0889DAC8;
}
L_0889DAC8:
aot_gpr_31 = (0x0889DAD0u);
aot_gpr_4 = (ctx.gpr[17] | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806634, 0u, 302u, 0x08806634u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 302u, 0x08806634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DAD0u) goto L_0889DAD0;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889DAD0:
ctx.gpr[16] = (aot_gpr_2 + ctx.gpr[16]);
{ const bool branch_taken = 0u == 0u;
ctx.gpr[16] = (ctx.gpr[16] + static_cast<std::uint32_t>(1));
if (branch_taken) {
goto L_0889DADC;
}
goto L_0889DADC;
}
L_0889DADC:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_5 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889DAECu);
aot_gpr_6 = (0u | 1u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 375u, 0x0889DAECu, 0x08806DE0u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DAECu) goto L_0889DAEC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DAEC:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889DAF8u);
aot_gpr_5 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 376u, 0x0889DAF8u, 0x08807148u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DAF8u) goto L_0889DAF8;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DAF8:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889DB04u);
aot_gpr_5 = (0u | 1u);
goto L_0889D964;
L_0889DB04:
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_2) < 0;
if (branch_taken) {
goto L_0889DB3C;
}
goto L_0889DB0C;
}
L_0889DB0C:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_5 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889DB1Cu);
aot_gpr_6 = (0u | 1u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 379u, 0x0889DB1Cu, 0x08806DE0u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DB1Cu) goto L_0889DB1C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DB1C:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889DB28u);
aot_fpr_12 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(aot_fpr_20));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806DC0, 0u, 425u, 0x08806DC0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_31, aot_fpr_12); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 425u, 0x08806DC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DB28u) goto L_0889DB28;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889DB28:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889DB34u);
aot_gpr_5 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 381u, 0x0889DB34u, 0x08807414u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DB34u) goto L_0889DB34;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DB34:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889DB74;
}
goto L_0889DB3C;
}
L_0889DB3C:
aot_gpr_31 = (0x0889DB44u);
aot_gpr_4 = (ctx.gpr[17] | 0u);
goto L_0889D9D8;
L_0889DB44:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889DB50u);
aot_gpr_5 = (ctx.gpr[16] | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0880682C, 0u, 322u, 0x0880682Cu>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[16], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 322u, 0x0880682Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DB50u) goto L_0889DB50;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889DB50:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889DB5Cu);
aot_fpr_12 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(aot_fpr_20));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806DC0, 0u, 425u, 0x08806DC0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_31, aot_fpr_12); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 425u, 0x08806DC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DB5Cu) goto L_0889DB5C;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889DB5C:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889DB68u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-3));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 386u, 0x0889DB68u, 0x08807414u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DB68u) goto L_0889DB68;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DB68:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889DB74u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806654, 0u, 303u, 0x08806654u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 303u, 0x08806654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DB74u) goto L_0889DB74;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889DB74:
{ std::uint32_t aot_run_words[5]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
aot_fpr_20 = std::bit_cast<float>(aot_run_words[0]);
ctx.gpr[16] = aot_run_words[1];
ctx.gpr[17] = aot_run_words[2];
ctx.gpr[18] = aot_run_words[3];
aot_gpr_31 = aot_run_words[4];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(32));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889DB90:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
ctx.gpr[17] = (aot_gpr_4 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[18]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_gpr_31);
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_5) > 0;
ctx.gpr[16] = (aot_gpr_5 | 0u);
if (branch_taken) {
goto L_0889DBD0;
}
goto L_0889DBB0;
}
L_0889DBB0:
aot_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[16]) < -9999 ? 1u : 0u);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889DBD0;
}
goto L_0889DBBC;
}
L_0889DBBC:
aot_gpr_31 = (0x0889DBC4u);
aot_gpr_4 = (ctx.gpr[17] | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806634, 0u, 302u, 0x08806634u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 302u, 0x08806634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DBC4u) goto L_0889DBC4;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889DBC4:
ctx.gpr[16] = (aot_gpr_2 + ctx.gpr[16]);
{ const bool branch_taken = 0u == 0u;
ctx.gpr[16] = (ctx.gpr[16] + static_cast<std::uint32_t>(1));
if (branch_taken) {
goto L_0889DBD0;
}
goto L_0889DBD0;
}
L_0889DBD0:
aot_gpr_5 = (ctx.gpr[28] + static_cast<std::uint32_t>(-25416));
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889DBE0u);
aot_gpr_6 = (0u | 1u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 393u, 0x0889DBE0u, 0x08806DE0u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DBE0u) goto L_0889DBE0;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DBE0:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889DBECu);
aot_gpr_5 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 394u, 0x0889DBECu, 0x08807148u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DBECu) goto L_0889DBEC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DBEC:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889DBF8u);
aot_gpr_5 = (0u | 1u);
goto L_0889D964;
L_0889DBF8:
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_2) >= 0;
if (branch_taken) {
goto L_0889DC44;
}
goto L_0889DC00;
}
L_0889DC00:
aot_gpr_31 = (0x0889DC08u);
aot_gpr_4 = (ctx.gpr[17] | 0u);
goto L_0889D9D8;
L_0889DC08:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889DC14u);
aot_gpr_5 = (ctx.gpr[16] | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0880682C, 0u, 322u, 0x0880682Cu>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[16], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 322u, 0x0880682Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DC14u) goto L_0889DC14;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889DC14:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889DC20u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 399u, 0x0889DC20u, 0x08807148u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DC20u) goto L_0889DC20;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DC20:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889DC2Cu);
aot_gpr_5 = (0u | 2u);
goto L_0889D964;
L_0889DC2C:
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_2) >= 0;
if (branch_taken) {
goto L_0889DC3C;
}
goto L_0889DC34;
}
L_0889DC34:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[18] = (0u | 1u);
if (branch_taken) {
goto L_0889DC4C;
}
goto L_0889DC3C;
}
L_0889DC3C:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889DC94;
}
goto L_0889DC44;
}
L_0889DC44:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889DC94;
}
goto L_0889DC4C;
}
L_0889DC4C:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_5 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889DC5Cu);
aot_gpr_6 = (ctx.gpr[18] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 405u, 0x0889DC5Cu, 0x088071ACu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DC5Cu) goto L_0889DC5C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DC5C:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889DC68u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-1));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806888, 0u, 324u, 0x08806888u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 324u, 0x08806888u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DC68u) goto L_0889DC68;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889DC68:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889DC84;
}
goto L_0889DC70;
}
L_0889DC70:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889DC7Cu);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806654, 0u, 303u, 0x08806654u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 303u, 0x08806654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DC7Cu) goto L_0889DC7C;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889DC7C:
{ const bool branch_taken = 0u == 0u;
ctx.gpr[18] = (ctx.gpr[18] + static_cast<std::uint32_t>(1));
if (branch_taken) {
goto L_0889DC4C;
}
goto L_0889DC84;
}
L_0889DC84:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889DC90u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806654, 0u, 303u, 0x08806654u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 303u, 0x08806654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DC90u) goto L_0889DC90;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889DC90:
aot_gpr_2 = (ctx.gpr[18] + static_cast<std::uint32_t>(-1));
goto L_0889DC94;
L_0889DC94:
{ std::uint32_t aot_run_words[4]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
ctx.gpr[18] = aot_run_words[2];
aot_gpr_31 = aot_run_words[3];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889DCAC:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
ctx.gpr[16] = (aot_gpr_4 | 0u);
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(0)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
ctx.gpr[17] = (ctx.gpr[16] + static_cast<std::uint32_t>(12));
aot_gpr_4 = (aot_gpr_4 - ctx.gpr[17]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_31);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889DCDC;
}
goto L_0889DCD4;
}
L_0889DCD4:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 0u);
if (branch_taken) {
goto L_0889DD00;
}
goto L_0889DCDC;
}
L_0889DCDC:
aot_gpr_6 = (aot_gpr_4 | 0u);
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(8)));
aot_gpr_31 = (0x0889DCECu);
aot_gpr_5 = (ctx.gpr[17] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 415u, 0x0889DCECu, 0x08806DE0u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DCECu) goto L_0889DCEC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DCEC:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(4)));
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(0), ctx.gpr[17]);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(1));
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(4), aot_gpr_4);
aot_gpr_2 = (0u | 1u);
goto L_0889DD00;
L_0889DD00:
{ std::uint32_t aot_run_words[3]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
aot_gpr_31 = aot_run_words[2];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889DD14:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
ctx.gpr[16] = (aot_gpr_4 | 0u);
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_5) < 2 ? 1u : 0u);
{ const std::uint32_t aot_run_words[5]{ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_31};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_run_words); }
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889DDCC;
}
goto L_0889DD44;
}
L_0889DD44:
ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(8)));
ctx.gpr[19] = (0u | 1u);
aot_gpr_4 = (ctx.gpr[20] | 0u);
aot_gpr_31 = (0x0889DD58u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-1));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 419u, 0x0889DD58u, 0x08806BD8u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 387u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 387u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 387u, 0x08806BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DD58u) goto L_0889DD58;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DD58:
ctx.gpr[18] = (aot_gpr_2 | 0u);
goto L_0889DD5C;
L_0889DD5C:
ctx.gpr[17] = (ctx.gpr[19] + static_cast<std::uint32_t>(1));
aot_gpr_5 = (0u - ctx.gpr[17]);
aot_gpr_31 = (0x0889DD6Cu);
aot_gpr_4 = (ctx.gpr[20] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 421u, 0x0889DD6Cu, 0x08806BD8u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 387u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 387u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 387u, 0x08806BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DD6Cu) goto L_0889DD6C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DD6C:
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(4)));
aot_gpr_6 = (aot_gpr_5 - ctx.gpr[19]);
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(1));
aot_gpr_6 = (static_cast<std::int32_t>(aot_gpr_6) < 10 ? 1u : 0u);
{ const bool branch_taken = aot_gpr_6 == 0u;
aot_gpr_4 = (aot_gpr_2 | 0u);
if (branch_taken) {
goto L_0889DD90;
}
goto L_0889DD84;
}
L_0889DD84:
aot_gpr_6 = (aot_gpr_4 < ctx.gpr[18] ? 1u : 0u);
{ const bool branch_taken = aot_gpr_6 == 0u;
if (branch_taken) {
goto L_0889DD9C;
}
goto L_0889DD90;
}
L_0889DD90:
ctx.gpr[18] = (aot_gpr_4 + ctx.gpr[18]);
{ const bool branch_taken = 0u == 0u;
ctx.gpr[19] = (ctx.gpr[17] | 0u);
if (branch_taken) {
goto L_0889DDA4;
}
goto L_0889DD9C;
}
L_0889DD9C:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889DDB0;
}
goto L_0889DDA4;
}
L_0889DDA4:
aot_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[17]) < static_cast<std::int32_t>(aot_gpr_5) ? 1u : 0u);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889DD5C;
}
goto L_0889DDB0;
}
L_0889DDB0:
aot_gpr_4 = (ctx.gpr[20] | 0u);
aot_gpr_31 = (0x0889DDBCu);
aot_gpr_5 = (ctx.gpr[19] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 427u, 0x0889DDBCu, 0x08807904u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 546u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 546u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 546u, 0x08807904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DDBCu) goto L_0889DDBC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DDBC:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(4)));
aot_gpr_4 = (aot_gpr_4 - ctx.gpr[19]);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(1));
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(4), aot_gpr_4);
goto L_0889DDCC;
L_0889DDCC:
{ std::uint32_t aot_run_words[6]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
ctx.gpr[18] = aot_run_words[2];
ctx.gpr[19] = aot_run_words[3];
ctx.gpr[20] = aot_run_words[4];
aot_gpr_31 = aot_run_words[5];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(32));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889DDEC:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_31);
aot_gpr_31 = (0x0889DE00u);
ctx.gpr[16] = (aot_gpr_4 | 0u);
goto L_0889DCAC;
L_0889DE00:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889DE10;
}
goto L_0889DE08;
}
L_0889DE08:
aot_gpr_31 = (0x0889DE10u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
goto L_0889DD14;
L_0889DE10:
aot_gpr_2 = (ctx.gpr[16] + static_cast<std::uint32_t>(12));
ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889DE24:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), ctx.gpr[20]);
ctx.gpr[20] = (aot_gpr_6 + static_cast<std::uint32_t>(-1));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[18]);
ctx.gpr[16] = (ctx.gpr[20] | 0u);
ctx.gpr[18] = (aot_gpr_4 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), ctx.gpr[19]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(20), aot_gpr_31);
{ const bool branch_taken = aot_gpr_6 == 0u;
ctx.gpr[17] = (aot_gpr_5 | 0u);
if (branch_taken) {
goto L_0889DE98;
}
goto L_0889DE54;
}
L_0889DE54:
ctx.gpr[19] = (ctx.gpr[18] + static_cast<std::uint32_t>(1036));
goto L_0889DE58;
L_0889DE58:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
aot_gpr_4 = (aot_gpr_4 < ctx.gpr[19] ? 1u : 0u);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889DE70;
}
goto L_0889DE68;
}
L_0889DE68:
aot_gpr_31 = (0x0889DE70u);
aot_gpr_4 = (ctx.gpr[18] | 0u);
goto L_0889DDEC;
L_0889DE70:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
aot_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast<std::uint32_t>(0))))));
aot_gpr_6 = (aot_gpr_4 + static_cast<std::uint32_t>(1));
aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast<std::uint32_t>(0), aot_gpr_6);
aot_gpr_6 = (ctx.gpr[20] | 0u);
ctx.gpr[20] = (ctx.gpr[16] + static_cast<std::uint32_t>(-1));
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(1));
aot_mem.aot_direct_store8(aot_gpr_4 + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(aot_gpr_5));
{ const bool branch_taken = aot_gpr_6 != 0u;
ctx.gpr[16] = (ctx.gpr[20] | 0u);
if (branch_taken) {
goto L_0889DE58;
}
goto L_0889DE98;
}
L_0889DE98:
{ std::uint32_t aot_run_words[6]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
ctx.gpr[18] = aot_run_words[2];
ctx.gpr[19] = aot_run_words[3];
ctx.gpr[20] = aot_run_words[4];
aot_gpr_31 = aot_run_words[5];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(32));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889DEB8:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_31);
aot_gpr_31 = (0x0889DECCu);
ctx.gpr[16] = (aot_gpr_4 | 0u);
goto L_0889DCAC;
L_0889DECC:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(8)));
aot_gpr_31 = (0x0889DED8u);
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(4)));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 441u, 0x0889DED8u, 0x08807904u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 546u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 546u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 546u, 0x08807904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DED8u) goto L_0889DED8;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DED8:
aot_gpr_4 = (0u | 1u);
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(4), aot_gpr_4);
ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889DEF0:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
ctx.gpr[16] = (aot_gpr_4 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), ctx.gpr[19]);
ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(8)));
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-1));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[18]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(16), aot_gpr_31);
aot_gpr_31 = (0x0889DF1Cu);
aot_gpr_4 = (ctx.gpr[19] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 443u, 0x0889DF1Cu, 0x08806BD8u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 387u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 387u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 387u, 0x08806BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DF1Cu) goto L_0889DF1C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DF1C:
ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(0)));
aot_gpr_4 = (ctx.gpr[16] + static_cast<std::uint32_t>(12));
aot_gpr_4 = (ctx.gpr[17] - aot_gpr_4);
aot_gpr_5 = (0u | 1024u);
ctx.gpr[18] = (aot_gpr_2 | 0u);
aot_gpr_4 = (aot_gpr_5 - aot_gpr_4);
aot_gpr_4 = (aot_gpr_4 < ctx.gpr[18] ? 1u : 0u);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889DF7C;
}
goto L_0889DF40;
}
L_0889DF40:
aot_gpr_4 = (ctx.gpr[19] | 0u);
aot_gpr_31 = (0x0889DF4Cu);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-1));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 445u, 0x0889DF4Cu, 0x08806B2Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DF4Cu) goto L_0889DF4C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DF4C:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_5 = (aot_gpr_2 | 0u);
aot_gpr_31 = (0x0889DF5Cu);
aot_gpr_6 = (ctx.gpr[18] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0088.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 446u, 0x0889DF5Cu, 0x089645DCu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem);
#else
recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DF5Cu) goto L_0889DF5C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DF5C:
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(0)));
aot_gpr_4 = (ctx.gpr[19] | 0u);
aot_gpr_5 = (aot_gpr_5 + ctx.gpr[18]);
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(0), aot_gpr_5);
aot_gpr_31 = (0x0889DF74u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806654, 0u, 303u, 0x08806654u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 303u, 0x08806654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DF74u) goto L_0889DF74;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889DF74:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889DFAC;
}
goto L_0889DF7C;
}
L_0889DF7C:
aot_gpr_31 = (0x0889DF84u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
goto L_0889DCAC;
L_0889DF84:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889DF98;
}
goto L_0889DF8C;
}
L_0889DF8C:
aot_gpr_4 = (ctx.gpr[19] | 0u);
aot_gpr_31 = (0x0889DF98u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 451u, 0x0889DF98u, 0x0880673Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DF98u) goto L_0889DF98;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889DF98:
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(4)));
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(1));
aot_gpr_31 = (0x0889DFACu);
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(4), aot_gpr_5);
goto L_0889DD14;
L_0889DFAC:
{ std::uint32_t aot_run_words[5]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
ctx.gpr[18] = aot_run_words[2];
ctx.gpr[19] = aot_run_words[3];
aot_gpr_31 = aot_run_words[4];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(32));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889DFC8:
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(8), aot_gpr_4);
aot_gpr_4 = (aot_gpr_5 + static_cast<std::uint32_t>(12));
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(0), aot_gpr_4);
jump_target = aot_gpr_31;
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(4), 0u);
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889DFDC:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
ctx.gpr[17] = (aot_gpr_5 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), ctx.gpr[18]);
ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(0)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
ctx.gpr[16] = (aot_gpr_6 | 0u);
ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25348)));
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25352)));
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_gpr_31);
aot_gpr_31 = (0x0889E010u);
ctx.gpr[8] = (0u | 1u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0205.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 455u, 0x0889E010u, 0x08B3B264u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 898u, aot_mem);
#else
recomp_unit_0205_entry(rt, ctx, 898u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 898u, 0x08B3B264u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E010u) goto L_0889E010;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E010:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(4)));
aot_gpr_6 = (32768u << 16u);
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(-1));
aot_gpr_5 = (aot_gpr_2 | 0u);
aot_gpr_4 = (aot_gpr_4 & aot_gpr_6);
aot_gpr_4 = (aot_gpr_5 < aot_gpr_4 ? 1u : 0u);
aot_gpr_4 = (aot_gpr_4 ^ 1u);
aot_gpr_4 = (aot_gpr_4 & 255u);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889E068;
}
goto L_0889E038;
}
L_0889E038:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(0)));
aot_gpr_5 = (32768u << 16u);
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
aot_gpr_5 = (aot_gpr_6 & aot_gpr_5);
{ const bool branch_taken = aot_gpr_5 == 0u;
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(4));
if (branch_taken) {
goto L_0889E070;
}
goto L_0889E054;
}
L_0889E054:
aot_gpr_5 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889E060u);
aot_gpr_6 = (0u | 1024u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0205.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 458u, 0x0889E060u, 0x08B3AEC4u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 822u, aot_mem);
#else
recomp_unit_0205_entry(rt, ctx, 822u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 822u, 0x08B3AEC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E060u) goto L_0889E060;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E060:
{ const bool branch_taken = 0u == 0u;
aot_gpr_4 = (aot_gpr_2 < static_cast<std::uint32_t>(1) ? 1u : 0u);
if (branch_taken) {
goto L_0889E080;
}
goto L_0889E068;
}
L_0889E068:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 0u);
if (branch_taken) {
goto L_0889E090;
}
goto L_0889E070;
}
L_0889E070:
aot_gpr_5 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889E07Cu);
aot_gpr_6 = (0u | 1024u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0205.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 461u, 0x0889E07Cu, 0x08B3B0E4u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 864u, aot_mem);
#else
recomp_unit_0205_entry(rt, ctx, 864u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 864u, 0x08B3B0E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E07Cu) goto L_0889E07C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E07C:
aot_gpr_4 = (aot_gpr_2 | 0u);
goto L_0889E080;
L_0889E080:
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(0), aot_gpr_4);
aot_gpr_2 = (0u | 0u);
if (aot_gpr_4 != 0u) {
aot_gpr_2 = (ctx.gpr[17] | 0u);
goto L_0889E090;
}
goto L_0889E090;
L_0889E090:
{ std::uint32_t aot_run_words[4]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
ctx.gpr[18] = aot_run_words[2];
aot_gpr_31 = aot_run_words[3];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E0A8:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
ctx.gpr[16] = (aot_gpr_5 | 0u);
{ const std::uint32_t aot_run_words[4]{ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], aot_gpr_31};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_run_words); }
aot_gpr_31 = (0x0889E0CCu);
ctx.gpr[17] = (aot_gpr_4 | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 465u, 0x0889E0CCu, 0x08806B2Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E0CCu) goto L_0889E0CC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E0CC:
aot_gpr_4 = (2232u << 16u);
ctx.gpr[18] = (aot_gpr_2 + static_cast<std::uint32_t>(1));
aot_gpr_31 = (0x0889E0DCu);
ctx.gpr[19] = (aot_gpr_4 + static_cast<std::uint32_t>(-22712));
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0212_entry, 212u, 341u, 0x08B552F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E0DCu) goto L_0889E0DC;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E0DC:
aot_gpr_31 = (0x0889E0E4u);
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast<std::uint32_t>(0)));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0213.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 467u, 0x0889E0E4u, 0x08B583A8u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 74u, aot_mem);
#else
recomp_unit_0213_entry(rt, ctx, 74u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 74u, 0x08B583A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E0E4u) goto L_0889E0E4;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E0E4:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_5 = (ctx.gpr[19] | 0u);
aot_gpr_6 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889E0F8u);
ctx.gpr[7] = (aot_gpr_2 | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 468u, 0x0889E0F8u, 0x08806F24u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 440u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 440u, 0x08806F24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E0F8u) goto L_0889E0F8;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E0F8:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889E104u);
aot_gpr_5 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 469u, 0x0889E104u, 0x088066C0u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 310u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 310u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 310u, 0x088066C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E104u) goto L_0889E104;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E104:
aot_gpr_2 = (0u | 2u);
{ std::uint32_t aot_run_words[5]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
ctx.gpr[18] = aot_run_words[2];
ctx.gpr[19] = aot_run_words[3];
aot_gpr_31 = aot_run_words[4];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(32));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E124:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-1072));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(1032), ctx.gpr[16]);
ctx.gpr[16] = (aot_gpr_4 | 0u);
{ const std::uint32_t aot_run_words[7]{ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], aot_gpr_31};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(1036), aot_run_words); }
aot_gpr_31 = (0x0889E154u);
ctx.gpr[17] = (aot_gpr_5 | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806634, 0u, 302u, 0x08806634u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 302u, 0x08806634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E154u) goto L_0889E154;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E154:
ctx.gpr[18] = (aot_gpr_2 + static_cast<std::uint32_t>(1));
aot_gpr_5 = (ctx.gpr[28] + static_cast<std::uint32_t>(-25344));
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889E168u);
aot_gpr_6 = (ctx.gpr[17] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 472u, 0x0889E168u, 0x08806F24u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 440u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 440u, 0x08806F24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E168u) goto L_0889E168;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E168:
aot_gpr_5 = (ctx.gpr[28] + static_cast<std::uint32_t>(-25340));
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889E178u);
aot_gpr_6 = (0u | 1u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0001.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 473u, 0x0889E178u, 0x08809B44u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 356u, aot_mem);
#else
recomp_unit_0001_entry(rt, ctx, 356u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 356u, 0x08809B44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E178u) goto L_0889E178;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E178:
ctx.gpr[19] = (aot_gpr_2 | 0u);
{ const bool branch_taken = ctx.gpr[19] == 0u;
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_gpr_2);
if (branch_taken) {
goto L_0889E1C4;
}
goto L_0889E184;
}
L_0889E184:
aot_gpr_4 = (ctx.gpr[19] | 0u);
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
ctx.gpr[19] = (32768u << 16u);
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
ctx.gpr[7] = (2234u << 16u);
aot_gpr_6 = (aot_gpr_5 & ctx.gpr[19]);
ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25316)));
ctx.gpr[22] = (ctx.gpr[7] + static_cast<std::uint32_t>(14520));
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(1028));
ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25320)));
{ const bool branch_taken = aot_gpr_6 == 0u;
ctx.gpr[22] = (ctx.gpr[22] + static_cast<std::uint32_t>(1));
if (branch_taken) {
goto L_0889E1D8;
}
goto L_0889E1B4;
}
L_0889E1B4:
aot_gpr_31 = (0x0889E1BCu);
aot_gpr_6 = (0u | 1u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0205.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 476u, 0x0889E1BCu, 0x08B3AEC4u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 822u, aot_mem);
#else
recomp_unit_0205_entry(rt, ctx, 822u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 822u, 0x08B3AEC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E1BCu) goto L_0889E1BC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E1BC:
{ const bool branch_taken = 0u == 0u;
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
if (branch_taken) {
goto L_0889E1E4;
}
goto L_0889E1C4;
}
L_0889E1C4:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889E1D0u);
aot_gpr_5 = (ctx.gpr[18] | 0u);
goto L_0889E0A8;
L_0889E1D0:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889E340;
}
goto L_0889E1D8;
}
L_0889E1D8:
aot_gpr_31 = (0x0889E1E0u);
aot_gpr_6 = (0u | 1u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0205.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 480u, 0x0889E1E0u, 0x08B3B0E4u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 864u, aot_mem);
#else
recomp_unit_0205_entry(rt, ctx, 864u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 864u, 0x08B3B0E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E1E0u) goto L_0889E1E0;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E1E0:
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
goto L_0889E1E4;
L_0889E1E4:
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
aot_gpr_5 = (aot_gpr_5 & ctx.gpr[19]);
{ const bool branch_taken = aot_gpr_5 == 0u;
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
if (branch_taken) {
goto L_0889E218;
}
goto L_0889E1F4;
}
L_0889E1F4:
ctx.gpr[7] = (ctx.gpr[21] | 0u);
aot_gpr_6 = (ctx.gpr[20] | 0u);
aot_gpr_31 = (0x0889E204u);
ctx.gpr[8] = (0u | 1u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0205.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 483u, 0x0889E204u, 0x08B3B024u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 855u, aot_mem);
#else
recomp_unit_0205_entry(rt, ctx, 855u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 855u, 0x08B3B024u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E204u) goto L_0889E204;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E204:
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(1028))))));
aot_gpr_4 = (ctx.gpr[22] + aot_gpr_4);
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0))))));
{ const bool branch_taken = 0u == 0u;
aot_gpr_5 = (aot_gpr_4 & 8u);
if (branch_taken) {
goto L_0889E238;
}
goto L_0889E218;
}
L_0889E218:
ctx.gpr[7] = (ctx.gpr[21] | 0u);
aot_gpr_6 = (ctx.gpr[20] | 0u);
aot_gpr_31 = (0x0889E228u);
ctx.gpr[8] = (0u | 1u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0205.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 485u, 0x0889E228u, 0x08B3B264u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 898u, aot_mem);
#else
recomp_unit_0205_entry(rt, ctx, 898u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 898u, 0x08B3B264u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E228u) goto L_0889E228;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E228:
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast<std::uint32_t>(1028))))));
aot_gpr_4 = (ctx.gpr[22] + aot_gpr_4);
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(0))))));
aot_gpr_5 = (aot_gpr_4 & 8u);
goto L_0889E238;
L_0889E238:
{ const bool branch_taken = aot_gpr_5 != 0u;
aot_gpr_4 = (aot_gpr_4 & 151u);
if (branch_taken) {
goto L_0889E290;
}
goto L_0889E240;
}
L_0889E240:
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889E290;
}
goto L_0889E248;
}
L_0889E248:
ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(4)));
aot_gpr_5 = (aot_gpr_5 & ctx.gpr[19]);
{ const bool branch_taken = aot_gpr_5 != 0u;
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
if (branch_taken) {
goto L_0889E270;
}
goto L_0889E25C;
}
L_0889E25C:
aot_gpr_31 = (0x0889E264u);
ctx.pc = 0x08B7363Cu;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E264:
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-1));
{ const bool branch_taken = 0u == 0u;
aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast<std::uint32_t>(0), aot_gpr_4);
if (branch_taken) {
goto L_0889E278;
}
goto L_0889E270;
}
L_0889E270:
aot_gpr_31 = (0x0889E278u);
ctx.pc = 0x08B7368Cu;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E278:
aot_gpr_5 = (ctx.gpr[28] + static_cast<std::uint32_t>(-25336));
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889E288u);
aot_gpr_6 = (0u | 1u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0001.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 493u, 0x0889E288u, 0x08809B44u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 356u, aot_mem);
#else
recomp_unit_0001_entry(rt, ctx, 356u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 356u, 0x08809B44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E288u) goto L_0889E288;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E288:
{ const bool branch_taken = aot_gpr_2 == 0u;
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_gpr_2);
if (branch_taken) {
goto L_0889E2EC;
}
goto L_0889E290;
}
L_0889E290:
aot_gpr_6 = (2186u << 16u);
ctx.gpr[21] = (ctx.gpr[19] | 0u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-1));
aot_gpr_31 = (0x0889E2A8u);
ctx.gpr[17] = (aot_gpr_6 + static_cast<std::uint32_t>(-8228));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 495u, 0x0889E2A8u, 0x08806B2Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E2A8u) goto L_0889E2A8;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E2A8:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_5 = (ctx.gpr[17] | 0u);
aot_gpr_6 = (aot_gpr_29 | 0u);
aot_gpr_31 = (0x0889E2BCu);
ctx.gpr[7] = (aot_gpr_2 | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 496u, 0x0889E2BCu, 0x0880771Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 517u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 517u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 517u, 0x0880771Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E2BCu) goto L_0889E2BC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E2BC:
ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
ctx.gpr[17] = (aot_gpr_2 | 0u);
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(4)));
ctx.gpr[19] = (0u | 0u);
aot_gpr_5 = (aot_gpr_5 & ctx.gpr[21]);
{ const bool branch_taken = aot_gpr_5 != 0u;
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast<std::uint32_t>(0)));
if (branch_taken) {
goto L_0889E300;
}
goto L_0889E2D8;
}
L_0889E2D8:
aot_gpr_31 = (0x0889E2E0u);
ctx.pc = 0x08B7363Cu;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E2E0:
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-1));
{ const bool branch_taken = 0u == 0u;
aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast<std::uint32_t>(0), aot_gpr_4);
if (branch_taken) {
goto L_0889E308;
}
goto L_0889E2EC;
}
L_0889E2EC:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889E2F8u);
aot_gpr_5 = (ctx.gpr[18] | 0u);
goto L_0889E0A8;
L_0889E2F8:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889E340;
}
goto L_0889E300;
}
L_0889E300:
aot_gpr_31 = (0x0889E308u);
ctx.pc = 0x08B7368Cu;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E308:
{ const bool branch_taken = ctx.gpr[19] == 0u;
if (branch_taken) {
goto L_0889E330;
}
goto L_0889E310;
}
L_0889E310:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889E31Cu);
aot_gpr_5 = (ctx.gpr[18] | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806654, 0u, 303u, 0x08806654u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 303u, 0x08806654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E31Cu) goto L_0889E31C;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E31C:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889E328u);
aot_gpr_5 = (ctx.gpr[18] | 0u);
goto L_0889E0A8;
L_0889E328:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889E340;
}
goto L_0889E330;
}
L_0889E330:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889E33Cu);
aot_gpr_5 = (ctx.gpr[18] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 507u, 0x0889E33Cu, 0x088066C0u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 310u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 310u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 310u, 0x088066C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E33Cu) goto L_0889E33C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E33C:
aot_gpr_2 = (ctx.gpr[17] | 0u);
goto L_0889E340;
L_0889E340:
{ std::uint32_t aot_run_words[8]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(1032), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
ctx.gpr[18] = aot_run_words[2];
ctx.gpr[19] = aot_run_words[3];
ctx.gpr[20] = aot_run_words[4];
ctx.gpr[21] = aot_run_words[5];
ctx.gpr[22] = aot_run_words[6];
aot_gpr_31 = aot_run_words[7];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(1072));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E368:
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(4)));
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889E37C;
}
goto L_0889E374;
}
L_0889E374:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 0u);
if (branch_taken) {
goto L_0889E388;
}
goto L_0889E37C;
}
L_0889E37C:
aot_mem.aot_direct_store32(aot_gpr_6 + static_cast<std::uint32_t>(0), aot_gpr_4);
aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(4), 0u);
goto L_0889E388;
L_0889E388:
jump_target = aot_gpr_31;
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E390:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_gpr_5);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_6);
aot_gpr_5 = (2186u << 16u);
aot_gpr_6 = (aot_gpr_29 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_31);
aot_gpr_31 = (0x0889E3B0u);
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-7320));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 514u, 0x0889E3B0u, 0x0880771Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 517u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 517u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 517u, 0x0880771Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E3B0u) goto L_0889E3B0;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E3B0:
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(8)));
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E3BC:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
{ const std::uint32_t aot_run_words[4]{ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], aot_gpr_31};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
{ const bool branch_taken = aot_gpr_5 == 0u;
ctx.gpr[16] = (aot_gpr_4 | 0u);
if (branch_taken) {
goto L_0889E464;
}
goto L_0889E3D8;
}
L_0889E3D8:
aot_gpr_5 = (ctx.gpr[28] + static_cast<std::uint32_t>(-25312));
aot_gpr_31 = (0x0889E3E4u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 517u, 0x0889E3E4u, 0x08806E68u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E3E4u) goto L_0889E3E4;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E3E4:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889E3F0u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-10001));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 518u, 0x0889E3F0u, 0x088070DCu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E3F0u) goto L_0889E3F0;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E3F0:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889E3FCu);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-1));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806888, 0u, 324u, 0x08806888u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 324u, 0x08806888u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E3FCu) goto L_0889E3FC;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E3FC:
aot_gpr_4 = (0u | 6u);
{ const bool branch_taken = aot_gpr_2 != aot_gpr_4;
if (branch_taken) {
goto L_0889E42C;
}
goto L_0889E408;
}
L_0889E408:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889E414u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 521u, 0x0889E414u, 0x0880673Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E414u) goto L_0889E414;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E414:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_5 = (0u | 1u);
aot_gpr_31 = (0x0889E424u);
aot_gpr_6 = (0u | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 522u, 0x0889E424u, 0x08807644u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 508u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 508u, 0x08807644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E424u) goto L_0889E424;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E424:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889E464;
}
goto L_0889E42C;
}
L_0889E42C:
aot_gpr_4 = (2234u << 16u);
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(15532)));
ctx.gpr[17] = (ctx.gpr[28] + static_cast<std::uint32_t>(-25304));
ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(12)));
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889E448u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 524u, 0x0889E448u, 0x08806B2Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E448u) goto L_0889E448;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E448:
aot_gpr_4 = (ctx.gpr[18] | 0u);
aot_gpr_5 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889E458u);
aot_gpr_6 = (aot_gpr_2 | 0u);
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0212_entry, 212u, 425u, 0x08B55920u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E458u) goto L_0889E458;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E458:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889E464u);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-3));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08806654, 0u, 303u, 0x08806654u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0000_entry, 0u, 303u, 0x08806654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E464u) goto L_0889E464;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E464:
{ std::uint32_t aot_run_words[4]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
ctx.gpr[18] = aot_run_words[2];
aot_gpr_31 = aot_run_words[3];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E47C:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
ctx.gpr[17] = (aot_gpr_4 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_31);
{ const bool branch_taken = aot_gpr_5 != 0u;
ctx.gpr[16] = (aot_gpr_5 | 0u);
if (branch_taken) {
goto L_0889E4B0;
}
goto L_0889E498;
}
L_0889E498:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_5 = (0u | 0u);
aot_gpr_6 = (0u + static_cast<std::uint32_t>(-1));
aot_gpr_31 = (0x0889E4ACu);
ctx.gpr[7] = (0u | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 529u, 0x0889E4ACu, 0x0880768Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 512u, aot_mem);
#else
recomp_unit_0000_entry(rt, ctx, 512u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 512u, 0x0880768Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E4ACu) goto L_0889E4AC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E4AC:
ctx.gpr[16] = (aot_gpr_2 | 0u);
goto L_0889E4B0;
L_0889E4B0:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_31 = (0x0889E4BCu);
aot_gpr_5 = (ctx.gpr[16] | 0u);
goto L_0889E3BC;
L_0889E4BC:
aot_gpr_2 = (ctx.gpr[16] | 0u);
{ std::uint32_t aot_run_words[3]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
aot_gpr_31 = aot_run_words[2];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E4D4:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_31);
aot_gpr_31 = (0x0889E4E8u);
ctx.gpr[16] = (aot_gpr_4 | 0u);
goto L_0889E124;
L_0889E4E8:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889E4F4u);
aot_gpr_5 = (aot_gpr_2 | 0u);
goto L_0889E47C;
L_0889E4F4:
ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E504:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_31);
aot_gpr_31 = (0x0889E518u);
ctx.gpr[16] = (aot_gpr_4 | 0u);
goto L_0889E390;
L_0889E518:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889E524u);
aot_gpr_5 = (aot_gpr_2 | 0u);
goto L_0889E47C;
L_0889E524:
ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E534:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
ctx.gpr[17] = (aot_gpr_4 | 0u);
ctx.gpr[16] = (aot_gpr_5 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_31);
aot_gpr_31 = (0x0889E554u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B58974, 213u, 150u, 0x08B58974u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0213_entry, 213u, 150u, 0x08B58974u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E554u) goto L_0889E554;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E554:
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_5 = (ctx.gpr[16] | 0u);
aot_gpr_6 = (aot_gpr_2 | 0u);
aot_gpr_31 = (0x0889E568u);
ctx.gpr[7] = (ctx.gpr[16] | 0u);
goto L_0889E504;
L_0889E568:
{ std::uint32_t aot_run_words[3]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
aot_gpr_31 = aot_run_words[2];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E57C:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
{ const std::uint32_t aot_run_words[3]{ctx.gpr[16], ctx.gpr[17], aot_gpr_31};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
ctx.gpr[17] = (0u | 0u);
ctx.gpr[16] = (aot_gpr_4 | 0u);
goto L_0889E594;
L_0889E594:
aot_gpr_31 = (0x0889E59Cu);
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(8)));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0133.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 543u, 0x0889E59Cu, 0x08A1A2ECu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 299u, aot_mem);
#else
recomp_unit_0133_entry(rt, ctx, 299u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 299u, 0x08A1A2ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E59Cu) goto L_0889E59C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E59C:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889E5BC;
}
goto L_0889E5A4;
}
L_0889E5A4:
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(1));
aot_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[17]) < 1 ? 1u : 0u);
{ const bool branch_taken = aot_gpr_4 != 0u;
ctx.gpr[16] = (ctx.gpr[16] + static_cast<std::uint32_t>(4));
if (branch_taken) {
goto L_0889E594;
}
goto L_0889E5B4;
}
L_0889E5B4:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889E5C4;
}
goto L_0889E5BC;
}
L_0889E5BC:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 0u);
if (branch_taken) {
goto L_0889E5C8;
}
goto L_0889E5C4;
}
L_0889E5C4:
aot_gpr_2 = (0u | 1u);
goto L_0889E5C8;
L_0889E5C8:
{ std::uint32_t aot_run_words[3]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
aot_gpr_31 = aot_run_words[2];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E5DC:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
{ const std::uint32_t aot_run_words[3]{ctx.gpr[16], ctx.gpr[17], aot_gpr_31};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
ctx.gpr[17] = (0u | 0u);
ctx.gpr[16] = (aot_gpr_4 | 0u);
goto L_0889E5F4;
L_0889E5F4:
aot_gpr_31 = (0x0889E5FCu);
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(8)));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0133.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 551u, 0x0889E5FCu, 0x08A1A348u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 306u, aot_mem);
#else
recomp_unit_0133_entry(rt, ctx, 306u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 306u, 0x08A1A348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E5FCu) goto L_0889E5FC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E5FC:
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(1));
aot_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[17]) < 1 ? 1u : 0u);
{ const bool branch_taken = aot_gpr_4 != 0u;
ctx.gpr[16] = (ctx.gpr[16] + static_cast<std::uint32_t>(4));
if (branch_taken) {
goto L_0889E5F4;
}
goto L_0889E60C;
}
L_0889E60C:
{ std::uint32_t aot_run_words[3]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
aot_gpr_31 = aot_run_words[2];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E620:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
{ const std::uint32_t aot_run_words[3]{ctx.gpr[16], ctx.gpr[17], aot_gpr_31};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
ctx.gpr[17] = (0u | 0u);
ctx.gpr[16] = (aot_gpr_4 | 0u);
goto L_0889E638;
L_0889E638:
aot_gpr_31 = (0x0889E640u);
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(8)));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0133.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 555u, 0x0889E640u, 0x08A1A350u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 307u, aot_mem);
#else
recomp_unit_0133_entry(rt, ctx, 307u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 307u, 0x08A1A350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E640u) goto L_0889E640;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E640:
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(1));
aot_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[17]) < 1 ? 1u : 0u);
{ const bool branch_taken = aot_gpr_4 != 0u;
ctx.gpr[16] = (ctx.gpr[16] + static_cast<std::uint32_t>(4));
if (branch_taken) {
goto L_0889E638;
}
goto L_0889E650;
}
L_0889E650:
{ std::uint32_t aot_run_words[3]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
aot_gpr_31 = aot_run_words[2];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E664:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-32));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
ctx.gpr[16] = (aot_gpr_4 | 0u);
{ const std::uint32_t aot_run_words[5]{ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_31};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_run_words); }
aot_gpr_4 = (2234u << 16u);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(21920));
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(4), aot_gpr_4);
ctx.gpr[20] = (0u | 0u);
ctx.gpr[17] = (ctx.gpr[16] | 0u);
goto L_0889E698;
L_0889E698:
ctx.gpr[19] = (0u | 0u);
aot_gpr_31 = (0x0889E6A4u);
aot_gpr_4 = (0u | 96u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0174.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 559u, 0x0889E6A4u, 0x08ABE278u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem);
#else
recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E6A4u) goto L_0889E6A4;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E6A4:
ctx.gpr[18] = (aot_gpr_2 | 0u);
{ const bool branch_taken = ctx.gpr[18] == 0u;
aot_gpr_4 = (ctx.gpr[18] | 0u);
if (branch_taken) {
goto L_0889E6BC;
}
goto L_0889E6B0;
}
L_0889E6B0:
aot_gpr_31 = (0x0889E6B8u);
aot_gpr_5 = (ctx.gpr[20] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0133.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 561u, 0x0889E6B8u, 0x08A1A2DCu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 298u, aot_mem);
#else
recomp_unit_0133_entry(rt, ctx, 298u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 298u, 0x08A1A2DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E6B8u) goto L_0889E6B8;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E6B8:
ctx.gpr[19] = (ctx.gpr[18] | 0u);
goto L_0889E6BC;
L_0889E6BC:
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(8), ctx.gpr[19]);
ctx.gpr[20] = (ctx.gpr[20] + static_cast<std::uint32_t>(1));
aot_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[20]) < 1 ? 1u : 0u);
{ const bool branch_taken = aot_gpr_4 != 0u;
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(4));
if (branch_taken) {
goto L_0889E698;
}
goto L_0889E6D0;
}
L_0889E6D0:
aot_gpr_2 = (ctx.gpr[16] | 0u);
{ std::uint32_t aot_run_words[6]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
ctx.gpr[18] = aot_run_words[2];
ctx.gpr[19] = aot_run_words[3];
ctx.gpr[20] = aot_run_words[4];
aot_gpr_31 = aot_run_words[5];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(32));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E6F4:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_gpr_31);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889E738;
}
goto L_0889E704;
}
L_0889E704:
aot_gpr_6 = (2235u << 16u);
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(-27556));
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(4), aot_gpr_6);
{ const bool branch_taken = aot_gpr_4 == 0u;
aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast<std::uint32_t>(5900), 0u);
if (branch_taken) {
goto L_0889E724;
}
goto L_0889E718;
}
L_0889E718:
aot_gpr_6 = (2235u << 16u);
aot_gpr_6 = (aot_gpr_6 + static_cast<std::uint32_t>(-28772));
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(4), aot_gpr_6);
goto L_0889E724;
L_0889E724:
aot_gpr_5 = (aot_gpr_5 & 1u);
{ const bool branch_taken = aot_gpr_5 == 0u;
if (branch_taken) {
goto L_0889E738;
}
goto L_0889E730;
}
L_0889E730:
aot_gpr_31 = (0x0889E738u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2C0, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E738u) goto L_0889E738;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E738:
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E744:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
ctx.gpr[17] = (aot_gpr_4 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_31);
{ const bool branch_taken = aot_gpr_4 == 0u;
ctx.gpr[16] = (aot_gpr_5 | 0u);
if (branch_taken) {
goto L_0889E7B0;
}
goto L_0889E760;
}
L_0889E760:
aot_gpr_4 = (2234u << 16u);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(21920));
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
aot_gpr_31 = (0x0889E774u);
aot_gpr_4 = (ctx.gpr[17] | 0u);
goto L_0889E5DC;
L_0889E774:
{ const bool branch_taken = ctx.gpr[17] == 0u;
aot_gpr_4 = (ctx.gpr[16] & 1u);
if (branch_taken) {
goto L_0889E7A0;
}
goto L_0889E77C;
}
L_0889E77C:
aot_gpr_4 = (2235u << 16u);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-27556));
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
{ const bool branch_taken = ctx.gpr[17] == 0u;
aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast<std::uint32_t>(5900), 0u);
if (branch_taken) {
goto L_0889E79C;
}
goto L_0889E790;
}
L_0889E790:
aot_gpr_4 = (2235u << 16u);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(-28772));
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), aot_gpr_4);
goto L_0889E79C;
L_0889E79C:
aot_gpr_4 = (ctx.gpr[16] & 1u);
goto L_0889E7A0;
L_0889E7A0:
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889E7B0;
}
goto L_0889E7A8;
}
L_0889E7A8:
aot_gpr_31 = (0x0889E7B0u);
aot_gpr_4 = (ctx.gpr[17] | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2C0, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[8], ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0174_entry, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E7B0u) goto L_0889E7B0;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E7B0:
{ std::uint32_t aot_run_words[3]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
aot_gpr_31 = aot_run_words[2];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E7C4:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_gpr_4 = (0u | 2u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_gpr_31);
aot_gpr_31 = (0x0889E7D8u);
aot_gpr_5 = (0u | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08861668, 23u, 203u, 0x08861668u>(ctx, &aot_mem, ctx.pc, ctx.gpr[1], aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0023_entry, 23u, 203u, 0x08861668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E7D8u) goto L_0889E7D8;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E7D8:
aot_gpr_4 = (0u | 3u);
aot_gpr_31 = (0x0889E7E4u);
aot_gpr_5 = (0u | 1u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08861668, 23u, 203u, 0x08861668u>(ctx, &aot_mem, ctx.pc, ctx.gpr[1], aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0023_entry, 23u, 203u, 0x08861668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E7E4u) goto L_0889E7E4;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E7E4:
aot_gpr_4 = (0u | 4u);
aot_gpr_31 = (0x0889E7F0u);
aot_gpr_5 = (0u | 1u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08861668, 23u, 203u, 0x08861668u>(ctx, &aot_mem, ctx.pc, ctx.gpr[1], aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0023_entry, 23u, 203u, 0x08861668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E7F0u) goto L_0889E7F0;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E7F0:
aot_gpr_4 = (0u | 6u);
aot_gpr_31 = (0x0889E7FCu);
aot_gpr_5 = (0u | 1u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08861668, 23u, 203u, 0x08861668u>(ctx, &aot_mem, ctx.pc, ctx.gpr[1], aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0023_entry, 23u, 203u, 0x08861668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E7FCu) goto L_0889E7FC;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E7FC:
aot_gpr_4 = (0u | 5u);
aot_gpr_31 = (0x0889E808u);
aot_gpr_5 = (0u | 2u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08861668, 23u, 203u, 0x08861668u>(ctx, &aot_mem, ctx.pc, ctx.gpr[1], aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0023_entry, 23u, 203u, 0x08861668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E808u) goto L_0889E808;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E808:
aot_gpr_4 = (0u | 7u);
aot_gpr_31 = (0x0889E814u);
aot_gpr_5 = (0u | 2u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08861668, 23u, 203u, 0x08861668u>(ctx, &aot_mem, ctx.pc, ctx.gpr[1], aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0023_entry, 23u, 203u, 0x08861668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E814u) goto L_0889E814;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E814:
aot_gpr_4 = (0u | 10u);
aot_gpr_31 = (0x0889E820u);
aot_gpr_5 = (0u | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08861668, 23u, 203u, 0x08861668u>(ctx, &aot_mem, ctx.pc, ctx.gpr[1], aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0023_entry, 23u, 203u, 0x08861668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E820u) goto L_0889E820;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E820:
aot_gpr_4 = (0u | 8u);
aot_gpr_31 = (0x0889E82Cu);
aot_gpr_5 = (0u | 5u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08861668, 23u, 203u, 0x08861668u>(ctx, &aot_mem, ctx.pc, ctx.gpr[1], aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0023_entry, 23u, 203u, 0x08861668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E82Cu) goto L_0889E82C;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E82C:
aot_gpr_4 = (0u | 9u);
aot_gpr_31 = (0x0889E838u);
aot_gpr_5 = (0u | 6u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08861668, 23u, 203u, 0x08861668u>(ctx, &aot_mem, ctx.pc, ctx.gpr[1], aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0023_entry, 23u, 203u, 0x08861668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E838u) goto L_0889E838;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E838:
aot_gpr_4 = (0u | 14u);
aot_gpr_31 = (0x0889E844u);
aot_gpr_5 = (0u | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08861668, 23u, 203u, 0x08861668u>(ctx, &aot_mem, ctx.pc, ctx.gpr[1], aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0023_entry, 23u, 203u, 0x08861668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E844u) goto L_0889E844;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E844:
aot_gpr_4 = (0u | 11u);
aot_gpr_31 = (0x0889E850u);
aot_gpr_5 = (0u | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08861668, 23u, 203u, 0x08861668u>(ctx, &aot_mem, ctx.pc, ctx.gpr[1], aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0023_entry, 23u, 203u, 0x08861668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E850u) goto L_0889E850;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E850:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-23440)));
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889E888;
}
goto L_0889E85C;
}
L_0889E85C:
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(11096)));
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(11092)));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(11100)));
aot_gpr_5 = (aot_gpr_5 << 8u);
aot_gpr_5 = (aot_gpr_5 | aot_gpr_6);
aot_gpr_4 = (aot_gpr_4 << 16u);
aot_gpr_5 = (aot_gpr_5 | aot_gpr_4);
aot_gpr_4 = (65280u << 16u);
aot_gpr_5 = (aot_gpr_5 | aot_gpr_4);
aot_gpr_31 = (0x0889E888u);
aot_gpr_4 = (0u | 12u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08861668, 23u, 203u, 0x08861668u>(ctx, &aot_mem, ctx.pc, ctx.gpr[1], aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0023_entry, 23u, 203u, 0x08861668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E888u) goto L_0889E888;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E888:
aot_gpr_4 = (0u | 13u);
aot_gpr_31 = (0x0889E894u);
aot_gpr_5 = (0u | 1u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08861668, 23u, 203u, 0x08861668u>(ctx, &aot_mem, ctx.pc, ctx.gpr[1], aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0023_entry, 23u, 203u, 0x08861668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E894u) goto L_0889E894;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889E894:
aot_fpr_12 = std::bit_cast<float>(0u);
aot_gpr_4 = (2236u << 16u);
aot_gpr_5 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(29552)));
aot_gpr_5 = (aot_gpr_5 >> 8u);
ctx.gpr[7] = (18944u << 16u);
aot_gpr_5 = (aot_gpr_5 | ctx.gpr[7]);
aot_mem.aot_direct_store32(aot_gpr_6 + static_cast<std::uint32_t>(0), aot_gpr_5);
ctx.gpr[7] = (std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(29552)));
aot_gpr_6 = (ctx.gpr[7] >> 8u);
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(4));
ctx.gpr[7] = (19200u << 16u);
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(29552), aot_gpr_5);
aot_gpr_6 = (aot_gpr_6 | ctx.gpr[7]);
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(0), aot_gpr_6);
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(29552)));
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(4));
aot_mem.aot_direct_store32(aot_gpr_4 + static_cast<std::uint32_t>(29552), aot_gpr_5);
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E8EC:
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(0), aot_gpr_4);
jump_target = aot_gpr_31;
aot_gpr_2 = (0u | 0u);
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E8F8:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_gpr_5 = (2186u << 16u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), 0u);
aot_gpr_6 = (aot_gpr_29 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_31);
aot_gpr_31 = (0x0889E914u);
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-5908));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0117.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 596u, 0x0889E914u, 0x089D86FCu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem);
#else
recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E914u) goto L_0889E914;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E914:
aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E924:
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(0), aot_gpr_4);
jump_target = aot_gpr_31;
aot_gpr_2 = (0u | 0u);
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E930:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_gpr_5 = (2186u << 16u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), 0u);
aot_gpr_6 = (aot_gpr_29 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_31);
aot_gpr_31 = (0x0889E94Cu);
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-5852));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0091.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 599u, 0x0889E94Cu, 0x08972E68u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem);
#else
recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E94Cu) goto L_0889E94C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E94C:
aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E95C:
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(0), aot_gpr_4);
jump_target = aot_gpr_31;
aot_gpr_2 = (0u | 0u);
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E968:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_gpr_5 = (2186u << 16u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), 0u);
aot_gpr_6 = (aot_gpr_29 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_31);
aot_gpr_31 = (0x0889E984u);
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-5796));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0152.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 602u, 0x0889E984u, 0x08A65998u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 352u, aot_mem);
#else
recomp_unit_0152_entry(rt, ctx, 352u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 352u, 0x08A65998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E984u) goto L_0889E984;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E984:
aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E994:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_gpr_31);
aot_gpr_31 = (0x0889E9A4u);
goto L_0889E8F8;
L_0889E9A4:
aot_gpr_4 = (aot_gpr_2 | 0u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889E9C0;
}
goto L_0889E9B0;
}
L_0889E9B0:
aot_gpr_31 = (0x0889E9B8u);
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(20)));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0089.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 606u, 0x0889E9B8u, 0x08968F88u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 226u, aot_mem);
#else
recomp_unit_0089_entry(rt, ctx, 226u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 226u, 0x08968F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E9B8u) goto L_0889E9B8;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889E9B8:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u);
if (branch_taken) {
goto L_0889E9C4;
}
goto L_0889E9C0;
}
L_0889E9C0:
aot_gpr_2 = (0u | 0u);
goto L_0889E9C4;
L_0889E9C4:
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889E9D0:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-48));
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(aot_fpr_20), ctx.gpr[16], aot_gpr_31};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(28), aot_run_words); }
{ const bool branch_taken = aot_gpr_4 == 0u;
aot_gpr_2 = (aot_gpr_4 | 0u);
if (branch_taken) {
goto L_0889EA50;
}
goto L_0889E9E8;
}
L_0889E9E8:
ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast<std::uint32_t>(4)));
aot_fpr_20 = std::bit_cast<float>(0u);
aot_gpr_4 = (0u | 1u);
aot_fpr_12 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(aot_fpr_20));
aot_gpr_5 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889EA04u);
aot_gpr_6 = (0u | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0089.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 611u, 0x0889EA04u, 0x089690F0u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 244u, aot_mem);
#else
recomp_unit_0089_entry(rt, ctx, 244u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 244u, 0x089690F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889EA04u) goto L_0889EA04;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889EA04:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889EA48;
}
goto L_0889EA0C;
}
L_0889EA0C:
ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast<std::uint32_t>(16)));
{ const std::uint32_t aot_run_words[5]{std::bit_cast<std::uint32_t>(aot_fpr_20), std::bit_cast<std::uint32_t>(aot_fpr_20), std::bit_cast<std::uint32_t>(aot_fpr_20), std::bit_cast<std::uint32_t>(aot_fpr_20), std::bit_cast<std::uint32_t>(aot_fpr_20)};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words); }
aot_gpr_4 = (16256u << 16u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(20), std::bit_cast<std::uint32_t>(aot_fpr_20));
aot_fpr_12 = std::bit_cast<float>(aot_gpr_4);
ctx.gpr[8] = (0u | 0u);
aot_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[8]) < static_cast<std::int32_t>(ctx.gpr[16]) ? 1u : 0u);
{ const bool branch_taken = aot_gpr_4 != 0u;
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(24), std::bit_cast<std::uint32_t>(aot_fpr_12));
if (branch_taken) {
goto L_0889EA58;
}
goto L_0889EA40;
}
L_0889EA40:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889EAC8;
}
goto L_0889EA48;
}
L_0889EA48:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 0u);
if (branch_taken) {
goto L_0889EAC8;
}
goto L_0889EA50;
}
L_0889EA50:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 0u);
if (branch_taken) {
goto L_0889EAC8;
}
goto L_0889EA58;
}
L_0889EA58:
{ std::uint32_t aot_run_words[4]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(12), aot_run_words);
aot_gpr_6 = aot_run_words[0];
aot_gpr_5 = aot_run_words[1];
aot_gpr_4 = aot_run_words[2];
aot_fpr_12 = std::bit_cast<float>(aot_run_words[3]);
}
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
aot_fpr_14 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
ctx.gpr[9] = (0u | 0u);
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(8)));
ctx.gpr[7] = (ctx.gpr[7] + ctx.gpr[9]);
goto L_0889EA7C;
L_0889EA7C:
ctx.gpr[9] = (ctx.gpr[7] + static_cast<std::uint32_t>(8));
ctx.gpr[10] = (std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_mem.aot_direct_store32(ctx.gpr[9] + static_cast<std::uint32_t>(0), aot_gpr_6);
ctx.gpr[11] = (std::bit_cast<std::uint32_t>(ctx.fpr[15]));
aot_mem.aot_direct_store32(ctx.gpr[9] + static_cast<std::uint32_t>(4), aot_gpr_5);
ctx.gpr[3] = (std::bit_cast<std::uint32_t>(aot_fpr_14));
aot_mem.aot_direct_store32(ctx.gpr[9] + static_cast<std::uint32_t>(8), aot_gpr_4);
ctx.gpr[12] = (std::bit_cast<std::uint32_t>(aot_fpr_13));
aot_mem.aot_direct_store32(ctx.gpr[9] + static_cast<std::uint32_t>(12), ctx.gpr[10]);
ctx.gpr[9] = (ctx.gpr[7] + static_cast<std::uint32_t>(24));
{ const std::uint32_t aot_run_words[3]{ctx.gpr[11], ctx.gpr[3], ctx.gpr[12]};
aot_mem.aot_direct_store32_block(ctx.gpr[9] + static_cast<std::uint32_t>(0), aot_run_words); }
aot_mem.aot_direct_store32(ctx.gpr[7] + static_cast<std::uint32_t>(4), std::bit_cast<std::uint32_t>(aot_fpr_20));
aot_mem.aot_direct_store32(ctx.gpr[7] + static_cast<std::uint32_t>(0), 0u);
ctx.gpr[8] = (ctx.gpr[8] + static_cast<std::uint32_t>(1));
ctx.gpr[9] = (static_cast<std::int32_t>(ctx.gpr[8]) < static_cast<std::int32_t>(ctx.gpr[16]) ? 1u : 0u);
{ const bool branch_taken = ctx.gpr[9] != 0u;
ctx.gpr[7] = (ctx.gpr[7] + static_cast<std::uint32_t>(36));
if (branch_taken) {
goto L_0889EA7C;
}
goto L_0889EAC8;
}
L_0889EAC8:
{ std::uint32_t aot_run_words[3]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(28), aot_run_words);
aot_fpr_20 = std::bit_cast<float>(aot_run_words[0]);
ctx.gpr[16] = aot_run_words[1];
aot_gpr_31 = aot_run_words[2];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(48));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889EADC:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_31);
aot_gpr_31 = (0x0889EAF0u);
ctx.gpr[16] = (aot_gpr_5 | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0089.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 620u, 0x0889EAF0u, 0x0896950Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 287u, aot_mem);
#else
recomp_unit_0089_entry(rt, ctx, 287u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 287u, 0x0896950Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889EAF0u) goto L_0889EAF0;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889EAF0:
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(0), aot_gpr_2);
aot_gpr_2 = (0u | 0u);
ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889EB08:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_gpr_5 = (2186u << 16u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), 0u);
aot_gpr_6 = (aot_gpr_29 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), aot_gpr_31);
aot_gpr_31 = (0x0889EB24u);
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-5412));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0117.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 622u, 0x0889EB24u, 0x089D86FCu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem);
#else
recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889EB24u) goto L_0889EB24;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889EB24:
aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889EB34:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
ctx.gpr[17] = (aot_gpr_4 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_31);
aot_gpr_31 = (0x0889EB50u);
ctx.gpr[16] = (aot_gpr_5 | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0089.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 624u, 0x0889EB50u, 0x089694F8u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 285u, aot_mem);
#else
recomp_unit_0089_entry(rt, ctx, 285u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 285u, 0x089694F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889EB50u) goto L_0889EB50;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889EB50:
aot_gpr_4 = (aot_gpr_2 | 0u);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889EB78;
}
goto L_0889EB5C;
}
L_0889EB5C:
aot_gpr_5 = (2186u << 16u);
aot_gpr_4 = (ctx.gpr[17] | 0u);
aot_gpr_6 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889EB70u);
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-5324));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0091.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 626u, 0x0889EB70u, 0x08972D0Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 614u, aot_mem);
#else
recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 614u, 0x08972D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889EB70u) goto L_0889EB70;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889EB70:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (ctx.gpr[17] | 0u);
if (branch_taken) {
goto L_0889EB80;
}
goto L_0889EB78;
}
L_0889EB78:
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(0), aot_gpr_4);
aot_gpr_2 = (0u | 0u);
goto L_0889EB80;
L_0889EB80:
{ std::uint32_t aot_run_words[3]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
aot_gpr_31 = aot_run_words[2];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889EB94:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[16]);
ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_31);
aot_gpr_31 = (0x0889EBB0u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0089.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 630u, 0x0889EBB0u, 0x089694F8u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 285u, aot_mem);
#else
recomp_unit_0089_entry(rt, ctx, 285u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 285u, 0x089694F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889EBB0u) goto L_0889EBB0;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889EBB0:
{ const bool branch_taken = aot_gpr_2 != 0u;
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_gpr_2);
if (branch_taken) {
goto L_0889EBCC;
}
goto L_0889EBB8;
}
L_0889EBB8:
aot_gpr_5 = (2186u << 16u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_6 = (aot_gpr_29 | 0u);
aot_gpr_31 = (0x0889EBCCu);
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-5324));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0091.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 632u, 0x0889EBCCu, 0x08972D0Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 614u, aot_mem);
#else
recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 614u, 0x08972D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889EBCCu) goto L_0889EBCC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889EBCC:
{ std::uint32_t aot_run_words[3]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
aot_gpr_2 = aot_run_words[0];
ctx.gpr[16] = aot_run_words[1];
aot_gpr_31 = aot_run_words[2];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889EBE0:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-16));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(0), ctx.gpr[16]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(4), ctx.gpr[17]);
ctx.gpr[16] = (aot_gpr_4 | 0u);
ctx.gpr[17] = (aot_gpr_6 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(8), aot_gpr_31);
aot_gpr_31 = (0x0889EC00u);
aot_gpr_4 = (aot_gpr_5 | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0089.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 634u, 0x0889EC00u, 0x089694F0u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 284u, aot_mem);
#else
recomp_unit_0089_entry(rt, ctx, 284u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 284u, 0x089694F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889EC00u) goto L_0889EC00;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889EC00:
aot_gpr_4 = (ctx.gpr[17] << 6u);
aot_gpr_4 = (aot_gpr_2 + aot_gpr_4);
{ std::uint32_t aot_run_words[3]{};
aot_mem.aot_direct_load32_block(aot_gpr_4 + static_cast<std::uint32_t>(0), aot_run_words);
aot_gpr_5 = aot_run_words[0];
aot_gpr_6 = aot_run_words[1];
ctx.gpr[7] = aot_run_words[2];
}
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(0), aot_gpr_5);
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(12)));
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(4), aot_gpr_6);
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(16)));
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(8), ctx.gpr[7]);
ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(20)));
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(12), aot_gpr_5);
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(24)));
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(16), aot_gpr_6);
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(28)));
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(20), ctx.gpr[7]);
ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(32)));
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(24), aot_gpr_5);
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(36)));
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(28), aot_gpr_6);
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(40)));
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(32), ctx.gpr[7]);
ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(44)));
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(36), aot_gpr_5);
aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(48)));
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(40), aot_gpr_6);
aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(52)));
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(44), ctx.gpr[7]);
ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(56)));
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(48), aot_gpr_5);
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(60)));
{ const std::uint32_t aot_run_words[3]{aot_gpr_6, ctx.gpr[7], aot_gpr_4};
aot_mem.aot_direct_store32_block(ctx.gpr[16] + static_cast<std::uint32_t>(52), aot_run_words); }
{ std::uint32_t aot_run_words[3]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(0), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
aot_gpr_31 = aot_run_words[2];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(16));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889EC9C:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-80));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(64), ctx.gpr[16]);
ctx.gpr[16] = (aot_gpr_4 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(68), aot_gpr_31);
aot_gpr_31 = (0x0889ECB4u);
aot_gpr_4 = (aot_gpr_29 | 0u);
goto L_0889EBE0;
L_0889ECB4:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889ECC0u);
aot_gpr_5 = (aot_gpr_29 | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0117.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 637u, 0x0889ECC0u, 0x089D8C3Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 149u, aot_mem);
#else
recomp_unit_0117_entry(rt, ctx, 149u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 149u, 0x089D8C3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889ECC0u) goto L_0889ECC0;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889ECC0:
ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(64)));
aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(68)));
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(80));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889ECD0:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-304));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(264), ctx.gpr[16]);
ctx.gpr[16] = (aot_gpr_4 | 0u);
{ const std::uint32_t aot_run_words[9]{ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], ctx.gpr[30], aot_gpr_31};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(268), aot_run_words); }
{ const bool branch_taken = aot_gpr_5 != 0u;
ctx.gpr[20] = (aot_gpr_5 | 0u);
if (branch_taken) {
goto L_0889ED10;
}
goto L_0889ED08;
}
L_0889ED08:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889EE14;
}
goto L_0889ED10;
}
L_0889ED10:
aot_gpr_31 = (0x0889ED18u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
goto L_0889E8F8;
L_0889ED18:
aot_gpr_31 = (0x0889ED20u);
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast<std::uint32_t>(20)));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0089.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 642u, 0x0889ED20u, 0x08968F88u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 226u, aot_mem);
#else
recomp_unit_0089_entry(rt, ctx, 226u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 226u, 0x08968F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889ED20u) goto L_0889ED20;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889ED20:
ctx.gpr[22] = (aot_gpr_2 | 0u);
aot_gpr_31 = (0x0889ED2Cu);
aot_gpr_4 = (ctx.gpr[16] | 0u);
goto L_0889EB08;
L_0889ED2C:
aot_fpr_12 = std::bit_cast<float>(0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(260), aot_gpr_2);
aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast<std::uint32_t>(4), std::bit_cast<std::uint32_t>(aot_fpr_12));
ctx.gpr[16] = (0u | 0u);
ctx.gpr[18] = (0u | 0u);
aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast<std::uint32_t>(8), std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_gpr_31 = (0x0889ED50u);
aot_gpr_4 = (ctx.gpr[22] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0089.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 644u, 0x0889ED50u, 0x08968F9Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 228u, aot_mem);
#else
recomp_unit_0089_entry(rt, ctx, 228u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 228u, 0x08968F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889ED50u) goto L_0889ED50;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889ED50:
ctx.gpr[17] = (0u | 1u);
aot_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[17]) < static_cast<std::int32_t>(aot_gpr_2) ? 1u : 0u);
{ const bool branch_taken = aot_gpr_4 == 0u;
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(256), aot_gpr_2);
if (branch_taken) {
goto L_0889EE14;
}
goto L_0889ED60;
}
L_0889ED60:
aot_gpr_4 = (0u | 12u);
ctx.gpr[30] = (aot_gpr_29 + static_cast<std::uint32_t>(128));
ctx.gpr[21] = (aot_gpr_29 + static_cast<std::uint32_t>(192));
ctx.gpr[23] = (aot_gpr_29 + static_cast<std::uint32_t>(176));
ctx.gpr[20] = (ctx.gpr[20] + aot_gpr_4);
ctx.gpr[19] = (0u | 8u);
goto L_0889ED78;
L_0889ED78:
aot_gpr_4 = (ctx.gpr[30] | 0u);
aot_gpr_5 = (ctx.gpr[22] | 0u);
aot_gpr_31 = (0x0889ED88u);
aot_gpr_6 = (ctx.gpr[17] | 0u);
goto L_0889EC9C;
L_0889ED88:
aot_gpr_4 = (ctx.gpr[21] | 0u);
aot_gpr_5 = (ctx.gpr[22] | 0u);
aot_gpr_31 = (0x0889ED98u);
aot_gpr_6 = (ctx.gpr[18] | 0u);
goto L_0889EBE0;
L_0889ED98:
aot_gpr_4 = (ctx.gpr[20] | 0u);
aot_gpr_5 = (ctx.gpr[23] | 0u);
aot_gpr_6 = (0u | 1u);
aot_gpr_31 = (0x0889EDACu);
ctx.gpr[7] = (ctx.gpr[21] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0023.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 649u, 0x0889EDACu, 0x088618A8u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 233u, aot_mem);
#else
recomp_unit_0023_entry(rt, ctx, 233u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 233u, 0x088618A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889EDACu) goto L_0889EDAC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889EDAC:
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(260)));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(48)));
aot_gpr_4 = (aot_gpr_4 + ctx.gpr[19]);
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(2)));
aot_gpr_5 = (aot_gpr_4 & 2u);
{ const bool branch_taken = aot_gpr_5 == 0u;
if (branch_taken) {
goto L_0889EDD8;
}
goto L_0889EDC8;
}
L_0889EDC8:
ctx.gpr[16] = (ctx.gpr[16] + static_cast<std::uint32_t>(1));
aot_gpr_5 = (ctx.gpr[16] << 2u);
aot_gpr_5 = (aot_gpr_29 + aot_gpr_5);
aot_mem.aot_direct_store32(aot_gpr_5 + static_cast<std::uint32_t>(0), ctx.gpr[18]);
goto L_0889EDD8;
L_0889EDD8:
aot_gpr_4 = (aot_gpr_4 & 1u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889EDF8;
}
goto L_0889EDE4;
}
L_0889EDE4:
aot_gpr_4 = (ctx.gpr[16] << 2u);
aot_gpr_4 = (aot_gpr_29 + aot_gpr_4);
ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
{ const bool branch_taken = 0u == 0u;
ctx.gpr[16] = (ctx.gpr[16] + static_cast<std::uint32_t>(-1));
if (branch_taken) {
goto L_0889EDFC;
}
goto L_0889EDF8;
}
L_0889EDF8:
ctx.gpr[18] = (ctx.gpr[17] | 0u);
goto L_0889EDFC;
L_0889EDFC:
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(256)));
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(1));
ctx.gpr[20] = (ctx.gpr[20] + static_cast<std::uint32_t>(12));
aot_gpr_4 = (static_cast<std::int32_t>(ctx.gpr[17]) < static_cast<std::int32_t>(aot_gpr_4) ? 1u : 0u);
{ const bool branch_taken = aot_gpr_4 != 0u;
ctx.gpr[19] = (ctx.gpr[19] + static_cast<std::uint32_t>(8));
if (branch_taken) {
goto L_0889ED78;
}
goto L_0889EE14;
}
L_0889EE14:
{ std::uint32_t aot_run_words[10]{};
aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast<std::uint32_t>(264), aot_run_words);
ctx.gpr[16] = aot_run_words[0];
ctx.gpr[17] = aot_run_words[1];
ctx.gpr[18] = aot_run_words[2];
ctx.gpr[19] = aot_run_words[3];
ctx.gpr[20] = aot_run_words[4];
ctx.gpr[21] = aot_run_words[5];
ctx.gpr[22] = aot_run_words[6];
ctx.gpr[23] = aot_run_words[7];
ctx.gpr[30] = aot_run_words[8];
aot_gpr_31 = aot_run_words[9];
}
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(304));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889EE44:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-112));
{ const std::uint32_t vfpu_address = aot_gpr_6 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = aot_gpr_5 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>();
ctx.gpr[9] = (aot_gpr_29 + static_cast<std::uint32_t>(16));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = ctx.gpr[9] + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = ctx.gpr[9] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 22u>();
aot_gpr_6 = (ctx.vfpu_scalar_bits_ct<28u>());
aot_fpr_13 = std::bit_cast<float>(aot_gpr_6);
aot_gpr_6 = (16256u << 16u);
aot_fpr_14 = std::bit_cast<float>(aot_gpr_6);
aot_fpr_13 = aot_fpr_14 / aot_fpr_13;
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(20)));
{ const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast<float>(0x7FC00000u); else aot_fpr_12 = fs * ft; }
aot_gpr_6 = (0u | 0u);
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[8] + static_cast<std::uint32_t>(4)));
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[15] <= ctx.fpr[16])) ? 0x00800000u : 0u);
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889EEC8;
}
goto L_0889EEA8;
}
L_0889EEA8:
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[8] + static_cast<std::uint32_t>(4)));
ctx.fpr[15] = ctx.fpr[15] - ctx.fpr[16];
aot_fpr_12 = ctx.fpr[15] / aot_fpr_12;
aot_gpr_6 = (0u | 1u);
{ const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast<float>(0x7FC00000u); else aot_fpr_12 = fs * ft; }
{ const bool branch_taken = 0u == 0u;
aot_fpr_12 = aot_fpr_14 - aot_fpr_12;
if (branch_taken) {
goto L_0889EEFC;
}
goto L_0889EEC8;
}
L_0889EEC8:
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[7] + static_cast<std::uint32_t>(4)));
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[15] < ctx.fpr[16])) ? 0x00800000u : 0u);
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889EEFC;
}
goto L_0889EEE0;
}
L_0889EEE0:
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[7] + static_cast<std::uint32_t>(4)));
ctx.fpr[15] = ctx.fpr[15] - ctx.fpr[16];
aot_fpr_12 = ctx.fpr[15] / aot_fpr_12;
aot_gpr_6 = (0u | 1u);
{ const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast<float>(0x7FC00000u); else aot_fpr_12 = fs * ft; }
aot_fpr_12 = aot_fpr_14 - aot_fpr_12;
goto L_0889EEFC;
L_0889EEFC:
{ const bool branch_taken = aot_gpr_6 == 0u;
if (branch_taken) {
goto L_0889EF34;
}
goto L_0889EF04;
}
L_0889EF04:
aot_gpr_6 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
ctx.set_vfpu_scalar_bits_ct<1u>(aot_gpr_6);
{ const std::uint32_t vfpu_address = ctx.gpr[9] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.execute_vfpu_vscl_ct<0u, 0u, 1u, 3u>();
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = ctx.gpr[9] + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = aot_gpr_5 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = ctx.gpr[9] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 0u>();
aot_gpr_6 = (aot_gpr_29 + static_cast<std::uint32_t>(32));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = aot_gpr_6 + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = aot_gpr_6 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
goto L_0889EF34;
L_0889EF34:
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(16)));
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
ctx.fpr[17] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[8] + static_cast<std::uint32_t>(0)));
{ const float fs = ctx.fpr[15]; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[15] = fs * ft; }
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[16] <= ctx.fpr[17])) ? 0x00800000u : 0u);
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
aot_gpr_6 = (0u | 0u);
if (branch_taken) {
goto L_0889EF74;
}
goto L_0889EF54;
}
L_0889EF54:
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[8] + static_cast<std::uint32_t>(0)));
aot_fpr_12 = aot_fpr_12 - ctx.fpr[16];
aot_fpr_12 = aot_fpr_12 / ctx.fpr[15];
aot_gpr_6 = (0u | 1u);
{ const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast<float>(0x7FC00000u); else aot_fpr_12 = fs * ft; }
{ const bool branch_taken = 0u == 0u;
aot_fpr_12 = aot_fpr_14 - aot_fpr_12;
if (branch_taken) {
goto L_0889EFA8;
}
goto L_0889EF74;
}
L_0889EF74:
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
ctx.fpr[17] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[7] + static_cast<std::uint32_t>(0)));
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[16] < ctx.fpr[17])) ? 0x00800000u : 0u);
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889EFA8;
}
goto L_0889EF8C;
}
L_0889EF8C:
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[7] + static_cast<std::uint32_t>(0)));
aot_fpr_12 = aot_fpr_12 - ctx.fpr[16];
aot_fpr_12 = aot_fpr_12 / ctx.fpr[15];
aot_gpr_6 = (0u | 1u);
{ const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast<float>(0x7FC00000u); else aot_fpr_12 = fs * ft; }
aot_fpr_12 = aot_fpr_14 - aot_fpr_12;
goto L_0889EFA8;
L_0889EFA8:
{ const bool branch_taken = aot_gpr_6 == 0u;
if (branch_taken) {
goto L_0889EFE0;
}
goto L_0889EFB0;
}
L_0889EFB0:
aot_gpr_6 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
ctx.set_vfpu_scalar_bits_ct<1u>(aot_gpr_6);
{ const std::uint32_t vfpu_address = ctx.gpr[9] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.execute_vfpu_vscl_ct<0u, 0u, 1u, 3u>();
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = ctx.gpr[9] + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = aot_gpr_5 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = ctx.gpr[9] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 0u>();
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(48));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = aot_gpr_5 + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = aot_gpr_5 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
goto L_0889EFE0;
L_0889EFE0:
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(112));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889EFE8:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-640));
ctx.fpr[18] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
aot_fpr_14 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(0)));
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[7] + static_cast<std::uint32_t>(0)));
ctx.fpr[18] = ctx.fpr[18] - aot_fpr_14;
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(0)));
ctx.fpr[17] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
ctx.fpr[19] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast<std::uint32_t>(4)));
aot_fpr_14 = ctx.fpr[15] - ctx.fpr[16];
ctx.gpr[8] = (ctx.gpr[8] & 255u);
ctx.fpr[17] = ctx.fpr[17] - ctx.fpr[19];
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[7] + static_cast<std::uint32_t>(4)));
ctx.fpr[15] = std::bit_cast<float>(0u);
ctx.fpr[0] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast<std::uint32_t>(4)));
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_14) || std::isnan(ctx.fpr[15])) && aot_fpr_14 == ctx.fpr[15])) ? 0x00800000u : 0u);
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
ctx.fpr[16] = ctx.fpr[16] - ctx.fpr[0];
if (branch_taken) {
goto L_0889F208;
}
goto L_0889F030;
}
L_0889F030:
aot_fpr_14 = ctx.fpr[18] / aot_fpr_14;
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_14 < ctx.fpr[15])) ? 0x00800000u : 0u);
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889F064;
}
goto L_0889F044;
}
L_0889F044:
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 < aot_fpr_14)) ? 0x00800000u : 0u);
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889F064;
}
goto L_0889F054;
}
L_0889F054:
{ const bool branch_taken = ctx.gpr[8] != 0u;
{ const float fs = aot_fpr_12; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[18] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[18] = fs * ft; }
if (branch_taken) {
goto L_0889F06C;
}
goto L_0889F05C;
}
L_0889F05C:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889F16C;
}
goto L_0889F064;
}
L_0889F064:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 0u);
if (branch_taken) {
goto L_0889F3F8;
}
goto L_0889F06C;
}
L_0889F06C:
ctx.gpr[11] = (std::bit_cast<std::uint32_t>(aot_fpr_14));
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[11]);
{ const std::uint32_t vfpu_address = aot_gpr_5 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
ctx.gpr[11] = (aot_gpr_29 + static_cast<std::uint32_t>(16));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = ctx.gpr[11] + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = ctx.gpr[11] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 0u>();
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = aot_gpr_29 + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
ctx.fpr[19] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(0)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(72), std::bit_cast<std::uint32_t>(ctx.fpr[19]));
ctx.fpr[19] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(4)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(76), std::bit_cast<std::uint32_t>(ctx.fpr[19]));
ctx.gpr[11] = (std::bit_cast<std::uint32_t>(aot_fpr_14));
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[11]);
{ const std::uint32_t vfpu_address = ctx.gpr[7] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
ctx.gpr[11] = (aot_gpr_29 + static_cast<std::uint32_t>(48));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = ctx.gpr[11] + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = aot_gpr_6 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = ctx.gpr[11] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 0u>();
ctx.gpr[11] = (aot_gpr_29 + static_cast<std::uint32_t>(32));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = ctx.gpr[11] + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
ctx.fpr[19] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(32)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(80), std::bit_cast<std::uint32_t>(ctx.fpr[19]));
ctx.fpr[0] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(36)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(84), std::bit_cast<std::uint32_t>(ctx.fpr[0]));
ctx.fpr[2] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(72)));
ctx.fpr[19] = ctx.fpr[2] - ctx.fpr[19];
ctx.fpr[1] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(76)));
ctx.fpr[0] = ctx.fpr[1] - ctx.fpr[0];
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(384), std::bit_cast<std::uint32_t>(ctx.fpr[19]));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(388), std::bit_cast<std::uint32_t>(ctx.fpr[0]));
ctx.gpr[11] = (std::bit_cast<std::uint32_t>(ctx.fpr[19]));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(88), ctx.gpr[11]);
ctx.gpr[11] = (std::bit_cast<std::uint32_t>(ctx.fpr[0]));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(92), ctx.gpr[11]);
ctx.fpr[3] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(88)));
ctx.gpr[11] = (std::bit_cast<std::uint32_t>(ctx.fpr[3]));
ctx.fpr[2] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(92)));
aot_gpr_2 = (std::bit_cast<std::uint32_t>(ctx.fpr[2]));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(64), ctx.gpr[11]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(68), aot_gpr_2);
ctx.fpr[1] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(64)));
{ const float fs = ctx.fpr[1]; const float ft = ctx.fpr[1]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[19] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[19] = fs * ft; }
ctx.fpr[0] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(68)));
{ const float fs = ctx.fpr[0]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[0] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[0] = fs * ft; }
ctx.fpr[19] = ctx.fpr[19] + ctx.fpr[0];
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[19] < ctx.fpr[18])) ? 0x00800000u : 0u);
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889F164;
}
goto L_0889F144;
}
L_0889F144:
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(80)));
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(84)));
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(aot_fpr_12), std::bit_cast<std::uint32_t>(aot_fpr_13), std::bit_cast<std::uint32_t>(ctx.fpr[15])};
aot_mem.aot_direct_store32_block(ctx.gpr[10] + static_cast<std::uint32_t>(0), aot_run_words); }
aot_mem.aot_direct_store32(ctx.gpr[9] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(aot_fpr_14));
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 1u);
if (branch_taken) {
goto L_0889F3F8;
}
goto L_0889F164;
}
L_0889F164:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889F208;
}
goto L_0889F16C;
}
L_0889F16C:
ctx.gpr[11] = (std::bit_cast<std::uint32_t>(aot_fpr_14));
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[11]);
{ const std::uint32_t vfpu_address = aot_gpr_5 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
ctx.gpr[11] = (aot_gpr_29 + static_cast<std::uint32_t>(96));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = ctx.gpr[11] + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = ctx.gpr[11] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 0u>();
ctx.gpr[11] = (aot_gpr_29 + static_cast<std::uint32_t>(144));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = ctx.gpr[11] + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
aot_gpr_2 = (std::bit_cast<std::uint32_t>(aot_fpr_14));
ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_2);
{ const std::uint32_t vfpu_address = ctx.gpr[7] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
aot_gpr_2 = (aot_gpr_29 + static_cast<std::uint32_t>(128));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = aot_gpr_2 + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = aot_gpr_6 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = aot_gpr_2 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 0u>();
ctx.gpr[3] = (aot_gpr_29 + static_cast<std::uint32_t>(112));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = ctx.gpr[3] + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = ctx.gpr[3] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = ctx.gpr[10] + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = ctx.gpr[11] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = ctx.gpr[10] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>();
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = aot_gpr_2 + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = aot_gpr_2 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
ctx.gpr[11] = (ctx.vfpu_scalar_bits_ct<28u>());
ctx.fpr[19] = std::bit_cast<float>(ctx.gpr[11]);
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[19] < ctx.fpr[18])) ? 0x00800000u : 0u);
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889F208;
}
goto L_0889F1FC;
}
L_0889F1FC:
aot_mem.aot_direct_store32(ctx.gpr[9] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(aot_fpr_14));
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 1u);
if (branch_taken) {
goto L_0889F3F8;
}
goto L_0889F208;
}
L_0889F208:
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[16]) || std::isnan(ctx.fpr[15])) && ctx.fpr[16] == ctx.fpr[15])) ? 0x00800000u : 0u);
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889F3F4;
}
goto L_0889F218;
}
L_0889F218:
aot_fpr_14 = ctx.fpr[17] / ctx.fpr[16];
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_14 < ctx.fpr[15])) ? 0x00800000u : 0u);
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889F24C;
}
goto L_0889F22C;
}
L_0889F22C:
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 < aot_fpr_14)) ? 0x00800000u : 0u);
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889F24C;
}
goto L_0889F23C;
}
L_0889F23C:
{ const bool branch_taken = ctx.gpr[8] != 0u;
{ const float fs = aot_fpr_12; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[18] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[18] = fs * ft; }
if (branch_taken) {
goto L_0889F254;
}
goto L_0889F244;
}
L_0889F244:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889F358;
}
goto L_0889F24C;
}
L_0889F24C:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 0u);
if (branch_taken) {
goto L_0889F3F8;
}
goto L_0889F254;
}
L_0889F254:
ctx.gpr[8] = (std::bit_cast<std::uint32_t>(aot_fpr_14));
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[8]);
{ const std::uint32_t vfpu_address = aot_gpr_5 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(176));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = aot_gpr_5 + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = aot_gpr_5 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 0u>();
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(160));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(160)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(232), std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(164)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(236), std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_gpr_4 = (std::bit_cast<std::uint32_t>(aot_fpr_14));
ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4);
{ const std::uint32_t vfpu_address = ctx.gpr[7] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(208));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = aot_gpr_6 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 0u>();
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(192));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(192)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(240), std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(196)));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(244), std::bit_cast<std::uint32_t>(aot_fpr_13));
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(232)));
aot_fpr_12 = ctx.fpr[16] - aot_fpr_12;
ctx.fpr[17] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(236)));
aot_fpr_13 = ctx.fpr[17] - aot_fpr_13;
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(544), std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(548), std::bit_cast<std::uint32_t>(aot_fpr_13));
aot_gpr_4 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(248), aot_gpr_4);
aot_gpr_4 = (std::bit_cast<std::uint32_t>(aot_fpr_13));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(252), aot_gpr_4);
ctx.fpr[19] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(248)));
aot_gpr_4 = (std::bit_cast<std::uint32_t>(ctx.fpr[19]));
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(252)));
aot_gpr_5 = (std::bit_cast<std::uint32_t>(ctx.fpr[16]));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(224), aot_gpr_4);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(228), aot_gpr_5);
ctx.fpr[17] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(224)));
{ const float fs = ctx.fpr[17]; const float ft = ctx.fpr[17]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast<float>(0x7FC00000u); else aot_fpr_12 = fs * ft; }
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(228)));
{ const float fs = aot_fpr_13; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast<float>(0x7FC00000u); else aot_fpr_13 = fs * ft; }
aot_fpr_12 = aot_fpr_12 + aot_fpr_13;
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[18])) ? 0x00800000u : 0u);
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889F350;
}
goto L_0889F330;
}
L_0889F330:
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(240)));
aot_fpr_13 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast<std::uint32_t>(244)));
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(aot_fpr_12), std::bit_cast<std::uint32_t>(aot_fpr_13), std::bit_cast<std::uint32_t>(ctx.fpr[15])};
aot_mem.aot_direct_store32_block(ctx.gpr[10] + static_cast<std::uint32_t>(0), aot_run_words); }
aot_mem.aot_direct_store32(ctx.gpr[9] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(aot_fpr_14));
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 1u);
if (branch_taken) {
goto L_0889F3F8;
}
goto L_0889F350;
}
L_0889F350:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889F3F4;
}
goto L_0889F358;
}
L_0889F358:
ctx.gpr[8] = (std::bit_cast<std::uint32_t>(aot_fpr_14));
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[8]);
{ const std::uint32_t vfpu_address = aot_gpr_5 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(256));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = aot_gpr_5 + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = aot_gpr_5 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 0u>();
aot_gpr_4 = (aot_gpr_29 + static_cast<std::uint32_t>(304));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
aot_gpr_5 = (std::bit_cast<std::uint32_t>(aot_fpr_14));
ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_5);
{ const std::uint32_t vfpu_address = ctx.gpr[7] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
aot_gpr_5 = (aot_gpr_29 + static_cast<std::uint32_t>(288));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = aot_gpr_5 + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = aot_gpr_6 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = aot_gpr_5 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 0u>();
aot_gpr_6 = (aot_gpr_29 + static_cast<std::uint32_t>(272));
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = aot_gpr_6 + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = aot_gpr_6 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = ctx.gpr[10] + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
{ const std::uint32_t vfpu_address = ctx.gpr[10] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>();
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = aot_gpr_5 + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = aot_gpr_5 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>());
aot_fpr_12 = std::bit_cast<float>(aot_gpr_4);
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[18])) ? 0x00800000u : 0u);
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889F3F4;
}
goto L_0889F3E8;
}
L_0889F3E8:
aot_mem.aot_direct_store32(ctx.gpr[9] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(aot_fpr_14));
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 1u);
if (branch_taken) {
goto L_0889F3F8;
}
goto L_0889F3F4;
}
L_0889F3F4:
aot_gpr_2 = (0u | 0u);
goto L_0889F3F8;
L_0889F3F8:
jump_target = aot_gpr_31;
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(640));
// PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared.
if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;
// PSPRECOMP_V812_SHARED_SCHED_JUMP
goto LOCAL_SCHED_BOUNDARY;
L_0889F400:
aot_gpr_29 = (aot_gpr_29 + static_cast<std::uint32_t>(-288));
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(260), ctx.gpr[16]);
ctx.gpr[16] = (aot_gpr_4 | 0u);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(276), ctx.gpr[20]);
ctx.gpr[20] = (ctx.gpr[7] | 0u);
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
{ const std::uint32_t aot_run_words[4]{std::bit_cast<std::uint32_t>(aot_fpr_20), std::bit_cast<std::uint32_t>(ctx.fpr[22]), std::bit_cast<std::uint32_t>(ctx.fpr[24]), std::bit_cast<std::uint32_t>(ctx.fpr[26])};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(244), aot_run_words); }
{ const std::uint32_t aot_run_words[3]{ctx.gpr[17], ctx.gpr[18], ctx.gpr[19]};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(264), aot_run_words); }
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(280), ctx.gpr[21]);
aot_mem.aot_direct_store32(aot_gpr_29 + static_cast<std::uint32_t>(284), aot_gpr_31);
aot_gpr_31 = (0x0889F444u);
ctx.gpr[17] = (0u | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0890D44C, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F444u) goto L_0889F444;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889F444:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889F460;
}
goto L_0889F44C;
}
L_0889F44C:
aot_gpr_31 = (0x0889F454u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0170.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 696u, 0x0889F454u, 0x08AAE958u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 526u, aot_mem);
#else
recomp_unit_0170_entry(rt, ctx, 526u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 526u, 0x08AAE958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F454u) goto L_0889F454;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889F454:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889F460;
}
goto L_0889F45C;
}
L_0889F45C:
ctx.gpr[17] = (0u | 1u);
goto L_0889F460;
L_0889F460:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(460)));
aot_gpr_4 = (aot_gpr_4 & 2048u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889F548;
}
goto L_0889F470;
}
L_0889F470:
{ const bool branch_taken = ctx.gpr[17] != 0u;
if (branch_taken) {
goto L_0889F548;
}
goto L_0889F478;
}
L_0889F478:
aot_gpr_31 = (0x0889F480u);
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0890D44C, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F480u) goto L_0889F480;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889F480:
{ const bool branch_taken = aot_gpr_2 != 0u;
if (branch_taken) {
goto L_0889F49C;
}
goto L_0889F488;
}
L_0889F488:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(460)));
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2049));
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
{ const bool branch_taken = 0u == 0u;
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(460), aot_gpr_4);
if (branch_taken) {
goto L_0889F554;
}
goto L_0889F49C;
}
L_0889F49C:
aot_gpr_31 = (0x0889F4A4u);
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0082.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 704u, 0x0889F4A4u, 0x0894D4DCu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 295u, aot_mem);
#else
recomp_unit_0082_entry(rt, ctx, 295u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 295u, 0x0894D4DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F4A4u) goto L_0889F4A4;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889F4A4:
aot_gpr_31 = (0x0889F4ACu);
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 705u, 0x0889F4ACu, 0x08910B38u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem);
#else
recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F4ACu) goto L_0889F4AC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889F4AC:
{ const bool branch_taken = aot_gpr_2 != 0u;
if (branch_taken) {
goto L_0889F524;
}
goto L_0889F4B4;
}
L_0889F4B4:
aot_gpr_31 = (0x0889F4BCu);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0036.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 707u, 0x0889F4BCu, 0x088954ACu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 273u, aot_mem);
#else
recomp_unit_0036_entry(rt, ctx, 273u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 273u, 0x088954ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F4BCu) goto L_0889F4BC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889F4BC:
{ const bool branch_taken = aot_gpr_2 != 0u;
if (branch_taken) {
goto L_0889F524;
}
goto L_0889F4C4;
}
L_0889F4C4:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(1929))))));
aot_gpr_6 = (aot_gpr_5 << 5u);
aot_gpr_5 = (aot_gpr_5 << 2u);
aot_gpr_5 = (aot_gpr_6 - aot_gpr_5);
aot_gpr_4 = (aot_gpr_4 + aot_gpr_5);
aot_gpr_31 = (0x0889F4E4u);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(1396));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0143.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 709u, 0x0889F4E4u, 0x08A40D34u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem);
#else
recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F4E4u) goto L_0889F4E4;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889F4E4:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889F50C;
}
goto L_0889F4EC;
}
L_0889F4EC:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(460)));
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2049));
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(460), aot_gpr_4);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-4097));
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
{ const bool branch_taken = 0u == 0u;
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(460), aot_gpr_4);
if (branch_taken) {
goto L_0889F540;
}
goto L_0889F50C;
}
L_0889F50C:
aot_gpr_31 = (0x0889F514u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0108.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 712u, 0x0889F514u, 0x089B4A30u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 184u, aot_mem);
#else
recomp_unit_0108_entry(rt, ctx, 184u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 184u, 0x089B4A30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F514u) goto L_0889F514;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889F514:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889F540;
}
goto L_0889F51C;
}
L_0889F51C:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 1u);
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 119u, 0x088A08ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889F524;
}
L_0889F524:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(460)));
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-2049));
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(460), aot_gpr_4);
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-4097));
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(460), aot_gpr_4);
goto L_0889F540;
L_0889F540:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889F554;
}
goto L_0889F548;
}
L_0889F548:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889F554u);
aot_gpr_5 = (0u | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0039.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 717u, 0x0889F554u, 0x088A1AF4u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 377u, aot_mem);
#else
recomp_unit_0039_entry(rt, ctx, 377u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 377u, 0x088A1AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F554u) goto L_0889F554;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889F554:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1728)));
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7660)));
aot_gpr_4 = (aot_gpr_5 < aot_gpr_4 ? 1u : 0u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889F578;
}
goto L_0889F568;
}
L_0889F568:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(460)));
aot_gpr_4 = (aot_gpr_4 & 512u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889F590;
}
goto L_0889F578;
}
L_0889F578:
aot_gpr_31 = (0x0889F580u);
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0890D44C, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F580u) goto L_0889F580;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889F580:
{ const bool branch_taken = aot_gpr_2 != 0u;
if (branch_taken) {
goto L_0889F5A8;
}
goto L_0889F588;
}
L_0889F588:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889F618;
}
goto L_0889F590;
}
L_0889F590:
ctx.gpr[17] = (0u | 1u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889F5A0u);
aot_gpr_5 = (0u | 1u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0890BE50, 65u, 982u, 0x0890BE50u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0065_entry, 65u, 982u, 0x0890BE50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F5A0u) goto L_0889F5A0;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889F5A0:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (ctx.gpr[17] | 0u);
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 119u, 0x088A08ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889F5A8;
}
L_0889F5A8:
aot_gpr_31 = (0x0889F5B0u);
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F5B0u) goto L_0889F5B0;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889F5B0:
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1360)));
aot_gpr_6 = (0u | 6u);
{ const bool branch_taken = aot_gpr_5 != aot_gpr_6;
aot_gpr_4 = (aot_gpr_2 | 0u);
if (branch_taken) {
goto L_0889F5D0;
}
goto L_0889F5C0;
}
L_0889F5C0:
aot_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(2318))))));
aot_gpr_5 = (aot_gpr_5 & 1u);
{ const bool branch_taken = aot_gpr_5 != 0u;
if (branch_taken) {
goto L_0889F5F8;
}
goto L_0889F5D0;
}
L_0889F5D0:
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast<std::uint32_t>(2318))))));
aot_gpr_4 = (aot_gpr_4 & 2u);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889F5F8;
}
goto L_0889F5E0;
}
L_0889F5E0:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_gpr_5 = (0u | 65u);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(2228));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
if (branch_taken) {
goto L_0889F618;
}
goto L_0889F5F8;
}
L_0889F5F8:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2228)));
aot_gpr_5 = (0u | 54u);
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
ctx.gpr[17] = (0u | 1u);
if (branch_taken) {
goto L_0889F610;
}
goto L_0889F608;
}
L_0889F608:
aot_gpr_31 = (0x0889F610u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0065.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 731u, 0x0889F610u, 0x0890905Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem);
#else
recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F610u) goto L_0889F610;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889F610:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (ctx.gpr[17] | 0u);
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 119u, 0x088A08ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889F618;
}
L_0889F618:
aot_gpr_31 = (0x0889F620u);
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0890D44C, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F620u) goto L_0889F620;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889F620:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889F670;
}
goto L_0889F628;
}
L_0889F628:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1360)));
aot_gpr_5 = (0u | 6u);
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
if (branch_taken) {
goto L_0889F670;
}
goto L_0889F638;
}
L_0889F638:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2276)));
aot_gpr_5 = (0u | 2u);
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
if (branch_taken) {
goto L_0889F670;
}
goto L_0889F648;
}
L_0889F648:
aot_gpr_31 = (0x0889F650u);
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F650u) goto L_0889F650;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889F650:
aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast<std::uint32_t>(2312)));
{ const bool branch_taken = static_cast<std::int32_t>(aot_gpr_4) <= 0;
if (branch_taken) {
goto L_0889F670;
}
goto L_0889F65C;
}
L_0889F65C:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(468)));
aot_gpr_5 = (128u << 16u);
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889F6FC;
}
goto L_0889F670;
}
L_0889F670:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_fpr_20 = std::bit_cast<float>(0u);
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(1252)));
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_20)) ? 0x00800000u : 0u);
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889F6D8;
}
goto L_0889F68C;
}
L_0889F68C:
{ const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 22u>();
aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>());
ctx.fpr[22] = std::bit_cast<float>(aot_gpr_4);
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast<std::uint32_t>(1929))))));
aot_gpr_5 = (aot_gpr_4 << 5u);
aot_gpr_4 = (aot_gpr_4 << 2u);
aot_gpr_4 = (aot_gpr_5 - aot_gpr_4);
aot_gpr_4 = (ctx.gpr[16] + aot_gpr_4);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(1396));
aot_gpr_31 = (0x0889F6C0u);
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B1FD70, 198u, 733u, 0x08B1FD70u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0198_entry, 198u, 733u, 0x08B1FD70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F6C0u) goto L_0889F6C0;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889F6C0:
ctx.fpr[24] = std::bit_cast<float>(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast<std::uint32_t>(8)));
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2120)));
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889F710;
}
goto L_0889F6D0;
}
L_0889F6D0:
{ const bool branch_taken = 0u == 0u;
ctx.fpr[26] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[24]));
if (branch_taken) {
goto L_0889F71C;
}
goto L_0889F6D8;
}
L_0889F6D8:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(460)));
aot_gpr_5 = (0u + static_cast<std::uint32_t>(-257));
aot_gpr_4 = (aot_gpr_4 | 128u);
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(460), aot_gpr_4);
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
aot_gpr_4 = (aot_gpr_4 | 256u);
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(460), aot_gpr_4);
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 1u);
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 119u, 0x088A08ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889F6FC;
}
L_0889F6FC:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889F708u);
aot_gpr_5 = (0u | 3u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0178.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 745u, 0x0889F708u, 0x08ACD4BCu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem);
#else
recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F708u) goto L_0889F708;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889F708:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 1u);
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 119u, 0x088A08ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889F710;
}
L_0889F710:
aot_gpr_4 = (16448u << 16u);
ctx.fpr[26] = std::bit_cast<float>(aot_gpr_4);
ctx.fpr[26] = ctx.fpr[24] / ctx.fpr[26];
goto L_0889F71C;
L_0889F71C:
aot_gpr_31 = (0x0889F724u);
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 748u, 0x0889F724u, 0x08910B38u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem);
#else
recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F724u) goto L_0889F724;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889F724:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889F744;
}
goto L_0889F72C;
}
L_0889F72C:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_gpr_5 = (0u | 60u);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(2228));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 44u, 0x088A0284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889F744;
}
L_0889F744:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2244)));
ctx.gpr[18] = (0u | 1u);
{ const bool branch_taken = aot_gpr_4 != ctx.gpr[18];
ctx.gpr[19] = (0u | 6u);
if (branch_taken) {
goto L_0889F784;
}
goto L_0889F754;
}
L_0889F754:
aot_gpr_31 = (0x0889F75Cu);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0064.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 752u, 0x0889F75Cu, 0x08906DE4u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem);
#else
recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F75Cu) goto L_0889F75C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889F75C:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889F784;
}
goto L_0889F764;
}
L_0889F764:
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_6 = (0u | 0u);
ctx.gpr[7] = (0u | 0u);
aot_gpr_31 = (0x0889F77Cu);
ctx.gpr[8] = (0u | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0065.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 754u, 0x0889F77Cu, 0x08909A64u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem);
#else
recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F77Cu) goto L_0889F77C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889F77C:
aot_gpr_31 = (0x0889F784u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0065.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 755u, 0x0889F784u, 0x0890932Cu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 332u, aot_mem);
#else
recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 332u, 0x0890932Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F784u) goto L_0889F784;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889F784:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1360)));
{ const bool branch_taken = aot_gpr_4 != ctx.gpr[19];
if (branch_taken) {
goto L_0889F85C;
}
goto L_0889F790;
}
L_0889F790:
aot_gpr_31 = (0x0889F798u);
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0890D44C, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F798u) goto L_0889F798;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889F798:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889F85C;
}
goto L_0889F7A0;
}
L_0889F7A0:
aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast<std::uint32_t>(2301)));
aot_gpr_5 = (16384u << 16u);
{ const bool branch_taken = aot_gpr_4 == 0u;
aot_fpr_12 = std::bit_cast<float>(aot_gpr_5);
if (branch_taken) {
goto L_0889F7F0;
}
goto L_0889F7B0;
}
L_0889F7B0:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_gpr_5 = (0u | 45u);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(2228));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
if (branch_taken) {
goto L_0889F7D4;
}
goto L_0889F7C8;
}
L_0889F7C8:
aot_gpr_4 = (16480u << 16u);
{ const bool branch_taken = 0u == 0u;
aot_fpr_12 = std::bit_cast<float>(aot_gpr_4);
if (branch_taken) {
goto L_0889F7F0;
}
goto L_0889F7D4;
}
L_0889F7D4:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_gpr_5 = (0u | 60u);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(2228));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
if (branch_taken) {
goto L_0889F7F0;
}
goto L_0889F7EC;
}
L_0889F7EC:
aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast<std::uint32_t>(2301), static_cast<std::uint8_t>(0u));
goto L_0889F7F0;
L_0889F7F0:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2228)));
aot_gpr_5 = (0u | 17u);
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
if (branch_taken) {
goto L_0889F808;
}
goto L_0889F800;
}
L_0889F800:
aot_gpr_4 = (16544u << 16u);
aot_fpr_12 = std::bit_cast<float>(aot_gpr_4);
goto L_0889F808;
L_0889F808:
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] < aot_fpr_12)) ? 0x00800000u : 0u);
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889F85C;
}
goto L_0889F818;
}
L_0889F818:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7660)));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(1732)));
aot_gpr_4 = (aot_gpr_5 < aot_gpr_4 ? 1u : 0u);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889F848;
}
goto L_0889F830;
}
L_0889F830:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_gpr_5 = (0u | 60u);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(2228));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
if (branch_taken) {
goto L_0889F85C;
}
goto L_0889F848;
}
L_0889F848:
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_gpr_31 = (0x0889F854u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0140.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 769u, 0x0889F854u, 0x08A346B4u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 108u, aot_mem);
#else
recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 108u, 0x08A346B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F854u) goto L_0889F854;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889F854:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (0u | 2u);
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 119u, 0x088A08ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889F85C;
}
L_0889F85C:
aot_gpr_4 = (15820u << 16u);
aot_gpr_4 = (aot_gpr_4 | 52429u);
aot_fpr_12 = std::bit_cast<float>(aot_gpr_4);
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] <= aot_fpr_12)) ? 0x00800000u : 0u);
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889F8E0;
}
goto L_0889F878;
}
L_0889F878:
aot_fpr_13 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(aot_fpr_12));
aot_gpr_4 = (std::bit_cast<std::uint32_t>(ctx.fpr[22]));
ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4);
ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 16u>();
{ const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
const std::uint32_t vfpu_address = aot_gpr_29 + static_cast<std::uint32_t>(0);
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
{ const std::uint32_t vfpu_address = aot_gpr_29 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
aot_gpr_4 = (ctx.gpr[16] + static_cast<std::uint32_t>(16));
{ const std::uint32_t vfpu_address = aot_gpr_4 + static_cast<std::uint32_t>(0);
std::uint32_t vfpu_words[4]{};
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
float vfpu_value[4]{
std::bit_cast<float>(vfpu_words[0]),
std::bit_cast<float>(vfpu_words[1]),
std::bit_cast<float>(vfpu_words[2]),
std::bit_cast<float>(vfpu_words[3])};
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>();
aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>());
aot_fpr_12 = std::bit_cast<float>(aot_gpr_4);
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_13)) ? 0x00800000u : 0u);
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889F8E0;
}
goto L_0889F8BC;
}
L_0889F8BC:
aot_gpr_4 = (std::bit_cast<std::uint32_t>(aot_fpr_12));
ctx.set_vfpu_scalar_bits_ct<0u>(aot_gpr_4);
{ const float vfpu_constant = std::bit_cast<float>(0x3FC90FDBu);
const float vfpu_value[4]{vfpu_constant, vfpu_constant, vfpu_constant, vfpu_constant};
ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_value); }
ctx.execute_vfpu_unary_ct<0u, 0u, 1u, 5u>();
ctx.execute_vfpu_unary_ct<64u, 0u, 1u, 23u>();
ctx.execute_vfpu_vec3_ct<0u, 64u, 32u, 1u, 2u>();
ctx.execute_vfpu_vec3_ct<64u, 32u, 0u, 1u, 1u>();
aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<64u>());
aot_fpr_12 = std::bit_cast<float>(aot_gpr_4);
goto L_0889F8E0;
L_0889F8E0:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1772)));
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889F914;
}
goto L_0889F8EC;
}
L_0889F8EC:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1776)));
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889F914;
}
goto L_0889F8F8;
}
L_0889F8F8:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1772)));
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1776)));
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7660)));
aot_gpr_4 = (aot_gpr_4 + aot_gpr_5);
aot_gpr_4 = (aot_gpr_4 < aot_gpr_6 ? 1u : 0u);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889F92C;
}
goto L_0889F914;
}
L_0889F914:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(460)));
aot_gpr_4 = (aot_gpr_4 & 512u);
if (aot_gpr_4 == 0u) {
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(456)));
goto L_0889F94C;
}
goto L_0889F924;
L_0889F924:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889FBC0;
}
goto L_0889F92C;
}
L_0889F92C:
aot_gpr_31 = (0x0889F934u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08909B60, 65u, 454u, 0x08909B60u>(ctx, &aot_mem, ctx.pc, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[16], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0065_entry, 65u, 454u, 0x08909B60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F934u) goto L_0889F934;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889F934:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(460)));
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(1772), 0u);
aot_gpr_4 = (aot_gpr_4 | 128u);
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(460), aot_gpr_4);
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (ctx.gpr[18] | 0u);
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 119u, 0x088A08ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889F94C;
}
L_0889F94C:
ctx.gpr[20] = (4096u << 16u);
aot_gpr_4 = (aot_gpr_4 & ctx.gpr[20]);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889FBC0;
}
goto L_0889F95C;
}
L_0889F95C:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2228)));
aot_gpr_5 = (0u | 16u);
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
if (branch_taken) {
goto L_0889FBC0;
}
goto L_0889F96C;
}
L_0889F96C:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(460)));
aot_gpr_5 = (128u << 16u);
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889FBC0;
}
goto L_0889F980;
}
L_0889F980:
{ const bool branch_taken = ctx.gpr[17] != 0u;
if (branch_taken) {
goto L_0889FBC0;
}
goto L_0889F988;
}
L_0889F988:
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] <= ctx.fpr[24])) ? 0x00800000u : 0u);
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
ctx.gpr[21] = (0u | 61u);
if (branch_taken) {
goto L_0889FA3C;
}
goto L_0889F998;
}
L_0889F998:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7660)));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(1732)));
aot_gpr_4 = (aot_gpr_5 < aot_gpr_4 ? 1u : 0u);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889FA3C;
}
goto L_0889F9B0;
}
L_0889F9B0:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_gpr_5 = (0u | 65u);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(2228));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
if (branch_taken) {
goto L_0889FA3C;
}
goto L_0889F9C8;
}
L_0889F9C8:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(2228));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
{ const bool branch_taken = aot_gpr_4 == ctx.gpr[21];
aot_gpr_4 = (16448u << 16u);
if (branch_taken) {
goto L_0889F9F8;
}
goto L_0889F9DC;
}
L_0889F9DC:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_gpr_5 = (0u | 59u);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(2228));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
if (branch_taken) {
goto L_0889FA0C;
}
goto L_0889F9F4;
}
L_0889F9F4:
aot_gpr_4 = (16448u << 16u);
goto L_0889F9F8;
L_0889F9F8:
aot_fpr_12 = std::bit_cast<float>(aot_gpr_4);
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] < aot_fpr_12)) ? 0x00800000u : 0u);
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889FA3C;
}
goto L_0889FA0C;
}
L_0889FA0C:
aot_gpr_31 = (0x0889FA14u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FA14u) goto L_0889FA14;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889FA14:
aot_gpr_4 = (aot_gpr_2 & 65535u);
aot_gpr_4 = (aot_gpr_4 & 0u);
{ const bool branch_taken = aot_gpr_4 == 0u;
aot_gpr_4 = (16192u << 16u);
if (branch_taken) {
goto L_0889FBC0;
}
goto L_0889FA24;
}
L_0889FA24:
aot_fpr_12 = std::bit_cast<float>(aot_gpr_4);
{ const float fs = ctx.fpr[24]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast<float>(0x7FC00000u); else aot_fpr_12 = fs * ft; }
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] <= aot_fpr_12)) ? 0x00800000u : 0u);
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889FBC0;
}
goto L_0889FA3C;
}
L_0889FA3C:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(2228));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
{ const bool branch_taken = aot_gpr_4 == ctx.gpr[21];
if (branch_taken) {
goto L_0889FA68;
}
goto L_0889FA50;
}
L_0889FA50:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_gpr_5 = (0u | 59u);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(2228));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
{ const bool branch_taken = aot_gpr_4 != aot_gpr_5;
if (branch_taken) {
goto L_0889FA70;
}
goto L_0889FA68;
}
L_0889FA68:
aot_gpr_4 = (16384u << 16u);
ctx.fpr[26] = std::bit_cast<float>(aot_gpr_4);
goto L_0889FA70;
L_0889FA70:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(456)));
aot_gpr_5 = (16384u << 16u);
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889FB28;
}
goto L_0889FA84;
}
L_0889FA84:
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(aot_fpr_20), std::bit_cast<std::uint32_t>(aot_fpr_20), std::bit_cast<std::uint32_t>(aot_fpr_20)};
aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast<std::uint32_t>(32), aot_run_words); }
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
ctx.gpr[17] = (aot_gpr_29 + static_cast<std::uint32_t>(32));
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(48));
aot_gpr_31 = (0x0889FAA4u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 799u, 0x0889FAA4u, 0x08910218u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem);
#else
recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FAA4u) goto L_0889FAA4;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889FAA4:
aot_gpr_31 = (0x0889FAACu);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0066.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 800u, 0x0889FAACu, 0x0890FCD8u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem);
#else
recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FAACu) goto L_0889FAAC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889FAAC:
{ const bool branch_taken = aot_gpr_2 != 0u;
if (branch_taken) {
goto L_0889FAD4;
}
goto L_0889FAB4;
}
L_0889FAB4:
ctx.gpr[18] = (aot_gpr_29 + static_cast<std::uint32_t>(48));
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889FAC4u);
aot_gpr_5 = (ctx.gpr[18] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 802u, 0x0889FAC4u, 0x08910074u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem);
#else
recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FAC4u) goto L_0889FAC4;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889FAC4:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_5 = (ctx.gpr[18] | 0u);
aot_gpr_31 = (0x0889FAD4u);
aot_gpr_6 = (ctx.gpr[17] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0108.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 803u, 0x0889FAD4u, 0x089B5A20u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 358u, aot_mem);
#else
recomp_unit_0108_entry(rt, ctx, 358u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 358u, 0x089B5A20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FAD4u) goto L_0889FAD4;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889FAD4:
aot_gpr_31 = (0x0889FADCu);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0066.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 804u, 0x0889FADCu, 0x0890FCD8u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem);
#else
recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FADCu) goto L_0889FADC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889FADC:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889FB00;
}
goto L_0889FAE4;
}
L_0889FAE4:
ctx.gpr[17] = (aot_gpr_29 + static_cast<std::uint32_t>(64));
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889FAF4u);
aot_gpr_5 = (ctx.gpr[17] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 806u, 0x0889FAF4u, 0x089105E8u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 94u, aot_mem);
#else
recomp_unit_0067_entry(rt, ctx, 94u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 94u, 0x089105E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FAF4u) goto L_0889FAF4;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889FAF4:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889FB00u);
aot_gpr_5 = (ctx.gpr[17] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 807u, 0x0889FB00u, 0x08910218u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem);
#else
recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FB00u) goto L_0889FB00;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889FB00:
ctx.gpr[17] = (aot_gpr_29 + static_cast<std::uint32_t>(16));
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889FB10u);
aot_gpr_5 = (ctx.gpr[17] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 808u, 0x0889FB10u, 0x08910074u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem);
#else
recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FB10u) goto L_0889FB10;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889FB10:
aot_fpr_12 = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2060)));
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889FB20u);
aot_gpr_5 = (ctx.gpr[17] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0065.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 809u, 0x0889FB20u, 0x0890AA84u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 686u, aot_mem);
#else
recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 686u, 0x0890AA84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FB20u) goto L_0889FB20;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889FB20:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
goto L_0889FB38;
}
goto L_0889FB28;
}
L_0889FB28:
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_fpr_12 = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[26]));
aot_gpr_31 = (0x0889FB38u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0065.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 811u, 0x0889FB38u, 0x0890AED8u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 751u, aot_mem);
#else
recomp_unit_0065_entry(rt, ctx, 751u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 751u, 0x0890AED8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FB38u) goto L_0889FB38;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889FB38:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(1300)));
{ const bool branch_taken = aot_gpr_4 == 0u;
aot_gpr_4 = (16544u << 16u);
if (branch_taken) {
goto L_0889FB88;
}
goto L_0889FB48;
}
L_0889FB48:
aot_fpr_12 = std::bit_cast<float>(aot_gpr_4);
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] < aot_fpr_12)) ? 0x00800000u : 0u);
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889FB88;
}
goto L_0889FB5C;
}
L_0889FB5C:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(456)));
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(468)));
aot_gpr_4 = (aot_gpr_4 | ctx.gpr[20]);
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(456), aot_gpr_4);
aot_gpr_4 = (aot_gpr_5 | 2048u);
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(468), aot_gpr_4);
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889FB80u);
aot_gpr_5 = (0u | 1u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_0890BE50, 65u, 982u, 0x0890BE50u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0065_entry, 65u, 982u, 0x0890BE50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FB80u) goto L_0889FB80;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889FB80:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 43u, 0x088A027Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889FB88;
}
L_0889FB88:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(468)));
aot_gpr_4 = (aot_gpr_4 & 2048u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 43u, 0x088A027Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889FB98;
}
L_0889FB98:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(456)));
aot_gpr_5 = (61440u << 16u);
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(468)));
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(456), aot_gpr_4);
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-2049));
aot_gpr_4 = (aot_gpr_5 & aot_gpr_4);
{ const bool branch_taken = 0u == 0u;
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(468), aot_gpr_4);
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 43u, 0x088A027Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889FBC0;
}
L_0889FBC0:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2228)));
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1744)));
ctx.gpr[20] = (aot_gpr_4 ^ 39u);
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7660)));
aot_gpr_4 = (aot_gpr_5 < aot_gpr_4 ? 1u : 0u);
{ const bool branch_taken = aot_gpr_4 == 0u;
ctx.gpr[20] = (ctx.gpr[20] < static_cast<std::uint32_t>(1) ? 1u : 0u);
if (branch_taken) {
goto L_0889FE60;
}
goto L_0889FBDC;
}
L_0889FBDC:
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] < ctx.fpr[24])) ? 0x00800000u : 0u);
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889FE60;
}
goto L_0889FBEC;
}
L_0889FBEC:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_gpr_5 = (0u | 46u);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(2228));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
if (branch_taken) {
goto L_0889FE60;
}
goto L_0889FC04;
}
L_0889FC04:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_gpr_5 = (0u | 60u);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(2228));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(0)));
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
if (branch_taken) {
goto L_0889FE60;
}
goto L_0889FC1C;
}
L_0889FC1C:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(460)));
aot_gpr_4 = (aot_gpr_4 & 8192u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889FC3C;
}
goto L_0889FC2C;
}
L_0889FC2C:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(460)));
aot_gpr_4 = (aot_gpr_4 & 4096u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889FD30;
}
goto L_0889FC3C;
}
L_0889FC3C:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(460)));
aot_gpr_5 = (65472u << 16u);
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(460), aot_gpr_4);
aot_gpr_31 = (0x0889FC5Cu);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0056.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 824u, 0x0889FC5Cu, 0x088E76D4u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 716u, aot_mem);
#else
recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 716u, 0x088E76D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FC5Cu) goto L_0889FC5C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889FC5C:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(92)));
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(240));
aot_gpr_6 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast<std::uint32_t>(0))))));
ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
jump_target = ctx.gpr[7];
aot_gpr_31 = (0x0889FC78u);
aot_gpr_4 = (ctx.gpr[16] + aot_gpr_6);
ctx.pc = jump_target;
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FC78u) goto L_0889FC78;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889FC78:
{ const bool branch_taken = ctx.gpr[20] == 0u;
if (branch_taken) {
goto L_0889FD44;
}
goto L_0889FC80;
}
L_0889FC80:
aot_gpr_31 = (0x0889FC88u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FC88u) goto L_0889FC88;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889FC88:
ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25268)));
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25272)));
aot_gpr_4 = (aot_gpr_2 | 0u);
aot_gpr_31 = (0x0889FC9Cu);
aot_gpr_5 = (0u | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B60E5C, 215u, 177u, 0x08B60E5Cu>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[9], ctx.gpr[10], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0215_entry, 215u, 177u, 0x08B60E5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FC9Cu) goto L_0889FC9C;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889FC9C:
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25260)));
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25264)));
ctx.gpr[1] = (ctx.gpr[3] << 1u);
aot_gpr_6 = (aot_gpr_2 >> 31u);
ctx.gpr[7] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[3]) >> 31u));
aot_gpr_6 = (ctx.gpr[1] | aot_gpr_6);
ctx.gpr[8] = (aot_gpr_6 + aot_gpr_4);
ctx.gpr[9] = (ctx.gpr[8] < aot_gpr_4 ? 1u : 0u);
aot_gpr_6 = (ctx.gpr[9] + ctx.gpr[7]);
aot_gpr_5 = (aot_gpr_6 + aot_gpr_5);
aot_gpr_4 = (ctx.gpr[8] | 0u);
aot_gpr_5 = (aot_gpr_4 | 0u);
aot_gpr_31 = (0x0889FCD4u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0065.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 829u, 0x0889FCD4u, 0x0890A5BCu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 613u, aot_mem);
#else
recomp_unit_0065_entry(rt, ctx, 613u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 613u, 0x0890A5BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FCD4u) goto L_0889FCD4;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889FCD4:
aot_gpr_31 = (0x0889FCDCu);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FCDCu) goto L_0889FCDC;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889FCDC:
ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25252)));
ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25256)));
aot_gpr_4 = (aot_gpr_2 | 0u);
aot_gpr_5 = (0u | 0u);
ctx.gpr[7] = (ctx.gpr[19] | 0u);
aot_gpr_31 = (0x0889FCF8u);
aot_gpr_6 = (ctx.gpr[18] | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B60E5C, 215u, 177u, 0x08B60E5Cu>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[9], ctx.gpr[10], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0215_entry, 215u, 177u, 0x08B60E5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FCF8u) goto L_0889FCF8;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889FCF8:
ctx.gpr[1] = (ctx.gpr[3] << 1u);
aot_gpr_4 = (aot_gpr_2 >> 31u);
aot_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[3]) >> 31u));
aot_gpr_4 = (ctx.gpr[1] | aot_gpr_4);
aot_gpr_6 = (aot_gpr_4 + ctx.gpr[18]);
ctx.gpr[7] = (aot_gpr_6 < ctx.gpr[18] ? 1u : 0u);
aot_gpr_4 = (ctx.gpr[7] + aot_gpr_5);
aot_gpr_5 = (aot_gpr_4 + ctx.gpr[19]);
aot_gpr_4 = (aot_gpr_6 | 0u);
aot_gpr_5 = (aot_gpr_4 | 0u);
aot_gpr_31 = (0x0889FD28u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0065.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 832u, 0x0889FD28u, 0x0890A484u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem);
#else
recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FD28u) goto L_0889FD28;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889FD28:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 40u, 0x088A0238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889FD30;
}
L_0889FD30:
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889FD3Cu);
aot_gpr_5 = (0u | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0105.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 834u, 0x0889FD3Cu, 0x089AB4FCu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 696u, aot_mem);
#else
recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 696u, 0x089AB4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FD3Cu) goto L_0889FD3C;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889FD3C:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (ctx.gpr[18] | 0u);
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 119u, 0x088A08ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889FD44;
}
L_0889FD44:
aot_gpr_31 = (0x0889FD4Cu);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FD4Cu) goto L_0889FD4C;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889FD4C:
ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25244)));
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25248)));
aot_gpr_4 = (aot_gpr_2 | 0u);
aot_gpr_31 = (0x0889FD60u);
aot_gpr_5 = (0u | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B60E5C, 215u, 177u, 0x08B60E5Cu>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[9], ctx.gpr[10], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0215_entry, 215u, 177u, 0x08B60E5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FD60u) goto L_0889FD60;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889FD60:
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25236)));
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25240)));
ctx.gpr[1] = (ctx.gpr[3] << 1u);
aot_gpr_6 = (aot_gpr_2 >> 31u);
ctx.gpr[7] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[3]) >> 31u));
aot_gpr_6 = (ctx.gpr[1] | aot_gpr_6);
ctx.gpr[8] = (aot_gpr_6 + aot_gpr_4);
ctx.gpr[9] = (ctx.gpr[8] < aot_gpr_4 ? 1u : 0u);
aot_gpr_6 = (ctx.gpr[9] + ctx.gpr[7]);
aot_gpr_5 = (aot_gpr_6 + aot_gpr_5);
aot_gpr_4 = (ctx.gpr[8] | 0u);
aot_gpr_5 = (aot_gpr_4 | 0u);
aot_gpr_31 = (0x0889FD98u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0065.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 838u, 0x0889FD98u, 0x0890A5BCu)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 613u, aot_mem);
#else
recomp_unit_0065_entry(rt, ctx, 613u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 613u, 0x0890A5BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FD98u) goto L_0889FD98;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889FD98:
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[26] < ctx.fpr[22])) ? 0x00800000u : 0u);
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
if (branch_taken) {
goto L_0889FE04;
}
goto L_0889FDA8;
}
L_0889FDA8:
aot_gpr_31 = (0x0889FDB0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FDB0u) goto L_0889FDB0;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889FDB0:
ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25252)));
ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25256)));
aot_gpr_4 = (aot_gpr_2 | 0u);
aot_gpr_5 = (0u | 0u);
ctx.gpr[7] = (ctx.gpr[19] | 0u);
aot_gpr_31 = (0x0889FDCCu);
aot_gpr_6 = (ctx.gpr[18] | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B60E5C, 215u, 177u, 0x08B60E5Cu>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[9], ctx.gpr[10], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0215_entry, 215u, 177u, 0x08B60E5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FDCCu) goto L_0889FDCC;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889FDCC:
ctx.gpr[1] = (ctx.gpr[3] << 1u);
aot_gpr_4 = (aot_gpr_2 >> 31u);
aot_gpr_5 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[3]) >> 31u));
aot_gpr_4 = (ctx.gpr[1] | aot_gpr_4);
aot_gpr_6 = (aot_gpr_4 + ctx.gpr[18]);
ctx.gpr[7] = (aot_gpr_6 < ctx.gpr[18] ? 1u : 0u);
aot_gpr_4 = (ctx.gpr[7] + aot_gpr_5);
aot_gpr_5 = (aot_gpr_4 + ctx.gpr[19]);
aot_gpr_4 = (aot_gpr_6 | 0u);
aot_gpr_5 = (aot_gpr_4 | 0u);
aot_gpr_31 = (0x0889FDFCu);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0065.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 842u, 0x0889FDFCu, 0x0890A484u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem);
#else
recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FDFCu) goto L_0889FDFC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889FDFC:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 40u, 0x088A0238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889FE04;
}
L_0889FE04:
aot_gpr_31 = (0x0889FE0Cu);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FE0Cu) goto L_0889FE0C;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889FE0C:
ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25228)));
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25232)));
aot_gpr_4 = (aot_gpr_2 | 0u);
aot_gpr_31 = (0x0889FE20u);
aot_gpr_5 = (0u | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B60E5C, 215u, 177u, 0x08B60E5Cu>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[9], ctx.gpr[10], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0215_entry, 215u, 177u, 0x08B60E5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FE20u) goto L_0889FE20;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889FE20:
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25220)));
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25224)));
ctx.gpr[1] = (ctx.gpr[3] << 1u);
aot_gpr_6 = (aot_gpr_2 >> 31u);
ctx.gpr[7] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[3]) >> 31u));
aot_gpr_6 = (ctx.gpr[1] | aot_gpr_6);
ctx.gpr[8] = (aot_gpr_6 + aot_gpr_4);
ctx.gpr[9] = (ctx.gpr[8] < aot_gpr_4 ? 1u : 0u);
aot_gpr_6 = (ctx.gpr[9] + ctx.gpr[7]);
aot_gpr_5 = (aot_gpr_6 + aot_gpr_5);
aot_gpr_4 = (ctx.gpr[8] | 0u);
aot_gpr_5 = (aot_gpr_4 | 0u);
aot_gpr_31 = (0x0889FE58u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0065.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 846u, 0x0889FE58u, 0x0890A484u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem);
#else
recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FE58u) goto L_0889FE58;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889FE58:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 40u, 0x088A0238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889FE60;
}
L_0889FE60:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2192)));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(1300)));
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889FEA4;
}
goto L_0889FE70;
}
L_0889FE70:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(468)));
aot_gpr_4 = (aot_gpr_4 & 2048u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889FEA4;
}
goto L_0889FE80;
}
L_0889FE80:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(456)));
aot_gpr_5 = (61440u << 16u);
aot_gpr_5 = (aot_gpr_5 + static_cast<std::uint32_t>(-1));
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(468)));
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(456), aot_gpr_4);
aot_gpr_4 = (0u + static_cast<std::uint32_t>(-2049));
aot_gpr_4 = (aot_gpr_5 & aot_gpr_4);
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(468), aot_gpr_4);
goto L_0889FEA4;
L_0889FEA4:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2228)));
aot_gpr_5 = (0u | 16u);
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 40u, 0x088A0238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889FEB4;
}
L_0889FEB4:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2228)));
aot_gpr_5 = (0u | 17u);
{ const bool branch_taken = aot_gpr_4 == aot_gpr_5;
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 40u, 0x088A0238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889FEC4;
}
L_0889FEC4:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(460)));
aot_gpr_4 = (aot_gpr_4 & 2048u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889FF04;
}
goto L_0889FED4;
}
L_0889FED4:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(460)));
aot_gpr_4 = (aot_gpr_4 & 512u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889FF04;
}
goto L_0889FEE4;
}
L_0889FEE4:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(460)));
aot_gpr_4 = (aot_gpr_4 & 8192u);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889FF04;
}
goto L_0889FEF4;
}
L_0889FEF4:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(460)));
aot_gpr_4 = (aot_gpr_4 & 4096u);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889FF20;
}
goto L_0889FF04;
}
L_0889FF04:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(460)));
aot_gpr_5 = (64u << 16u);
aot_gpr_4 = (aot_gpr_4 & aot_gpr_5);
{ const bool branch_taken = aot_gpr_4 != 0u;
if (branch_taken) {
goto L_0889FF80;
}
goto L_0889FF18;
}
L_0889FF18:
{ const bool branch_taken = 0u == 0u;
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 7u, 0x088A0048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889FF20;
}
L_0889FF20:
aot_gpr_31 = (0x0889FF28u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FF28u) goto L_0889FF28;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889FF28:
ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25212)));
aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25216)));
aot_gpr_4 = (aot_gpr_2 | 0u);
aot_gpr_31 = (0x0889FF3Cu);
aot_gpr_5 = (0u | 0u);
if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B60E5C, 215u, 177u, 0x08B60E5Cu>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[9], ctx.gpr[10], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0215_entry, 215u, 177u, 0x08B60E5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FF3Cu) goto L_0889FF3C;
AOT_REGCACHE_SYNC_OUT(); return;
L_0889FF3C:
aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25204)));
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25208)));
ctx.gpr[1] = (ctx.gpr[3] << 1u);
aot_gpr_6 = (aot_gpr_2 >> 31u);
ctx.gpr[7] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[3]) >> 31u));
aot_gpr_6 = (ctx.gpr[1] | aot_gpr_6);
ctx.gpr[8] = (aot_gpr_6 + aot_gpr_4);
ctx.gpr[9] = (ctx.gpr[8] < aot_gpr_4 ? 1u : 0u);
aot_gpr_6 = (ctx.gpr[9] + ctx.gpr[7]);
aot_gpr_5 = (aot_gpr_6 + aot_gpr_5);
aot_gpr_4 = (ctx.gpr[8] | 0u);
aot_gpr_5 = (aot_gpr_4 | 0u);
aot_gpr_4 = (ctx.gpr[16] | 0u);
aot_gpr_31 = (0x0889FF78u);
aot_gpr_6 = (0u | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0105.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 861u, 0x0889FF78u, 0x089AB1F0u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 654u, aot_mem);
#else
recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 654u, 0x089AB1F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FF78u) goto L_0889FF78;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889FF78:
{ const bool branch_taken = 0u == 0u;
aot_gpr_2 = (ctx.gpr[18] | 0u);
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 119u, 0x088A08ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889FF80;
}
L_0889FF80:
aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1360)));
{ const bool branch_taken = aot_gpr_4 != ctx.gpr[19];
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 6u, 0x088A0040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889FF8C;
}
L_0889FF8C:
aot_gpr_4 = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast<std::uint32_t>(1929))))));
aot_gpr_5 = (aot_gpr_4 << 5u);
aot_gpr_4 = (aot_gpr_4 << 2u);
aot_gpr_4 = (aot_gpr_5 - aot_gpr_4);
aot_gpr_4 = (ctx.gpr[16] + aot_gpr_4);
aot_gpr_4 = (aot_gpr_4 + static_cast<std::uint32_t>(1396));
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast<std::uint32_t>(4)));
aot_gpr_4 = (static_cast<std::int32_t>(aot_gpr_4) < 20 ? 1u : 0u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889FFE8;
}
goto L_0889FFB4;
}
L_0889FFB4:
aot_gpr_31 = (0x0889FFBCu);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 865u, 0x0889FFBCu, 0x08910150u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 20u, aot_mem);
#else
recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 20u, 0x08910150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FFBCu) goto L_0889FFBC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889FFBC:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
goto L_0889FFF4;
}
goto L_0889FFC4;
}
L_0889FFC4:
aot_gpr_31 = (0x0889FFCCu);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 867u, 0x0889FFCCu, 0x08910150u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 20u, aot_mem);
#else
recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 20u, 0x08910150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FFCCu) goto L_0889FFCC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889FFCC:
aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast<std::uint32_t>(72)));
aot_gpr_4 = (aot_gpr_4 & 14u);
aot_gpr_4 = (aot_gpr_4 ^ 8u);
aot_gpr_4 = (aot_gpr_4 < static_cast<std::uint32_t>(1) ? 1u : 0u);
aot_gpr_4 = (aot_gpr_4 & 255u);
{ const bool branch_taken = aot_gpr_4 == 0u;
if (branch_taken) {
goto L_0889FFF4;
}
goto L_0889FFE8;
}
L_0889FFE8:
aot_gpr_4 = (16576u << 16u);
{ const bool branch_taken = 0u == 0u;
ctx.fpr[26] = std::bit_cast<float>(aot_gpr_4);
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 7u, 0x088A0048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
goto L_0889FFF4;
}
L_0889FFF4:
aot_gpr_31 = (0x0889FFFCu);
aot_gpr_4 = (ctx.gpr[16] | 0u);
// PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067.
#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)
AOT_REGCACHE_SYNC_OUT();
if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 870u, 0x0889FFFCu, 0x08910150u)) {
#if defined(__clang__)
[[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 20u, aot_mem);
#else
recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); return;
#endif
}
return;
#else
if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 20u, 0x08910150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FFFCu) goto L_0889FFFC;
AOT_REGCACHE_SYNC_OUT(); return;
#endif
L_0889FFFC:
{ const bool branch_taken = aot_gpr_2 == 0u;
if (branch_taken) {
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 5u, 0x088A0034u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 2u, 0x088A0004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
}
}
#undef AOT_REGCACHE_SYNC_IN
#undef AOT_REGCACHE_SYNC_OUT
void recomp_unit_0038(Runtime &rt, AllegrexContext &ctx) {
auto aot_mem = rt.memory().aot_fast_view();
recomp_unit_0038_entry(rt, ctx, 0u, aot_mem);
}
void register_generated_unit_38(Runtime &runtime) {
runtime.register_generated_unit(38u, 0x0889C000u, 16384u, &recomp_unit_0038, &recomp_unit_0038_entry);
// PSPRECOMP_V812_COMPACT_REGISTRATION: same entry set, looped once in Runtime instead of source-expanded calls.
runtime.register_generated_entry_mask(0x0889C000u, &recomp_unit_0038, "recomp_unit_0038",
kEntryMasks_recomp_unit_0038, 64u);
}
} // namespace psprecomp