#include "psprecomp/runtime.hpp" #include "generated_units.hpp" #include "vcs_resident_regions.hpp" #include #include #include #include namespace psprecomp { // PSPRECOMP_V811_COMPACT_DISPATCH: 64-slot occupancy masks + per-group base id. static constexpr std::uint64_t kEntryMasks_recomp_unit_0121[64] = { 0x850A522148800A49ull, 0x8A26290080804298ull, 0x00124000008290A0ull, 0x0012480000024000ull, 0x0800122024204000ull, 0x0082441024404122ull, 0x81170208B8102E04ull, 0x00029048E22225C0ull, 0x0000000004C80000ull, 0x8000000000004800ull, 0x4200000000000264ull, 0x2A10800104181480ull, 0x1084A10090200128ull, 0x5001022909229008ull, 0x22480808A4692A29ull, 0x8A8005A8A1208691ull, 0xC4252446448486A2ull, 0x48CA484821001008ull, 0x0000401002242524ull, 0x1008040222440001ull, 0x2D44422110924020ull, 0x2000100028C00012ull, 0x6408320406111240ull, 0x0500000000080100ull, 0x0805020440000000ull, 0x800222A001C12C45ull, 0x0048AA0000040002ull, 0x004800204C4152AAull, 0x0000000428000408ull, 0x020A188009002800ull, 0x08000404800A0049ull, 0x40B2101009001400ull, 0x8088013014905050ull, 0x50200008080A0502ull, 0x0410228805102840ull, 0x0020020408400009ull, 0x0408800200204088ull, 0x02001200A0882002ull, 0x0800810220024005ull, 0x0800480281002200ull, 0x812024A040024014ull, 0x5014000005249544ull, 0x02000020000A8140ull, 0x0140711111020424ull, 0x0800020944820480ull, 0x5031048A50000001ull, 0x8000810005121080ull, 0x0005000008000088ull, 0x01000008A0000100ull, 0x140000200000A000ull, 0xA500000440104100ull, 0x1080000000028000ull, 0x0001100000008400ull, 0x0888004500140000ull, 0x4400000000410200ull, 0x0000008000011100ull, 0x008080A000228000ull, 0x0021000420400000ull, 0x844010008C544000ull, 0x5642A94B121004A4ull, 0x9110820850000040ull, 0x0000002450000000ull, 0x00024540000004CAull, 0x02002000A4B14000ull, }; static constexpr std::uint16_t kEntryBases_recomp_unit_0121[64] = { 1u, 19u, 35u, 44u, 50u, 58u, 70u, 88u, 104u, 108u, 111u, 117u, 129u, 141u, 155u, 174u, 193u, 214u, 228u, 238u, 247u, 263u, 271u, 286u, 290u, 296u, 312u, 320u, 335u, 340u, 350u, 359u, 370u, 384u, 394u, 406u, 413u, 421u, 430u, 439u, 447u, 459u, 473u, 480u, 494u, 504u, 516u, 525u, 530u, 535u, 540u, 549u, 553u, 557u, 565u, 570u, 574u, 581u, 586u, 597u, 618u, 628u, 632u, 642u, }; void recomp_unit_0121_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,6,7,31,29 fprs=12,13,14,20 gpr_occ=4097 fpr_occ=762 gpr_total=6014 fpr_total=990 std::uint32_t aot_gpr_4 = ctx.gpr[4]; std::uint32_t aot_gpr_5 = ctx.gpr[5]; std::uint32_t aot_gpr_6 = ctx.gpr[6]; std::uint32_t aot_gpr_7 = ctx.gpr[7]; std::uint32_t aot_gpr_31 = ctx.gpr[31]; std::uint32_t aot_gpr_29 = ctx.gpr[29]; 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[6] = aot_gpr_6; ctx.gpr[7] = aot_gpr_7; ctx.gpr[31] = aot_gpr_31; ctx.gpr[29] = aot_gpr_29; 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_6 = ctx.gpr[6]; aot_gpr_7 = ctx.gpr[7]; aot_gpr_31 = ctx.gpr[31]; aot_gpr_29 = ctx.gpr[29]; 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 - 0x089E8000u; entry_id = 0u; if (entry_delta < 16360u && (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_0121[entry_group]; const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); if ((entry_mask & entry_bit) != 0u) { entry_id = static_cast( kEntryBases_recomp_unit_0121[entry_group] + std::popcount(entry_mask & (entry_bit - 1ull))); } } } switch (entry_id) { case 1u: goto L_089E8000; case 2u: goto L_089E800C; case 3u: goto L_089E8018; case 4u: goto L_089E8024; case 5u: goto L_089E802C; case 6u: goto L_089E805C; case 7u: goto L_089E806C; case 8u: goto L_089E8078; case 9u: goto L_089E8080; case 10u: goto L_089E8094; case 11u: goto L_089E80A4; case 12u: goto L_089E80B0; case 13u: goto L_089E80B8; case 14u: goto L_089E80C4; case 15u: goto L_089E80CC; case 16u: goto L_089E80E0; case 17u: goto L_089E80E8; case 18u: goto L_089E80FC; case 19u: goto L_089E810C; case 20u: goto L_089E8110; case 21u: goto L_089E811C; case 22u: goto L_089E8124; case 23u: goto L_089E8138; case 24u: goto L_089E815C; case 25u: goto L_089E817C; case 26u: goto L_089E81A0; case 27u: goto L_089E81AC; case 28u: goto L_089E81B4; case 29u: goto L_089E81C4; case 30u: goto L_089E81C8; case 31u: goto L_089E81D4; case 32u: goto L_089E81E4; case 33u: goto L_089E81EC; case 34u: goto L_089E81FC; case 35u: goto L_089E8214; case 36u: goto L_089E821C; case 37u: goto L_089E8230; case 38u: goto L_089E823C; case 39u: goto L_089E8244; case 40u: goto L_089E825C; case 41u: goto L_089E82B8; case 42u: goto L_089E82C4; case 43u: goto L_089E82D0; case 44u: goto L_089E8338; case 45u: goto L_089E8344; case 46u: goto L_089E83AC; case 47u: goto L_089E83B8; case 48u: goto L_089E83C4; case 49u: goto L_089E83D0; case 50u: goto L_089E8438; case 51u: goto L_089E8454; case 52u: goto L_089E8468; case 53u: goto L_089E8474; case 54u: goto L_089E8494; case 55u: goto L_089E84A4; case 56u: goto L_089E84B0; case 57u: goto L_089E84EC; case 58u: goto L_089E8504; case 59u: goto L_089E8514; case 60u: goto L_089E8520; case 61u: goto L_089E8538; case 62u: goto L_089E8558; case 63u: goto L_089E8568; case 64u: goto L_089E8574; case 65u: goto L_089E8590; case 66u: goto L_089E85A8; case 67u: goto L_089E85B8; case 68u: goto L_089E85C4; case 69u: goto L_089E85DC; case 70u: goto L_089E8608; case 71u: goto L_089E8624; case 72u: goto L_089E8628; case 73u: goto L_089E862C; case 74u: goto L_089E8634; case 75u: goto L_089E8650; case 76u: goto L_089E866C; case 77u: goto L_089E8670; case 78u: goto L_089E8674; case 79u: goto L_089E867C; case 80u: goto L_089E868C; case 81u: goto L_089E86A4; case 82u: goto L_089E86C0; case 83u: goto L_089E86C4; case 84u: goto L_089E86C8; case 85u: goto L_089E86D0; case 86u: goto L_089E86E0; case 87u: goto L_089E86FC; case 88u: goto L_089E8718; case 89u: goto L_089E871C; case 90u: goto L_089E8720; case 91u: goto L_089E8728; case 92u: goto L_089E8734; case 93u: goto L_089E8744; case 94u: goto L_089E8754; case 95u: goto L_089E8764; case 96u: goto L_089E8774; case 97u: goto L_089E8778; case 98u: goto L_089E877C; case 99u: goto L_089E878C; case 100u: goto L_089E8798; case 101u: goto L_089E87B0; case 102u: goto L_089E87BC; case 103u: goto L_089E87C4; case 104u: goto L_089E884C; case 105u: goto L_089E8858; case 106u: goto L_089E885C; case 107u: goto L_089E8868; case 108u: goto L_089E892C; case 109u: goto L_089E8938; case 110u: goto L_089E89FC; case 111u: goto L_089E8A08; case 112u: goto L_089E8A14; case 113u: goto L_089E8A18; case 114u: goto L_089E8A24; case 115u: goto L_089E8AE4; case 116u: goto L_089E8AF8; case 117u: goto L_089E8B1C; case 118u: goto L_089E8B28; case 119u: goto L_089E8B30; case 120u: goto L_089E8B4C; case 121u: goto L_089E8B50; case 122u: goto L_089E8B68; case 123u: goto L_089E8B80; case 124u: goto L_089E8BBC; case 125u: goto L_089E8BD0; case 126u: goto L_089E8BE4; case 127u: goto L_089E8BEC; case 128u: goto L_089E8BF4; case 129u: goto L_089E8C0C; case 130u: goto L_089E8C14; case 131u: goto L_089E8C20; case 132u: goto L_089E8C54; case 133u: goto L_089E8C70; case 134u: goto L_089E8C7C; case 135u: goto L_089E8CA0; case 136u: goto L_089E8CB4; case 137u: goto L_089E8CBC; case 138u: goto L_089E8CC8; case 139u: goto L_089E8CDC; case 140u: goto L_089E8CF0; case 141u: goto L_089E8D0C; case 142u: goto L_089E8D30; case 143u: goto L_089E8D3C; case 144u: goto L_089E8D44; case 145u: goto L_089E8D54; case 146u: goto L_089E8D60; case 147u: goto L_089E8D6C; case 148u: goto L_089E8D80; case 149u: goto L_089E8D8C; case 150u: goto L_089E8D94; case 151u: goto L_089E8DA4; case 152u: goto L_089E8DC0; case 153u: goto L_089E8DF0; case 154u: goto L_089E8DF8; case 155u: goto L_089E8E00; case 156u: goto L_089E8E0C; case 157u: goto L_089E8E14; case 158u: goto L_089E8E24; case 159u: goto L_089E8E2C; case 160u: goto L_089E8E34; case 161u: goto L_089E8E40; case 162u: goto L_089E8E4C; case 163u: goto L_089E8E54; case 164u: goto L_089E8E58; case 165u: goto L_089E8E68; case 166u: goto L_089E8E74; case 167u: goto L_089E8E7C; case 168u: goto L_089E8E8C; case 169u: goto L_089E8EAC; case 170u: goto L_089E8ECC; case 171u: goto L_089E8ED8; case 172u: goto L_089E8EE4; case 173u: goto L_089E8EF4; case 174u: goto L_089E8F00; case 175u: goto L_089E8F10; case 176u: goto L_089E8F1C; case 177u: goto L_089E8F24; case 178u: goto L_089E8F28; case 179u: goto L_089E8F3C; case 180u: goto L_089E8F54; case 181u: goto L_089E8F60; case 182u: goto L_089E8F74; case 183u: goto L_089E8F7C; case 184u: goto L_089E8F8C; case 185u: goto L_089E8F94; case 186u: goto L_089E8F9C; case 187u: goto L_089E8FA0; case 188u: goto L_089E8FA8; case 189u: goto L_089E8FDC; case 190u: goto L_089E8FE4; case 191u: goto L_089E8FEC; case 192u: goto L_089E8FFC; case 193u: goto L_089E9004; case 194u: goto L_089E9014; case 195u: goto L_089E901C; case 196u: goto L_089E9024; case 197u: goto L_089E9028; case 198u: goto L_089E903C; case 199u: goto L_089E9048; case 200u: goto L_089E905C; case 201u: goto L_089E9068; case 202u: goto L_089E9078; case 203u: goto L_089E9084; case 204u: goto L_089E9088; case 205u: goto L_089E9098; case 206u: goto L_089E90A8; case 207u: goto L_089E90B4; case 208u: goto L_089E90C0; case 209u: goto L_089E90C8; case 210u: goto L_089E90D4; case 211u: goto L_089E90E8; case 212u: goto L_089E90F8; case 213u: goto L_089E90FC; case 214u: goto L_089E910C; case 215u: goto L_089E9130; case 216u: goto L_089E9160; case 217u: goto L_089E9174; case 218u: goto L_089E918C; case 219u: goto L_089E9198; case 220u: goto L_089E91AC; case 221u: goto L_089E91B8; case 222u: goto L_089E91C4; case 223u: goto L_089E91CC; case 224u: goto L_089E91D8; case 225u: goto L_089E91DC; case 226u: goto L_089E91EC; case 227u: goto L_089E91F8; case 228u: goto L_089E9208; case 229u: goto L_089E9214; case 230u: goto L_089E9220; case 231u: goto L_089E9228; case 232u: goto L_089E9234; case 233u: goto L_089E9248; case 234u: goto L_089E9254; case 235u: goto L_089E9264; case 236u: goto L_089E9290; case 237u: goto L_089E92B8; case 238u: goto L_089E9300; case 239u: goto L_089E9348; case 240u: goto L_089E9358; case 241u: goto L_089E9364; case 242u: goto L_089E9374; case 243u: goto L_089E9384; case 244u: goto L_089E93A8; case 245u: goto L_089E93CC; case 246u: goto L_089E93F0; case 247u: goto L_089E9414; case 248u: goto L_089E9438; case 249u: goto L_089E9444; case 250u: goto L_089E9450; case 251u: goto L_089E945C; case 252u: goto L_089E9470; case 253u: goto L_089E9480; case 254u: goto L_089E9494; case 255u: goto L_089E94A4; case 256u: goto L_089E94B8; case 257u: goto L_089E94C8; case 258u: goto L_089E94D8; case 259u: goto L_089E94E0; case 260u: goto L_089E94E8; case 261u: goto L_089E94EC; case 262u: goto L_089E94F4; case 263u: goto L_089E9504; case 264u: goto L_089E9510; case 265u: goto L_089E9558; case 266u: goto L_089E955C; case 267u: goto L_089E956C; case 268u: goto L_089E9574; case 269u: goto L_089E95B0; case 270u: goto L_089E95F4; case 271u: goto L_089E9618; case 272u: goto L_089E9624; case 273u: goto L_089E9630; case 274u: goto L_089E9640; case 275u: goto L_089E9650; case 276u: goto L_089E9664; case 277u: goto L_089E9668; case 278u: goto L_089E9688; case 279u: goto L_089E96A4; case 280u: goto L_089E96B0; case 281u: goto L_089E96B4; case 282u: goto L_089E96CC; case 283u: goto L_089E96E8; case 284u: goto L_089E96F4; case 285u: goto L_089E96F8; case 286u: goto L_089E9720; case 287u: goto L_089E974C; case 288u: goto L_089E97E0; case 289u: goto L_089E97E8; case 290u: goto L_089E9878; case 291u: goto L_089E9888; case 292u: goto L_089E98A4; case 293u: goto L_089E98C0; case 294u: goto L_089E98C8; case 295u: goto L_089E98EC; case 296u: goto L_089E9900; case 297u: goto L_089E9908; case 298u: goto L_089E9918; case 299u: goto L_089E9928; case 300u: goto L_089E992C; case 301u: goto L_089E9934; case 302u: goto L_089E9940; case 303u: goto L_089E9958; case 304u: goto L_089E995C; case 305u: goto L_089E9960; case 306u: goto L_089E9994; case 307u: goto L_089E999C; case 308u: goto L_089E99A4; case 309u: goto L_089E99B4; case 310u: goto L_089E99C4; case 311u: goto L_089E99FC; case 312u: goto L_089E9A04; case 313u: goto L_089E9A48; case 314u: goto L_089E9AA4; case 315u: goto L_089E9AAC; case 316u: goto L_089E9AB4; case 317u: goto L_089E9ABC; case 318u: goto L_089E9ACC; case 319u: goto L_089E9AD8; case 320u: goto L_089E9B04; case 321u: goto L_089E9B0C; case 322u: goto L_089E9B14; case 323u: goto L_089E9B1C; case 324u: goto L_089E9B24; case 325u: goto L_089E9B30; case 326u: goto L_089E9B38; case 327u: goto L_089E9B40; case 328u: goto L_089E9B58; case 329u: goto L_089E9B68; case 330u: goto L_089E9B6C; case 331u: goto L_089E9B78; case 332u: goto L_089E9B94; case 333u: goto L_089E9BCC; case 334u: goto L_089E9BD8; case 335u: goto L_089E9C0C; case 336u: goto L_089E9C28; case 337u: goto L_089E9C6C; case 338u: goto L_089E9C74; case 339u: goto L_089E9C88; case 340u: goto L_089E9D2C; case 341u: goto L_089E9D34; case 342u: goto L_089E9D60; case 343u: goto L_089E9D6C; case 344u: goto L_089E9D9C; case 345u: goto L_089E9DAC; case 346u: goto L_089E9DB0; case 347u: goto L_089E9DC4; case 348u: goto L_089E9DCC; case 349u: goto L_089E9DE4; case 350u: goto L_089E9E00; case 351u: goto L_089E9E0C; case 352u: goto L_089E9E18; case 353u: goto L_089E9E44; case 354u: goto L_089E9E4C; case 355u: goto L_089E9E7C; case 356u: goto L_089E9E88; case 357u: goto L_089E9EA8; case 358u: goto L_089E9EEC; case 359u: goto L_089E9F28; case 360u: goto L_089E9F30; case 361u: goto L_089E9F60; case 362u: goto L_089E9F6C; case 363u: goto L_089E9F90; case 364u: goto L_089E9FB0; case 365u: goto L_089E9FC4; case 366u: goto L_089E9FD0; case 367u: goto L_089E9FD4; case 368u: goto L_089E9FDC; case 369u: goto L_089E9FF8; case 370u: goto L_089EA010; case 371u: goto L_089EA018; case 372u: goto L_089EA030; case 373u: goto L_089EA038; case 374u: goto L_089EA050; case 375u: goto L_089EA05C; case 376u: goto L_089EA068; case 377u: goto L_089EA070; case 378u: goto L_089EA090; case 379u: goto L_089EA094; case 380u: goto L_089EA0A0; case 381u: goto L_089EA0CC; case 382u: goto L_089EA0DC; case 383u: goto L_089EA0FC; case 384u: goto L_089EA104; case 385u: goto L_089EA120; case 386u: goto L_089EA128; case 387u: goto L_089EA144; case 388u: goto L_089EA14C; case 389u: goto L_089EA16C; case 390u: goto L_089EA18C; case 391u: goto L_089EA1D4; case 392u: goto L_089EA1F0; case 393u: goto L_089EA1F8; case 394u: goto L_089EA218; case 395u: goto L_089EA22C; case 396u: goto L_089EA234; case 397u: goto L_089EA250; case 398u: goto L_089EA260; case 399u: goto L_089EA268; case 400u: goto L_089EA28C; case 401u: goto L_089EA29C; case 402u: goto L_089EA2A4; case 403u: goto L_089EA2B4; case 404u: goto L_089EA2D0; case 405u: goto L_089EA2E8; case 406u: goto L_089EA300; case 407u: goto L_089EA30C; case 408u: goto L_089EA358; case 409u: goto L_089EA36C; case 410u: goto L_089EA388; case 411u: goto L_089EA3A4; case 412u: goto L_089EA3D4; case 413u: goto L_089EA40C; case 414u: goto L_089EA41C; case 415u: goto L_089EA438; case 416u: goto L_089EA454; case 417u: goto L_089EA484; case 418u: goto L_089EA4BC; case 419u: goto L_089EA4CC; case 420u: goto L_089EA4E8; case 421u: goto L_089EA504; case 422u: goto L_089EA534; case 423u: goto L_089EA54C; case 424u: goto L_089EA55C; case 425u: goto L_089EA574; case 426u: goto L_089EA57C; case 427u: goto L_089EA5A4; case 428u: goto L_089EA5B0; case 429u: goto L_089EA5E4; case 430u: goto L_089EA600; case 431u: goto L_089EA608; case 432u: goto L_089EA638; case 433u: goto L_089EA644; case 434u: goto L_089EA674; case 435u: goto L_089EA684; case 436u: goto L_089EA6A0; case 437u: goto L_089EA6BC; case 438u: goto L_089EA6EC; case 439u: goto L_089EA724; case 440u: goto L_089EA734; case 441u: goto L_089EA760; case 442u: goto L_089EA77C; case 443u: goto L_089EA784; case 444u: goto L_089EA7AC; case 445u: goto L_089EA7B8; case 446u: goto L_089EA7EC; case 447u: goto L_089EA808; case 448u: goto L_089EA810; case 449u: goto L_089EA838; case 450u: goto L_089EA844; case 451u: goto L_089EA878; case 452u: goto L_089EA894; case 453u: goto L_089EA89C; case 454u: goto L_089EA8A8; case 455u: goto L_089EA8B4; case 456u: goto L_089EA8D4; case 457u: goto L_089EA8E0; case 458u: goto L_089EA8FC; case 459u: goto L_089EA908; case 460u: goto L_089EA918; case 461u: goto L_089EA920; case 462u: goto L_089EA928; case 463u: goto L_089EA930; case 464u: goto L_089EA93C; case 465u: goto L_089EA948; case 466u: goto L_089EA954; case 467u: goto L_089EA960; case 468u: goto L_089EA968; case 469u: goto L_089EA9C8; case 470u: goto L_089EA9D0; case 471u: goto L_089EA9F0; case 472u: goto L_089EA9F8; case 473u: goto L_089EAA18; case 474u: goto L_089EAA20; case 475u: goto L_089EAA3C; case 476u: goto L_089EAA44; case 477u: goto L_089EAA4C; case 478u: goto L_089EAA94; case 479u: goto L_089EAAE4; case 480u: goto L_089EAB08; case 481u: goto L_089EAB14; case 482u: goto L_089EAB28; case 483u: goto L_089EAB44; case 484u: goto L_089EAB60; case 485u: goto L_089EAB70; case 486u: goto L_089EAB80; case 487u: goto L_089EAB90; case 488u: goto L_089EABA0; case 489u: goto L_089EABB0; case 490u: goto L_089EABB4; case 491u: goto L_089EABB8; case 492u: goto L_089EABD8; case 493u: goto L_089EABE0; case 494u: goto L_089EAC1C; case 495u: goto L_089EAC28; case 496u: goto L_089EAC44; case 497u: goto L_089EAC5C; case 498u: goto L_089EAC68; case 499u: goto L_089EAC78; case 500u: goto L_089EAC80; case 501u: goto L_089EAC8C; case 502u: goto L_089EACA4; case 503u: goto L_089EACEC; case 504u: goto L_089EAD00; case 505u: goto L_089EAD70; case 506u: goto L_089EAD78; case 507u: goto L_089EAD84; case 508u: goto L_089EAD8C; case 509u: goto L_089EAD9C; case 510u: goto L_089EADA8; case 511u: goto L_089EADC0; case 512u: goto L_089EADD0; case 513u: goto L_089EADD4; case 514u: goto L_089EADF0; case 515u: goto L_089EADF8; case 516u: goto L_089EAE1C; case 517u: goto L_089EAE30; case 518u: goto L_089EAE44; case 519u: goto L_089EAE50; case 520u: goto L_089EAE60; case 521u: goto L_089EAE68; case 522u: goto L_089EAEA0; case 523u: goto L_089EAEBC; case 524u: goto L_089EAEFC; case 525u: goto L_089EAF0C; case 526u: goto L_089EAF1C; case 527u: goto L_089EAF6C; case 528u: goto L_089EAFC0; case 529u: goto L_089EAFC8; case 530u: goto L_089EB020; case 531u: goto L_089EB074; case 532u: goto L_089EB07C; case 533u: goto L_089EB08C; case 534u: goto L_089EB0E0; case 535u: goto L_089EB134; case 536u: goto L_089EB13C; case 537u: goto L_089EB194; case 538u: goto L_089EB1E8; case 539u: goto L_089EB1F0; case 540u: goto L_089EB220; case 541u: goto L_089EB238; case 542u: goto L_089EB250; case 543u: goto L_089EB278; case 544u: goto L_089EB288; case 545u: goto L_089EB2E0; case 546u: goto L_089EB2E8; case 547u: goto L_089EB2F4; case 548u: goto L_089EB2FC; case 549u: goto L_089EB33C; case 550u: goto L_089EB344; case 551u: goto L_089EB3DC; case 552u: goto L_089EB3F0; case 553u: goto L_089EB428; case 554u: goto L_089EB43C; case 555u: goto L_089EB4B0; case 556u: goto L_089EB4C0; case 557u: goto L_089EB548; case 558u: goto L_089EB550; case 559u: goto L_089EB580; case 560u: goto L_089EB588; case 561u: goto L_089EB598; case 562u: goto L_089EB5CC; case 563u: goto L_089EB5DC; case 564u: goto L_089EB5EC; case 565u: goto L_089EB624; case 566u: goto L_089EB640; case 567u: goto L_089EB658; case 568u: goto L_089EB6E8; case 569u: goto L_089EB6F8; case 570u: goto L_089EB720; case 571u: goto L_089EB730; case 572u: goto L_089EB740; case 573u: goto L_089EB79C; case 574u: goto L_089EB83C; case 575u: goto L_089EB844; case 576u: goto L_089EB854; case 577u: goto L_089EB894; case 578u: goto L_089EB89C; case 579u: goto L_089EB8BC; case 580u: goto L_089EB8DC; case 581u: goto L_089EB958; case 582u: goto L_089EB974; case 583u: goto L_089EB988; case 584u: goto L_089EB9C0; case 585u: goto L_089EB9D4; case 586u: goto L_089EBA38; case 587u: goto L_089EBA48; case 588u: goto L_089EBA50; case 589u: goto L_089EBA58; case 590u: goto L_089EBA68; case 591u: goto L_089EBA6C; case 592u: goto L_089EBA7C; case 593u: goto L_089EBAB0; case 594u: goto L_089EBAD8; case 595u: goto L_089EBAE8; case 596u: goto L_089EBAFC; case 597u: goto L_089EBB08; case 598u: goto L_089EBB14; case 599u: goto L_089EBB1C; case 600u: goto L_089EBB28; case 601u: goto L_089EBB50; case 602u: goto L_089EBB64; case 603u: goto L_089EBB70; case 604u: goto L_089EBB80; case 605u: goto L_089EBB84; case 606u: goto L_089EBB8C; case 607u: goto L_089EBB98; case 608u: goto L_089EBBA0; case 609u: goto L_089EBBAC; case 610u: goto L_089EBBB4; case 611u: goto L_089EBBBC; case 612u: goto L_089EBBC4; case 613u: goto L_089EBBD8; case 614u: goto L_089EBBE4; case 615u: goto L_089EBBE8; case 616u: goto L_089EBBF0; case 617u: goto L_089EBBF8; case 618u: goto L_089EBC18; case 619u: goto L_089EBC70; case 620u: goto L_089EBC78; case 621u: goto L_089EBC8C; case 622u: goto L_089EBCA4; case 623u: goto L_089EBCBC; case 624u: goto L_089EBCD0; case 625u: goto L_089EBCE0; case 626u: goto L_089EBCF0; case 627u: goto L_089EBCFC; case 628u: goto L_089EBD70; case 629u: goto L_089EBD78; case 630u: goto L_089EBD88; case 631u: goto L_089EBD94; case 632u: goto L_089EBE04; case 633u: goto L_089EBE0C; case 634u: goto L_089EBE18; case 635u: goto L_089EBE1C; case 636u: goto L_089EBE28; case 637u: goto L_089EBE98; case 638u: goto L_089EBEA0; case 639u: goto L_089EBEA8; case 640u: goto L_089EBEB8; case 641u: goto L_089EBEC4; case 642u: goto L_089EBF38; case 643u: goto L_089EBF40; case 644u: goto L_089EBF50; case 645u: goto L_089EBF54; case 646u: goto L_089EBF5C; case 647u: goto L_089EBF68; case 648u: goto L_089EBF74; case 649u: goto L_089EBF7C; case 650u: goto L_089EBFB4; case 651u: goto L_089EBFE4; 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 - 0x089E8000u; if (local_delta_v813 >= 16360u || (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_089E8000: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9680))); { const bool branch_taken = aot_gpr_4 == aot_gpr_5; ctx.gpr[17] = (ctx.gpr[16] | 0u); if (branch_taken) { goto L_089E802C; } goto L_089E800C; } L_089E800C: aot_gpr_5 = (aot_gpr_4 | 0u); { const bool branch_taken = aot_gpr_5 == 0u; aot_gpr_4 = (aot_gpr_4 + static_cast(4)); if (branch_taken) { goto L_089E8024; } goto L_089E8018; } L_089E8018: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[17]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9676))); aot_gpr_4 = (aot_gpr_4 + static_cast(4)); goto L_089E8024; L_089E8024: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9676), aot_gpr_4); if (branch_taken) { goto L_089E8138; } goto L_089E802C; } L_089E802C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9672))); aot_gpr_6 = (0u | 1u); aot_gpr_5 = (aot_gpr_4 - aot_gpr_5); aot_gpr_7 = (static_cast(static_cast(aot_gpr_5) >> 2u)); aot_gpr_7 = (aot_gpr_7 >> 30u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(4), static_cast(0u)); aot_gpr_5 = (aot_gpr_5 + aot_gpr_7); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_6); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 2u)); aot_gpr_6 = (aot_gpr_5 < static_cast(1) ? 1u : 0u); { const bool branch_taken = aot_gpr_6 == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_5); if (branch_taken) { goto L_089E806C; } goto L_089E805C; } L_089E805C: aot_gpr_6 = (aot_gpr_29 + static_cast(8)); ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(0))); { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (aot_gpr_5 + ctx.gpr[18]); if (branch_taken) { goto L_089E8078; } goto L_089E806C; } L_089E806C: aot_gpr_6 = (aot_gpr_29 + static_cast(12)); ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(0))); ctx.gpr[18] = (aot_gpr_5 + ctx.gpr[18]); goto L_089E8078; L_089E8078: { const bool branch_taken = ctx.gpr[18] == 0u; aot_gpr_5 = (0u | 0u); if (branch_taken) { goto L_089E80B8; } goto L_089E8080; } L_089E8080: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_4 = (ctx.gpr[18] << 2u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_5); aot_gpr_31 = (0x089E8094u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0174. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 10u, 0x089E8094u, 0x08ABE308u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); #else recomp_unit_0174_entry(rt, ctx, 474u, 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, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8094u) goto L_089E8094; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E8094: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_5 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_5 != 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); if (branch_taken) { goto L_089E80B8; } goto L_089E80A4; } L_089E80A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_4); aot_gpr_31 = (0x089E80B0u); aot_gpr_4 = (aot_gpr_6 | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 289u, 0x08B65438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E80B0u) goto L_089E80B0; AOT_REGCACHE_SYNC_OUT(); return; L_089E80B0: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); goto L_089E80B8; L_089E80B8: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9672))); { const bool branch_taken = aot_gpr_4 != aot_gpr_6; ctx.gpr[19] = (aot_gpr_5 | 0u); if (branch_taken) { goto L_089E80CC; } goto L_089E80C4; } L_089E80C4: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); if (branch_taken) { goto L_089E80E8; } goto L_089E80CC; } L_089E80CC: aot_gpr_5 = (aot_gpr_6 | 0u); ctx.gpr[20] = (aot_gpr_4 - aot_gpr_6); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089E80E0u); aot_gpr_6 = (ctx.gpr[20] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0188. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 16u, 0x089E80E0u, 0x08AF54A4u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); #else recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E80E0u) goto L_089E80E0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E80E0: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[20]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); goto L_089E80E8; L_089E80E8: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_5 = (aot_gpr_6 | 0u); if (aot_gpr_5 == 0u) { ctx.gpr[17] = (aot_gpr_4 | 0u); goto L_089E8110; } goto L_089E80FC; L_089E80FC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), ctx.gpr[17]); aot_gpr_5 = (aot_gpr_5 + static_cast(-1)); { const bool branch_taken = aot_gpr_5 != 0u; aot_gpr_4 = (aot_gpr_4 + static_cast(4)); if (branch_taken) { goto L_089E80FC; } goto L_089E810C; } L_089E810C: ctx.gpr[17] = (aot_gpr_4 | 0u); goto L_089E8110; L_089E8110: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9672))); { const bool branch_taken = aot_gpr_4 == 0u; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(16), static_cast(0u)); if (branch_taken) { goto L_089E8124; } goto L_089E811C; } L_089E811C: aot_gpr_31 = (0x089E8124u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], 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, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8124u) goto L_089E8124; AOT_REGCACHE_SYNC_OUT(); return; L_089E8124: aot_gpr_4 = (ctx.gpr[18] << 2u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9672), ctx.gpr[19]); aot_gpr_4 = (ctx.gpr[19] + aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9676), ctx.gpr[17]); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9680), aot_gpr_4); goto L_089E8138; L_089E8138: ctx.gpr[2] = (ctx.gpr[16] | 0u); { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(28), 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(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_089E815C: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[16]); ctx.gpr[16] = (aot_gpr_4 | 0u); { const std::uint32_t aot_run_words[3]{ctx.gpr[17], ctx.gpr[18], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(12), aot_run_words); } { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[17] = (aot_gpr_5 | 0u); if (branch_taken) { goto L_089E8244; } goto L_089E817C; } L_089E817C: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(26704)); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(108), aot_gpr_4); ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9676))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9672))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[16]); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089E81A0u); aot_gpr_6 = (aot_gpr_29 | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0218. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 26u, 0x089E81A0u, 0x08B6D670u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 281u, aot_mem); #else recomp_unit_0218_entry(rt, ctx, 281u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 281u, 0x08B6D670u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E81A0u) goto L_089E81A0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E81A0: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != ctx.gpr[18]; if (branch_taken) { goto L_089E81B4; } goto L_089E81AC; } L_089E81AC: { const bool branch_taken = 0u == 0u; aot_gpr_5 = (aot_gpr_4 | 0u); if (branch_taken) { goto L_089E81EC; } goto L_089E81B4; } L_089E81B4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_4 = (aot_gpr_5 + static_cast(4)); { const bool branch_taken = aot_gpr_4 == ctx.gpr[18]; if (branch_taken) { goto L_089E81EC; } goto L_089E81C4; } L_089E81C4: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); goto L_089E81C8; L_089E81C8: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_6 == aot_gpr_7) { aot_gpr_4 = (aot_gpr_4 + static_cast(4)); goto L_089E81E4; } goto L_089E81D4; L_089E81D4: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_6); aot_gpr_5 = (aot_gpr_5 + static_cast(4)); aot_gpr_4 = (aot_gpr_4 + static_cast(4)); goto L_089E81E4; L_089E81E4: if (aot_gpr_4 != ctx.gpr[18]) { aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); goto L_089E81C8; } goto L_089E81EC; L_089E81EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9676))); aot_gpr_6 = (aot_gpr_4 | 0u); { const bool branch_taken = aot_gpr_6 == aot_gpr_6; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(4), static_cast(0u)); if (branch_taken) { goto L_089E821C; } goto L_089E81FC; } L_089E81FC: aot_gpr_7 = (aot_gpr_4 | 0u); ctx.gpr[18] = (aot_gpr_6 - aot_gpr_7); aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_5 = (aot_gpr_7 | 0u); aot_gpr_31 = (0x089E8214u); aot_gpr_6 = (ctx.gpr[18] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0188. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 35u, 0x089E8214u, 0x08AF54A4u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); #else recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8214u) goto L_089E8214; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E8214: { const bool branch_taken = 0u == 0u; aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[18]); if (branch_taken) { goto L_089E821C; } goto L_089E821C; } L_089E821C: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(5), static_cast(0u)); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9676), aot_gpr_5); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089E8230u); aot_gpr_5 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0165. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 37u, 0x089E8230u, 0x08A9A87Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 309u, aot_mem); #else recomp_unit_0165_entry(rt, ctx, 309u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 309u, 0x08A9A87Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8230u) goto L_089E8230; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E8230: aot_gpr_4 = (ctx.gpr[17] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E8244; } goto L_089E823C; } L_089E823C: aot_gpr_31 = (0x089E8244u); 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_08ABE2C0, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089E8244u) goto L_089E8244; AOT_REGCACHE_SYNC_OUT(); return; L_089E8244: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(8), 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(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_089E825C: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[18]); ctx.gpr[18] = (aot_gpr_5 + static_cast(4)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_7 = (aot_gpr_4 + static_cast(1)); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), aot_gpr_7); aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0))); ctx.gpr[8] = (aot_gpr_7 + static_cast(1)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[19]); ctx.gpr[19] = (aot_gpr_6 | 0u); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), ctx.gpr[8]); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_7 + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[16]); ctx.gpr[16] = (aot_gpr_5 | 0u); aot_gpr_5 = (aot_gpr_6 << 8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[17]); ctx.gpr[17] = (aot_gpr_4 | aot_gpr_5); ctx.gpr[17] = (ctx.gpr[17] & 65535u); aot_gpr_4 = (ctx.gpr[17] & 1u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E82C4; } goto L_089E82B8; } L_089E82B8: aot_gpr_5 = (ctx.gpr[19] + static_cast(12)); aot_gpr_31 = (0x089E82C4u); aot_gpr_4 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 42u, 0x089E82C4u, 0x08964E08u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 80u, aot_mem); #else recomp_unit_0088_entry(rt, ctx, 80u, 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, 80u, 0x08964E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E82C4u) goto L_089E82C4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E82C4: aot_gpr_4 = (ctx.gpr[17] & 2u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E8338; } goto L_089E82D0; } L_089E82D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_5 = (aot_gpr_4 + static_cast(1)); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), aot_gpr_5); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0))); aot_gpr_6 = (aot_gpr_5 + static_cast(1)); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), aot_gpr_6); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(0))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_5 = (aot_gpr_5 << 8u); aot_gpr_7 = (aot_gpr_6 + static_cast(1)); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), aot_gpr_7); aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast(0))); ctx.gpr[8] = (aot_gpr_7 + static_cast(1)); aot_gpr_4 = (aot_gpr_4 | aot_gpr_5); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), ctx.gpr[8]); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_7 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 & 65535u); aot_gpr_5 = (aot_gpr_5 << 8u); aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); aot_gpr_5 = (aot_gpr_5 & 65535u); aot_gpr_5 = (aot_gpr_5 << 16u); aot_gpr_4 = (aot_gpr_4 | aot_gpr_5); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(20), std::bit_cast(aot_fpr_12)); goto L_089E8338; L_089E8338: aot_gpr_4 = (ctx.gpr[17] & 4u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E83AC; } goto L_089E8344; } L_089E8344: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_5 = (aot_gpr_4 + static_cast(1)); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), aot_gpr_5); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0))); aot_gpr_6 = (aot_gpr_5 + static_cast(1)); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), aot_gpr_6); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(0))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_5 = (aot_gpr_5 << 8u); aot_gpr_7 = (aot_gpr_6 + static_cast(1)); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), aot_gpr_7); aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast(0))); ctx.gpr[8] = (aot_gpr_7 + static_cast(1)); aot_gpr_4 = (aot_gpr_4 | aot_gpr_5); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), ctx.gpr[8]); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_7 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 & 65535u); aot_gpr_5 = (aot_gpr_5 << 8u); aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); aot_gpr_5 = (aot_gpr_5 & 65535u); aot_gpr_5 = (aot_gpr_5 << 16u); aot_gpr_4 = (aot_gpr_4 | aot_gpr_5); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(24), std::bit_cast(aot_fpr_12)); goto L_089E83AC; L_089E83AC: aot_gpr_4 = (ctx.gpr[17] & 8u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E83C4; } goto L_089E83B8; } L_089E83B8: aot_gpr_5 = (ctx.gpr[19] + static_cast(8)); aot_gpr_31 = (0x089E83C4u); aot_gpr_4 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 48u, 0x089E83C4u, 0x08964F68u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 85u, aot_mem); #else recomp_unit_0088_entry(rt, ctx, 85u, 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, 85u, 0x08964F68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E83C4u) goto L_089E83C4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E83C4: aot_gpr_4 = (ctx.gpr[17] & 16u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E8438; } goto L_089E83D0; } L_089E83D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_5 = (aot_gpr_4 + static_cast(1)); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), aot_gpr_5); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0))); aot_gpr_6 = (aot_gpr_5 + static_cast(1)); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), aot_gpr_6); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(0))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_5 = (aot_gpr_5 << 8u); aot_gpr_7 = (aot_gpr_6 + static_cast(1)); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), aot_gpr_7); aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast(0))); ctx.gpr[8] = (aot_gpr_7 + static_cast(1)); aot_gpr_4 = (aot_gpr_4 | aot_gpr_5); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), ctx.gpr[8]); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_7 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 & 65535u); aot_gpr_5 = (aot_gpr_5 << 8u); aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); aot_gpr_5 = (aot_gpr_5 & 65535u); aot_gpr_5 = (aot_gpr_5 << 16u); aot_gpr_4 = (aot_gpr_4 | aot_gpr_5); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(28), std::bit_cast(aot_fpr_12)); goto L_089E8438; L_089E8438: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(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(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_089E8454: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x089E8468u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0165. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 52u, 0x089E8468u, 0x08A9AC30u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 338u, aot_mem); #else recomp_unit_0165_entry(rt, ctx, 338u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 338u, 0x08A9AC30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8468u) goto L_089E8468; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E8468: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(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_089E8474: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(96))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), ctx.gpr[17]); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[16]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_31); { const bool branch_taken = aot_gpr_6 != 0u; ctx.gpr[16] = (aot_gpr_5 | 0u); if (branch_taken) { goto L_089E84B0; } goto L_089E8494; } L_089E8494: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(10)))))); aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089E84A4u); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0166. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 55u, 0x089E84A4u, 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 == 0x089E84A4u) goto L_089E84A4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E84A4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(4), static_cast(aot_gpr_4)); goto L_089E84B0; L_089E84B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(96))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 + static_cast(8)); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(aot_gpr_5)); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(1))); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(1), static_cast(aot_gpr_5)); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(2))); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(2), static_cast(aot_gpr_5)); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(3))); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(3), static_cast(aot_gpr_5)); { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), 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(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_089E84EC: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(96))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[16]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); { const bool branch_taken = aot_gpr_5 != 0u; ctx.gpr[16] = (aot_gpr_4 | 0u); if (branch_taken) { goto L_089E8520; } goto L_089E8504; } L_089E8504: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(10)))))); aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089E8514u); aot_gpr_4 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0166. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 59u, 0x089E8514u, 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 == 0x089E8514u) goto L_089E8514; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E8514: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(4), static_cast(aot_gpr_4)); goto L_089E8520; L_089E8520: ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(96))); ctx.gpr[2] = (ctx.gpr[2] + static_cast(8)); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(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_089E8538: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(96))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), std::bit_cast(aot_fpr_20)); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), ctx.gpr[16]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_31); { const bool branch_taken = aot_gpr_5 != 0u; ctx.gpr[16] = (aot_gpr_4 | 0u); if (branch_taken) { goto L_089E8574; } goto L_089E8558; } L_089E8558: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(10)))))); aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089E8568u); aot_gpr_4 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0166. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 63u, 0x089E8568u, 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 == 0x089E8568u) goto L_089E8568; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E8568: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(4), static_cast(aot_gpr_4)); goto L_089E8574; L_089E8574: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(96))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(28), std::bit_cast(aot_fpr_20)); { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); aot_fpr_20 = std::bit_cast(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(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_089E8590: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(96))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[16]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); { const bool branch_taken = aot_gpr_5 != 0u; ctx.gpr[16] = (aot_gpr_4 | 0u); if (branch_taken) { goto L_089E85C4; } goto L_089E85A8; } L_089E85A8: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(10)))))); aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089E85B8u); aot_gpr_4 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0166. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 67u, 0x089E85B8u, 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 == 0x089E85B8u) goto L_089E85B8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E85B8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(4), static_cast(aot_gpr_4)); goto L_089E85C4; L_089E85C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(96))); ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(28))); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(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_089E85DC: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(12))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(12))); aot_gpr_4 = (aot_gpr_7 | 0u); aot_fpr_13 = aot_fpr_13 - aot_fpr_12; aot_gpr_7 = (46470u << 16u); ctx.gpr[8] = (aot_gpr_7 | 14269u); aot_fpr_12 = std::bit_cast(ctx.gpr[8]); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 <= aot_fpr_12)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); aot_gpr_7 = (0u | 0u); if (branch_taken) { goto L_089E8628; } goto L_089E8608; } L_089E8608: ctx.gpr[8] = (13702u << 16u); ctx.gpr[8] = (ctx.gpr[8] | 14269u); aot_fpr_14 = std::bit_cast(ctx.gpr[8]); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 <= aot_fpr_14)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); aot_gpr_7 = (aot_gpr_7 & 255u); if (branch_taken) { goto L_089E862C; } goto L_089E8624; } L_089E8624: aot_gpr_7 = (0u | 1u); goto L_089E8628; L_089E8628: aot_gpr_7 = (aot_gpr_7 & 255u); goto L_089E862C; L_089E862C: { const bool branch_taken = aot_gpr_7 == 0u; if (branch_taken) { goto L_089E867C; } goto L_089E8634; } L_089E8634: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(16))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(16))); aot_fpr_13 = aot_fpr_13 - aot_fpr_14; ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 <= aot_fpr_12)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); aot_gpr_7 = (0u | 0u); if (branch_taken) { goto L_089E8670; } goto L_089E8650; } L_089E8650: ctx.gpr[8] = (13702u << 16u); ctx.gpr[8] = (ctx.gpr[8] | 14269u); aot_fpr_14 = std::bit_cast(ctx.gpr[8]); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 <= aot_fpr_14)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); aot_gpr_7 = (aot_gpr_7 & 255u); if (branch_taken) { goto L_089E8674; } goto L_089E866C; } L_089E866C: aot_gpr_7 = (0u | 1u); goto L_089E8670; L_089E8670: aot_gpr_7 = (aot_gpr_7 & 255u); goto L_089E8674; L_089E8674: if (aot_gpr_7 != 0u) { aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(20))); goto L_089E868C; } goto L_089E867C; L_089E867C: aot_gpr_7 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(0))); aot_gpr_7 = (aot_gpr_7 | 1u); aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(0), static_cast(aot_gpr_7)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(20))); goto L_089E868C; L_089E868C: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(20))); aot_fpr_13 = aot_fpr_13 - aot_fpr_14; ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 <= aot_fpr_12)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); aot_gpr_7 = (0u | 0u); if (branch_taken) { goto L_089E86C4; } goto L_089E86A4; } L_089E86A4: ctx.gpr[8] = (13702u << 16u); ctx.gpr[8] = (ctx.gpr[8] | 14269u); aot_fpr_14 = std::bit_cast(ctx.gpr[8]); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 <= aot_fpr_14)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); aot_gpr_7 = (aot_gpr_7 & 255u); if (branch_taken) { goto L_089E86C8; } goto L_089E86C0; } L_089E86C0: aot_gpr_7 = (0u | 1u); goto L_089E86C4; L_089E86C4: aot_gpr_7 = (aot_gpr_7 & 255u); goto L_089E86C8; L_089E86C8: if (aot_gpr_7 != 0u) { aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); goto L_089E86E0; } goto L_089E86D0; L_089E86D0: aot_gpr_7 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(0))); aot_gpr_7 = (aot_gpr_7 | 2u); aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(0), static_cast(aot_gpr_7)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); goto L_089E86E0; L_089E86E0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(24))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(24))); aot_fpr_12 = aot_fpr_12 - aot_fpr_14; ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_13)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); aot_gpr_7 = (0u | 0u); if (branch_taken) { goto L_089E871C; } goto L_089E86FC; } L_089E86FC: ctx.gpr[8] = (13702u << 16u); ctx.gpr[8] = (ctx.gpr[8] | 14269u); aot_fpr_13 = std::bit_cast(ctx.gpr[8]); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_13)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); aot_gpr_7 = (aot_gpr_7 & 255u); if (branch_taken) { goto L_089E8720; } goto L_089E8718; } L_089E8718: aot_gpr_7 = (0u | 1u); goto L_089E871C; L_089E871C: aot_gpr_7 = (aot_gpr_7 & 255u); goto L_089E8720; L_089E8720: { const bool branch_taken = aot_gpr_7 != 0u; if (branch_taken) { goto L_089E8734; } goto L_089E8728; } L_089E8728: aot_gpr_7 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(0))); aot_gpr_7 = (aot_gpr_7 | 4u); aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(0), static_cast(aot_gpr_7)); goto L_089E8734; L_089E8734: ctx.gpr[8] = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast(8))); ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(8))); { const bool branch_taken = ctx.gpr[8] != ctx.gpr[9]; aot_gpr_7 = (0u | 0u); if (branch_taken) { goto L_089E8778; } goto L_089E8744; } L_089E8744: ctx.gpr[8] = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast(9))); ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(9))); if (ctx.gpr[8] != ctx.gpr[9]) { aot_gpr_7 = (aot_gpr_7 & 255u); goto L_089E877C; } goto L_089E8754; L_089E8754: ctx.gpr[8] = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast(10))); ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(10))); if (ctx.gpr[8] != ctx.gpr[9]) { aot_gpr_7 = (aot_gpr_7 & 255u); goto L_089E877C; } goto L_089E8764; L_089E8764: ctx.gpr[8] = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast(11))); ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(11))); { const bool branch_taken = ctx.gpr[8] != ctx.gpr[9]; aot_gpr_7 = (aot_gpr_7 & 255u); if (branch_taken) { goto L_089E877C; } goto L_089E8774; } L_089E8774: aot_gpr_7 = (0u | 1u); goto L_089E8778; L_089E8778: aot_gpr_7 = (aot_gpr_7 & 255u); goto L_089E877C; L_089E877C: aot_gpr_7 = (aot_gpr_7 < static_cast(1) ? 1u : 0u); aot_gpr_7 = (aot_gpr_7 & 255u); { const bool branch_taken = aot_gpr_7 == 0u; if (branch_taken) { goto L_089E8798; } goto L_089E878C; } L_089E878C: aot_gpr_7 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(0))); aot_gpr_7 = (aot_gpr_7 | 8u); aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(0), static_cast(aot_gpr_7)); goto L_089E8798; L_089E8798: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(28))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(28))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(aot_fpr_13)) && aot_fpr_12 == aot_fpr_13)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_089E87BC; } goto L_089E87B0; } L_089E87B0: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(0))); aot_gpr_5 = (aot_gpr_5 | 16u); aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(0), static_cast(aot_gpr_5)); goto L_089E87BC; L_089E87BC: 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_089E87C4: aot_gpr_29 = (aot_gpr_29 + static_cast(-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(0), aot_run_words); } aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_7); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(16))); aot_gpr_4 = (aot_gpr_4 & 65535u); aot_gpr_7 = (aot_gpr_4 & 255u); ctx.gpr[8] = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), ctx.gpr[8])); ctx.gpr[8] = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), ctx.gpr[8])); ctx.gpr[8] = (ctx.gpr[8] & 65535u); ctx.gpr[9] = (aot_gpr_5 + ctx.gpr[8]); ctx.gpr[8] = (ctx.gpr[8] + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[8])); ctx.gpr[1] = (static_cast(static_cast(ctx.gpr[8]) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[9] + static_cast(0), static_cast(aot_gpr_7)); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 8u)); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_7 = (aot_mem.aot_direct_load_word_right(aot_gpr_5 + static_cast(0), aot_gpr_7)); aot_gpr_7 = (aot_mem.aot_direct_load_word_left(aot_gpr_5 + static_cast(3), aot_gpr_7)); aot_gpr_7 = (aot_gpr_7 & 65535u); ctx.gpr[8] = (aot_gpr_5 + aot_gpr_7); aot_gpr_7 = (aot_gpr_7 + static_cast(1)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(aot_gpr_7)); ctx.gpr[1] = (static_cast(static_cast(aot_gpr_7) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[8] + static_cast(0), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(16))); aot_gpr_7 = (aot_gpr_4 & 1u); ctx.gpr[17] = (aot_gpr_5 | 0u); ctx.gpr[16] = (aot_gpr_6 | 0u); { const bool branch_taken = aot_gpr_7 == 0u; if (branch_taken) { goto L_089E885C; } goto L_089E884C; } L_089E884C: aot_gpr_5 = (ctx.gpr[16] + static_cast(12)); aot_gpr_31 = (0x089E8858u); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 105u, 0x089E8858u, 0x08964A14u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 74u, aot_mem); #else recomp_unit_0088_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_0088_entry, 88u, 74u, 0x08964A14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8858u) goto L_089E8858; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E8858: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(16))); goto L_089E885C; L_089E885C: aot_gpr_5 = (aot_gpr_4 & 2u); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_089E892C; } goto L_089E8868; } L_089E8868: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(20))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); aot_gpr_5 = (aot_gpr_4 & 65535u); aot_gpr_5 = (aot_gpr_5 & 65535u); aot_gpr_6 = (aot_gpr_5 & 255u); aot_gpr_7 = (aot_mem.aot_direct_load_word_right(ctx.gpr[17] + static_cast(0), aot_gpr_7)); aot_gpr_7 = (aot_mem.aot_direct_load_word_left(ctx.gpr[17] + static_cast(3), aot_gpr_7)); aot_gpr_7 = (aot_gpr_7 & 65535u); ctx.gpr[8] = (ctx.gpr[17] + aot_gpr_7); aot_gpr_7 = (aot_gpr_7 + static_cast(1)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(0), static_cast(aot_gpr_7)); ctx.gpr[1] = (static_cast(static_cast(aot_gpr_7) >> 8u)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[8] + static_cast(0), static_cast(aot_gpr_6)); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 8u)); aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_6 = (aot_mem.aot_direct_load_word_right(ctx.gpr[17] + static_cast(0), aot_gpr_6)); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(ctx.gpr[17] + static_cast(3), aot_gpr_6)); aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_7 = (ctx.gpr[17] + aot_gpr_6); aot_gpr_6 = (aot_gpr_6 + static_cast(1)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(0), static_cast(aot_gpr_6)); ctx.gpr[1] = (static_cast(static_cast(aot_gpr_6) >> 8u)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(aot_gpr_7 + static_cast(0), static_cast(aot_gpr_5)); aot_gpr_4 = (aot_gpr_4 >> 16u); aot_gpr_4 = (aot_gpr_4 & 65535u); aot_gpr_5 = (aot_gpr_4 & 255u); aot_gpr_6 = (aot_mem.aot_direct_load_word_right(ctx.gpr[17] + static_cast(0), aot_gpr_6)); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(ctx.gpr[17] + static_cast(3), aot_gpr_6)); aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_7 = (ctx.gpr[17] + aot_gpr_6); aot_gpr_6 = (aot_gpr_6 + static_cast(1)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(0), static_cast(aot_gpr_6)); ctx.gpr[1] = (static_cast(static_cast(aot_gpr_6) >> 8u)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(aot_gpr_7 + static_cast(0), static_cast(aot_gpr_5)); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 8u)); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_5 = (aot_mem.aot_direct_load_word_right(ctx.gpr[17] + static_cast(0), aot_gpr_5)); aot_gpr_5 = (aot_mem.aot_direct_load_word_left(ctx.gpr[17] + static_cast(3), aot_gpr_5)); aot_gpr_5 = (aot_gpr_5 & 65535u); aot_gpr_6 = (ctx.gpr[17] + aot_gpr_5); aot_gpr_5 = (aot_gpr_5 + static_cast(1)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(0), static_cast(aot_gpr_5)); ctx.gpr[1] = (static_cast(static_cast(aot_gpr_5) >> 8u)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(aot_gpr_6 + static_cast(0), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(16))); goto L_089E892C; L_089E892C: aot_gpr_5 = (aot_gpr_4 & 4u); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_089E89FC; } goto L_089E8938; } L_089E8938: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); aot_gpr_5 = (aot_gpr_4 & 65535u); aot_gpr_5 = (aot_gpr_5 & 65535u); aot_gpr_6 = (aot_gpr_5 & 255u); aot_gpr_7 = (aot_mem.aot_direct_load_word_right(ctx.gpr[17] + static_cast(0), aot_gpr_7)); aot_gpr_7 = (aot_mem.aot_direct_load_word_left(ctx.gpr[17] + static_cast(3), aot_gpr_7)); aot_gpr_7 = (aot_gpr_7 & 65535u); ctx.gpr[8] = (ctx.gpr[17] + aot_gpr_7); aot_gpr_7 = (aot_gpr_7 + static_cast(1)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(0), static_cast(aot_gpr_7)); ctx.gpr[1] = (static_cast(static_cast(aot_gpr_7) >> 8u)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[8] + static_cast(0), static_cast(aot_gpr_6)); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 8u)); aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_6 = (aot_mem.aot_direct_load_word_right(ctx.gpr[17] + static_cast(0), aot_gpr_6)); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(ctx.gpr[17] + static_cast(3), aot_gpr_6)); aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_7 = (ctx.gpr[17] + aot_gpr_6); aot_gpr_6 = (aot_gpr_6 + static_cast(1)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(0), static_cast(aot_gpr_6)); ctx.gpr[1] = (static_cast(static_cast(aot_gpr_6) >> 8u)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(aot_gpr_7 + static_cast(0), static_cast(aot_gpr_5)); aot_gpr_4 = (aot_gpr_4 >> 16u); aot_gpr_4 = (aot_gpr_4 & 65535u); aot_gpr_5 = (aot_gpr_4 & 255u); aot_gpr_6 = (aot_mem.aot_direct_load_word_right(ctx.gpr[17] + static_cast(0), aot_gpr_6)); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(ctx.gpr[17] + static_cast(3), aot_gpr_6)); aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_7 = (ctx.gpr[17] + aot_gpr_6); aot_gpr_6 = (aot_gpr_6 + static_cast(1)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(0), static_cast(aot_gpr_6)); ctx.gpr[1] = (static_cast(static_cast(aot_gpr_6) >> 8u)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(aot_gpr_7 + static_cast(0), static_cast(aot_gpr_5)); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 8u)); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_5 = (aot_mem.aot_direct_load_word_right(ctx.gpr[17] + static_cast(0), aot_gpr_5)); aot_gpr_5 = (aot_mem.aot_direct_load_word_left(ctx.gpr[17] + static_cast(3), aot_gpr_5)); aot_gpr_5 = (aot_gpr_5 & 65535u); aot_gpr_6 = (ctx.gpr[17] + aot_gpr_5); aot_gpr_5 = (aot_gpr_5 + static_cast(1)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(0), static_cast(aot_gpr_5)); ctx.gpr[1] = (static_cast(static_cast(aot_gpr_5) >> 8u)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(aot_gpr_6 + static_cast(0), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(16))); goto L_089E89FC; L_089E89FC: aot_gpr_5 = (aot_gpr_4 & 8u); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_089E8A18; } goto L_089E8A08; } L_089E8A08: aot_gpr_5 = (ctx.gpr[16] + static_cast(8)); aot_gpr_31 = (0x089E8A14u); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 112u, 0x089E8A14u, 0x08964C24u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 78u, aot_mem); #else recomp_unit_0088_entry(rt, ctx, 78u, 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, 78u, 0x08964C24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8A14u) goto L_089E8A14; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E8A14: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(16))); goto L_089E8A18; L_089E8A18: aot_gpr_4 = (aot_gpr_4 & 16u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E8AE4; } goto L_089E8A24; } L_089E8A24: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(28))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); aot_gpr_5 = (aot_gpr_4 & 65535u); aot_gpr_5 = (aot_gpr_5 & 65535u); aot_gpr_6 = (aot_gpr_5 & 255u); aot_gpr_7 = (aot_mem.aot_direct_load_word_right(ctx.gpr[17] + static_cast(0), aot_gpr_7)); aot_gpr_7 = (aot_mem.aot_direct_load_word_left(ctx.gpr[17] + static_cast(3), aot_gpr_7)); aot_gpr_7 = (aot_gpr_7 & 65535u); ctx.gpr[8] = (ctx.gpr[17] + aot_gpr_7); aot_gpr_7 = (aot_gpr_7 + static_cast(1)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(0), static_cast(aot_gpr_7)); ctx.gpr[1] = (static_cast(static_cast(aot_gpr_7) >> 8u)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(ctx.gpr[8] + static_cast(0), static_cast(aot_gpr_6)); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 8u)); aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_6 = (aot_mem.aot_direct_load_word_right(ctx.gpr[17] + static_cast(0), aot_gpr_6)); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(ctx.gpr[17] + static_cast(3), aot_gpr_6)); aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_7 = (ctx.gpr[17] + aot_gpr_6); aot_gpr_6 = (aot_gpr_6 + static_cast(1)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(0), static_cast(aot_gpr_6)); ctx.gpr[1] = (static_cast(static_cast(aot_gpr_6) >> 8u)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(aot_gpr_7 + static_cast(0), static_cast(aot_gpr_5)); aot_gpr_4 = (aot_gpr_4 >> 16u); aot_gpr_4 = (aot_gpr_4 & 65535u); aot_gpr_5 = (aot_gpr_4 & 255u); aot_gpr_6 = (aot_mem.aot_direct_load_word_right(ctx.gpr[17] + static_cast(0), aot_gpr_6)); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(ctx.gpr[17] + static_cast(3), aot_gpr_6)); aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_7 = (ctx.gpr[17] + aot_gpr_6); aot_gpr_6 = (aot_gpr_6 + static_cast(1)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(0), static_cast(aot_gpr_6)); ctx.gpr[1] = (static_cast(static_cast(aot_gpr_6) >> 8u)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(aot_gpr_7 + static_cast(0), static_cast(aot_gpr_5)); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 8u)); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_5 = (aot_mem.aot_direct_load_word_right(ctx.gpr[17] + static_cast(0), aot_gpr_5)); aot_gpr_5 = (aot_mem.aot_direct_load_word_left(ctx.gpr[17] + static_cast(3), aot_gpr_5)); aot_gpr_5 = (aot_gpr_5 & 65535u); aot_gpr_6 = (ctx.gpr[17] + aot_gpr_5); aot_gpr_5 = (aot_gpr_5 + static_cast(1)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(0), static_cast(aot_gpr_5)); ctx.gpr[1] = (static_cast(static_cast(aot_gpr_5) >> 8u)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(1), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(aot_gpr_6 + static_cast(0), static_cast(aot_gpr_4)); goto L_089E8AE4; L_089E8AE4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(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(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_089E8AF8: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9672))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9676))); aot_gpr_6 = (aot_gpr_5 ^ aot_gpr_4); aot_gpr_6 = (aot_gpr_6 < static_cast(1) ? 1u : 0u); aot_gpr_6 = (aot_gpr_6 & 255u); { const bool branch_taken = aot_gpr_6 != 0u; if (branch_taken) { goto L_089E8B68; } goto L_089E8B1C; } L_089E8B1C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(-4))); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_089E8B50; } goto L_089E8B28; } L_089E8B28: { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_089E8B50; } goto L_089E8B30; } L_089E8B30: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(108))); aot_gpr_6 = (aot_gpr_4 + static_cast(24)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(0)))))); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(4))); jump_target = aot_gpr_6; aot_gpr_31 = (0x089E8B4Cu); aot_gpr_5 = (0u | 3u); 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 == 0x089E8B4Cu) goto L_089E8B4C; AOT_REGCACHE_SYNC_OUT(); return; L_089E8B4C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9676))); goto L_089E8B50; L_089E8B50: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9672))); aot_gpr_6 = (aot_gpr_5 ^ aot_gpr_4); aot_gpr_6 = (aot_gpr_6 < static_cast(1) ? 1u : 0u); aot_gpr_6 = (aot_gpr_6 & 255u); { const bool branch_taken = aot_gpr_6 == 0u; if (branch_taken) { goto L_089E8B1C; } goto L_089E8B68; } L_089E8B68: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(0), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(1), static_cast(0u)); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9676), aot_gpr_5); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(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_089E8B80: aot_gpr_29 = (aot_gpr_29 + static_cast(-80)); { const std::uint32_t aot_run_words[9]{ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9672))); ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9676))); aot_gpr_4 = (aot_gpr_29 + static_cast(8)); aot_gpr_31 = (0x089E8BBCu); aot_gpr_5 = (ctx.gpr[28] + static_cast(-10808)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0218. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 124u, 0x089E8BBCu, 0x08B6D780u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 306u, aot_mem); #else recomp_unit_0218_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_0218_entry, 218u, 306u, 0x08B6D780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8BBCu) goto L_089E8BBC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E8BBC: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), ctx.gpr[18]); { const bool branch_taken = ctx.gpr[16] == ctx.gpr[17]; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[19]); if (branch_taken) { goto L_089E8C20; } goto L_089E8BD0; } L_089E8BD0: ctx.gpr[20] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(16)))))); ctx.gpr[21] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(18)))))); ctx.gpr[22] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); ctx.gpr[23] = (ctx.gpr[21] << 3u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); goto L_089E8BE4; L_089E8BE4: { const bool branch_taken = ctx.gpr[21] != 0u; aot_gpr_4 = (aot_gpr_4 + ctx.gpr[20]); if (branch_taken) { goto L_089E8BF4; } goto L_089E8BEC; } L_089E8BEC: { const bool branch_taken = 0u == 0u; aot_gpr_5 = (ctx.gpr[22] | 0u); if (branch_taken) { goto L_089E8C0C; } goto L_089E8BF4; } L_089E8BF4: aot_gpr_5 = (aot_gpr_4 + ctx.gpr[22]); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); aot_gpr_5 = (aot_gpr_5 + ctx.gpr[23]); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0)))))); aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); goto L_089E8C0C; L_089E8C0C: jump_target = aot_gpr_5; aot_gpr_31 = (0x089E8C14u); 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 == 0x089E8C14u) goto L_089E8C14; AOT_REGCACHE_SYNC_OUT(); return; L_089E8C14: ctx.gpr[16] = (ctx.gpr[16] + static_cast(4)); if (ctx.gpr[16] != ctx.gpr[17]) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); goto L_089E8BE4; } goto L_089E8C20; L_089E8C20: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[18]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[19]); { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), 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]; aot_gpr_31 = aot_run_words[8]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(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_089E8C54: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); { const std::uint32_t aot_run_words[3]{0u, 0u, 0u}; aot_mem.aot_direct_store32_block(ctx.gpr[28] + static_cast(9672), aot_run_words); } aot_gpr_31 = (0x089E8C70u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-10792)); 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], ctx.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 == 0x089E8C70u) goto L_089E8C70; AOT_REGCACHE_SYNC_OUT(); return; L_089E8C70: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(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_089E8C7C: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[17]); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[16]); { 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(8), aot_run_words); } { const bool branch_taken = aot_gpr_5 != 0u; ctx.gpr[16] = (aot_gpr_5 | 0u); if (branch_taken) { goto L_089E8CB4; } goto L_089E8CA0; } L_089E8CA0: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), 0u); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), 0u); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(8), 0u); { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[17] | 0u); if (branch_taken) { goto L_089E8CF0; } goto L_089E8CB4; } L_089E8CB4: aot_gpr_31 = (0x089E8CBCu); 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, ctx.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 == 0x089E8CBCu) goto L_089E8CBC; AOT_REGCACHE_SYNC_OUT(); return; L_089E8CBC: ctx.gpr[18] = (ctx.gpr[2] + static_cast(1)); aot_gpr_31 = (0x089E8CC8u); aot_gpr_4 = (ctx.gpr[18] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0174. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 138u, 0x089E8CC8u, 0x08ABE29Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); #else recomp_unit_0174_entry(rt, ctx, 468u, 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, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8CC8u) goto L_089E8CC8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E8CC8: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089E8CDCu); aot_gpr_6 = (ctx.gpr[18] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 139u, 0x089E8CDCu, 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 == 0x089E8CDCu) goto L_089E8CDC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E8CDC: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[18]); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), ctx.gpr[19]); aot_gpr_4 = (ctx.gpr[18] + static_cast(-1)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(8), aot_gpr_4); ctx.gpr[2] = (ctx.gpr[17] | 0u); goto L_089E8CF0; L_089E8CF0: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(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(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_089E8D0C: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[17]); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[16]); { 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(8), aot_run_words); } { const bool branch_taken = aot_gpr_5 != 0u; ctx.gpr[16] = (aot_gpr_5 | 0u); if (branch_taken) { goto L_089E8D54; } goto L_089E8D30; } L_089E8D30: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E8D44; } goto L_089E8D3C; } L_089E8D3C: aot_gpr_31 = (0x089E8D44u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2E4, 174u, 472u, 0x08ABE2E4u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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, 472u, 0x08ABE2E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8D44u) goto L_089E8D44; AOT_REGCACHE_SYNC_OUT(); return; L_089E8D44: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), 0u); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), 0u); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(8), 0u); if (branch_taken) { goto L_089E8DA4; } goto L_089E8D54; } L_089E8D54: ctx.gpr[19] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089E8D60u); aot_gpr_4 = (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_08B58974, 213u, 150u, 0x08B58974u>(ctx, &aot_mem, ctx.pc, ctx.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 == 0x089E8D60u) goto L_089E8D60; AOT_REGCACHE_SYNC_OUT(); return; L_089E8D60: ctx.gpr[18] = (ctx.gpr[2] + static_cast(1)); aot_gpr_31 = (0x089E8D6Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0174. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 147u, 0x089E8D6Cu, 0x08ABE29Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); #else recomp_unit_0174_entry(rt, ctx, 468u, 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, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8D6Cu) goto L_089E8D6C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E8D6C: ctx.gpr[16] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089E8D80u); aot_gpr_6 = (ctx.gpr[18] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 148u, 0x089E8D80u, 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 == 0x089E8D80u) goto L_089E8D80; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E8D80: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E8D94; } goto L_089E8D8C; } L_089E8D8C: aot_gpr_31 = (0x089E8D94u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2E4, 174u, 472u, 0x08ABE2E4u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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, 472u, 0x08ABE2E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8D94u) goto L_089E8D94; AOT_REGCACHE_SYNC_OUT(); return; L_089E8D94: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[18]); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), ctx.gpr[16]); aot_gpr_4 = (ctx.gpr[18] + static_cast(-1)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(8), aot_gpr_4); goto L_089E8DA4; L_089E8DA4: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(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(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_089E8DC0: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[16]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[17]); ctx.gpr[17] = (aot_gpr_5 | 0u); ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); { const std::uint32_t aot_run_words[4]{ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } { const bool branch_taken = aot_gpr_4 == 0u; aot_gpr_5 = (0u | 1u); if (branch_taken) { goto L_089E8DF8; } goto L_089E8DF0; } L_089E8DF0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_5 = (aot_gpr_5 < static_cast(1) ? 1u : 0u); goto L_089E8DF8; L_089E8DF8: { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_089E8E24; } goto L_089E8E00; } L_089E8E00: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { goto L_089E8E14; } goto L_089E8E0C; } L_089E8E0C: aot_gpr_31 = (0x089E8E14u); 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_08ABE2E4, 174u, 472u, 0x08ABE2E4u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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, 472u, 0x08ABE2E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8E14u) goto L_089E8E14; AOT_REGCACHE_SYNC_OUT(); return; L_089E8E14: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(0), 0u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(4), 0u); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(8), 0u); if (branch_taken) { goto L_089E8E8C; } goto L_089E8E24; } L_089E8E24: { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[18] = (0u | 1u); if (branch_taken) { goto L_089E8E34; } goto L_089E8E2C; } L_089E8E2C: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); goto L_089E8E34; L_089E8E34: ctx.gpr[20] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089E8E40u); aot_gpr_4 = (ctx.gpr[20] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0174. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 161u, 0x089E8E40u, 0x08ABE29Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); #else recomp_unit_0174_entry(rt, ctx, 468u, 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, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8E40u) goto L_089E8E40; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E8E40: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[19] = (ctx.gpr[2] | 0u); if (branch_taken) { goto L_089E8E54; } goto L_089E8E4C; } L_089E8E4C: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); if (branch_taken) { goto L_089E8E58; } goto L_089E8E54; } L_089E8E54: ctx.gpr[17] = (ctx.gpr[28] + static_cast(-10776)); goto L_089E8E58; L_089E8E58: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089E8E68u); aot_gpr_6 = (ctx.gpr[20] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 165u, 0x089E8E68u, 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 == 0x089E8E68u) goto L_089E8E68; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E8E68: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { goto L_089E8E7C; } goto L_089E8E74; } L_089E8E74: aot_gpr_31 = (0x089E8E7Cu); 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_08ABE2E4, 174u, 472u, 0x08ABE2E4u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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, 472u, 0x08ABE2E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8E7Cu) goto L_089E8E7C; AOT_REGCACHE_SYNC_OUT(); return; L_089E8E7C: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(4), ctx.gpr[20]); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(0), ctx.gpr[19]); aot_gpr_4 = (ctx.gpr[18] + static_cast(-1)); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(8), aot_gpr_4); goto L_089E8E8C; L_089E8E8C: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(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(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_089E8EAC: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[17]); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[16]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); { const bool branch_taken = aot_gpr_6 == 0u; ctx.gpr[16] = (aot_gpr_5 | 0u); if (branch_taken) { goto L_089E8F24; } goto L_089E8ECC; } L_089E8ECC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E8F24; } goto L_089E8ED8; } L_089E8ED8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; aot_gpr_4 = (2232u << 16u); if (branch_taken) { goto L_089E8EF4; } goto L_089E8EE4; } L_089E8EE4: aot_gpr_6 = (ctx.gpr[28] + static_cast(-10772)); aot_gpr_5 = (0u | 267u); aot_gpr_31 = (0x089E8EF4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1976)); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0212_entry, 212u, 924u, 0x08B576ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8EF4u) goto L_089E8EF4; AOT_REGCACHE_SYNC_OUT(); return; L_089E8EF4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; aot_gpr_4 = (2232u << 16u); if (branch_taken) { goto L_089E8F10; } goto L_089E8F00; } L_089E8F00: aot_gpr_6 = (ctx.gpr[28] + static_cast(-10764)); aot_gpr_5 = (0u | 268u); aot_gpr_31 = (0x089E8F10u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1976)); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0212_entry, 212u, 924u, 0x08B576ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8F10u) goto L_089E8F10; AOT_REGCACHE_SYNC_OUT(); return; L_089E8F10: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_31 = (0x089E8F1Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0213. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 176u, 0x089E8F1Cu, 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 == 0x089E8F1Cu) goto L_089E8F1C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E8F1C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); if (branch_taken) { goto L_089E8F28; } goto L_089E8F24; } L_089E8F24: ctx.gpr[2] = (0u | 0u); goto L_089E8F28; L_089E8F28: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(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(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_089E8F3C: aot_gpr_5 = (aot_gpr_5 << 24u); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_7 = (0u | 0u); if (ctx.gpr[8] != 0u) { aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); goto L_089E8F54; } goto L_089E8F54; L_089E8F54: aot_gpr_7 = (aot_gpr_6 < aot_gpr_7 ? 1u : 0u); { const bool branch_taken = aot_gpr_7 == 0u; if (branch_taken) { goto L_089E8F9C; } goto L_089E8F60; } L_089E8F60: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_6 = (aot_gpr_7 + aot_gpr_6); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_6 + static_cast(0)))))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E8F8C; } goto L_089E8F74; } L_089E8F74: { const bool branch_taken = aot_gpr_4 == aot_gpr_5; if (branch_taken) { goto L_089E8F94; } goto L_089E8F7C; } L_089E8F7C: aot_gpr_6 = (aot_gpr_6 + static_cast(1)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_6 + static_cast(0)))))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089E8F74; } goto L_089E8F8C; } L_089E8F8C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u + static_cast(-1)); if (branch_taken) { goto L_089E8FA0; } goto L_089E8F94; } L_089E8F94: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (aot_gpr_6 - aot_gpr_7); if (branch_taken) { goto L_089E8FA0; } goto L_089E8F9C; } L_089E8F9C: ctx.gpr[2] = (0u + static_cast(-1)); goto L_089E8FA0; L_089E8FA0: 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_089E8FA8: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[16]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[17]); ctx.gpr[17] = (aot_gpr_5 | 0u); ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[18]); ctx.gpr[18] = (0u | 0u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0)))))); { const std::uint32_t aot_run_words[4]{ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(12), aot_run_words); } goto L_089E8FDC; L_089E8FDC: { const bool branch_taken = aot_gpr_5 == 0u; aot_gpr_5 = (ctx.gpr[18] < aot_gpr_6 ? 1u : 0u); if (branch_taken) { goto L_089E8FFC; } goto L_089E8FE4; } L_089E8FE4: { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_089E8FFC; } goto L_089E8FEC; } L_089E8FEC: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); { const bool branch_taken = 0u == 0u; aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0)))))); if (branch_taken) { goto L_089E8FDC; } goto L_089E8FFC; } L_089E8FFC: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { goto L_089E901C; } goto L_089E9004; } L_089E9004: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); ctx.gpr[19] = (0u | 0u); { const bool branch_taken = aot_gpr_4 != 0u; aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); if (branch_taken) { goto L_089E9024; } goto L_089E9014; } L_089E9014: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089E9028; } goto L_089E901C; } L_089E901C: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089E910C; } goto L_089E9024; } L_089E9024: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); goto L_089E9028; L_089E9028: ctx.gpr[19] = (ctx.gpr[18] + ctx.gpr[19]); ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_5 = (aot_gpr_5 < ctx.gpr[19] ? 1u : 0u); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_089E90D4; } goto L_089E903C; } L_089E903C: ctx.gpr[20] = (ctx.gpr[19] + ctx.gpr[19]); aot_gpr_31 = (0x089E9048u); aot_gpr_4 = (ctx.gpr[20] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0174. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 199u, 0x089E9048u, 0x08ABE29Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); #else recomp_unit_0174_entry(rt, ctx, 468u, 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, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9048u) goto L_089E9048; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E9048: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_mem.aot_direct_store8(ctx.gpr[21] + static_cast(0), static_cast(0u)); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); { const bool branch_taken = aot_gpr_5 == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); if (branch_taken) { goto L_089E9088; } goto L_089E905C; } L_089E905C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_089E9088; } goto L_089E9068; } L_089E9068: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_4 = (0u | 0u); if (aot_gpr_6 != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); goto L_089E9078; } goto L_089E9078; L_089E9078: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089E9084u); aot_gpr_4 = (ctx.gpr[21] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 203u, 0x089E9084u, 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 == 0x089E9084u) goto L_089E9084; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E9084: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); goto L_089E9088; L_089E9088: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_4 = (0u | 0u); if (aot_gpr_5 != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); goto L_089E9098; } goto L_089E9098; L_089E9098: aot_gpr_4 = (ctx.gpr[21] + aot_gpr_4); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089E90A8u); aot_gpr_6 = (ctx.gpr[18] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 206u, 0x089E90A8u, 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 == 0x089E90A8u) goto L_089E90A8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E90A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E90C8; } goto L_089E90B4; } L_089E90B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E90C8; } goto L_089E90C0; } L_089E90C0: aot_gpr_31 = (0x089E90C8u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2E4, 174u, 472u, 0x08ABE2E4u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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, 472u, 0x08ABE2E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E90C8u) goto L_089E90C8; AOT_REGCACHE_SYNC_OUT(); return; L_089E90C8: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(0), ctx.gpr[21]); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(4), ctx.gpr[20]); if (branch_taken) { goto L_089E90FC; } goto L_089E90D4; } L_089E90D4: aot_gpr_5 = (aot_gpr_4 | 0u); ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_4 = (0u | 0u); if (aot_gpr_5 != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); goto L_089E90E8; } goto L_089E90E8; L_089E90E8: aot_gpr_4 = (ctx.gpr[21] + aot_gpr_4); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089E90F8u); aot_gpr_6 = (ctx.gpr[18] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 212u, 0x089E90F8u, 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 == 0x089E90F8u) goto L_089E90F8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E90F8: ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); goto L_089E90FC; L_089E90FC: aot_gpr_4 = (ctx.gpr[19] + static_cast(-1)); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(8), aot_gpr_4); aot_gpr_4 = (ctx.gpr[21] + aot_gpr_4); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(0u)); goto L_089E910C; L_089E910C: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(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(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_089E9130: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[16]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[17]); ctx.gpr[17] = (aot_gpr_5 | 0u); ctx.gpr[16] = (aot_gpr_4 | 0u); { const std::uint32_t aot_run_words[5]{ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } aot_gpr_31 = (0x089E9160u); 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, ctx.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 == 0x089E9160u) goto L_089E9160; AOT_REGCACHE_SYNC_OUT(); return; L_089E9160: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (0u | 0u); if (aot_gpr_5 != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); goto L_089E9174; } goto L_089E9174; L_089E9174: ctx.gpr[18] = (ctx.gpr[18] + aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (aot_gpr_4 < ctx.gpr[18] ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E9234; } goto L_089E918C; } L_089E918C: ctx.gpr[19] = (ctx.gpr[18] + ctx.gpr[18]); aot_gpr_31 = (0x089E9198u); aot_gpr_4 = (ctx.gpr[19] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0174. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 219u, 0x089E9198u, 0x08ABE29Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); #else recomp_unit_0174_entry(rt, ctx, 468u, 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, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9198u) goto L_089E9198; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E9198: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_mem.aot_direct_store8(ctx.gpr[20] + static_cast(0), static_cast(0u)); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); { const bool branch_taken = aot_gpr_5 == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); if (branch_taken) { goto L_089E91DC; } goto L_089E91AC; } L_089E91AC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_089E91DC; } goto L_089E91B8; } L_089E91B8: aot_gpr_6 = (aot_gpr_4 | 0u); { const bool branch_taken = aot_gpr_6 == 0u; aot_gpr_4 = (0u | 1u); if (branch_taken) { goto L_089E91CC; } goto L_089E91C4; } L_089E91C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); goto L_089E91CC; L_089E91CC: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089E91D8u); aot_gpr_4 = (ctx.gpr[20] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 224u, 0x089E91D8u, 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 == 0x089E91D8u) goto L_089E91D8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E91D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); goto L_089E91DC; L_089E91DC: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_4 = (0u | 0u); if (aot_gpr_5 != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); goto L_089E91EC; } goto L_089E91EC; L_089E91EC: ctx.gpr[21] = (ctx.gpr[20] + aot_gpr_4); aot_gpr_31 = (0x089E91F8u); 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, ctx.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 == 0x089E91F8u) goto L_089E91F8; AOT_REGCACHE_SYNC_OUT(); return; L_089E91F8: aot_gpr_6 = (ctx.gpr[2] + static_cast(1)); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089E9208u); aot_gpr_5 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 228u, 0x089E9208u, 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 == 0x089E9208u) goto L_089E9208; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E9208: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E9228; } goto L_089E9214; } L_089E9214: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E9228; } goto L_089E9220; } L_089E9220: aot_gpr_31 = (0x089E9228u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2E4, 174u, 472u, 0x08ABE2E4u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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, 472u, 0x08ABE2E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9228u) goto L_089E9228; AOT_REGCACHE_SYNC_OUT(); return; L_089E9228: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(0), ctx.gpr[20]); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(4), ctx.gpr[19]); if (branch_taken) { goto L_089E9264; } goto L_089E9234; } L_089E9234: aot_gpr_6 = (aot_gpr_5 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_5 = (0u | 0u); if (aot_gpr_6 != 0u) { aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); goto L_089E9248; } goto L_089E9248; L_089E9248: ctx.gpr[19] = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x089E9254u); 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, ctx.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 == 0x089E9254u) goto L_089E9254; AOT_REGCACHE_SYNC_OUT(); return; L_089E9254: aot_gpr_6 = (ctx.gpr[2] + static_cast(1)); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089E9264u); aot_gpr_5 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 235u, 0x089E9264u, 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 == 0x089E9264u) goto L_089E9264; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E9264: aot_gpr_4 = (ctx.gpr[18] + static_cast(-1)); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(8), aot_gpr_4); { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(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(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_089E9290: aot_gpr_29 = (aot_gpr_29 + static_cast(-48)); { const std::uint32_t aot_run_words[7]{aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], ctx.gpr[9], ctx.gpr[10], ctx.gpr[11]}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(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_089E92B8: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_gpr_5 = (2236u << 16u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), ctx.gpr[16]); aot_gpr_4 = (0u | 1u); ctx.gpr[16] = (ctx.gpr[28] + static_cast(7768)); aot_gpr_5 = (aot_gpr_5 + static_cast(-17072)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_6 = (aot_gpr_5 | 0u); aot_fpr_13 = std::bit_cast(0u); ctx.gpr[8] = (0u | 0u); aot_gpr_5 = (aot_gpr_5 + static_cast(16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(aot_fpr_13)); aot_gpr_5 = (ctx.gpr[8] + aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), std::bit_cast(aot_fpr_13)); ctx.gpr[8] = (16256u << 16u); aot_gpr_7 = (0u | 0u); aot_fpr_12 = std::bit_cast(ctx.gpr[8]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_13)); goto L_089E9300; L_089E9300: aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(0), 0u); { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(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_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(32), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(36), std::bit_cast(aot_fpr_13)); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(68), std::bit_cast(aot_fpr_13)); { const std::uint32_t aot_run_words[3]{0u, 0u, std::bit_cast(aot_fpr_13)}; aot_mem.aot_direct_store32_block(aot_gpr_6 + static_cast(40), aot_run_words); } aot_mem.aot_direct_store8(aot_gpr_6 + static_cast(52), static_cast(0u)); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(56), std::bit_cast(aot_fpr_13)); aot_mem.aot_direct_store8(aot_gpr_6 + static_cast(54), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_6 + static_cast(55), static_cast(aot_gpr_4)); aot_gpr_7 = (aot_gpr_7 + static_cast(1)); aot_gpr_6 = (aot_gpr_6 + static_cast(80)); ctx.gpr[8] = (static_cast(aot_gpr_7) < 48 ? 1u : 0u); { const bool branch_taken = ctx.gpr[8] != 0u; aot_gpr_5 = (aot_gpr_5 + static_cast(80)); if (branch_taken) { goto L_089E9300; } goto L_089E9348; } L_089E9348: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x089E9358u); aot_gpr_6 = (0u | 1u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0128. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 240u, 0x089E9358u, 0x08A05F1Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 497u, aot_mem); #else recomp_unit_0128_entry(rt, ctx, 497u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 497u, 0x08A05F1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9358u) goto L_089E9358; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E9358: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) < 0; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-10744), ctx.gpr[2]); if (branch_taken) { goto L_089E9374; } goto L_089E9364; } L_089E9364: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089E9374u); aot_gpr_6 = (0u | 1u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0128. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 242u, 0x089E9374u, 0x08A05F5Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); #else recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 501u, 0x08A05F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9374u) goto L_089E9374; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E9374: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(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_089E9384: aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_5 = (aot_gpr_4 << 6u); aot_gpr_4 = (aot_gpr_4 << 4u); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_gpr_5 = (2236u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(-17072)); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(53))); // 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_089E93A8: aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_5 = (aot_gpr_4 << 6u); aot_gpr_4 = (aot_gpr_4 << 4u); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_gpr_5 = (2236u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(-17072)); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(53), static_cast(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_089E93CC: aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_5 = (aot_gpr_4 << 6u); aot_gpr_4 = (aot_gpr_4 << 4u); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_gpr_5 = (2236u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(-17072)); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(55))); // 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_089E93F0: aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_5 = (aot_gpr_4 << 6u); aot_gpr_4 = (aot_gpr_4 << 4u); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_gpr_5 = (2236u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(-17072)); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); // 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_089E9414: aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_5 = (aot_gpr_4 << 6u); aot_gpr_4 = (aot_gpr_4 << 4u); ctx.gpr[2] = (aot_gpr_5 + aot_gpr_4); aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-17072)); aot_gpr_4 = (aot_gpr_4 + static_cast(16)); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4); // 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_089E9438: aot_gpr_5 = (2236u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(-17072)); aot_gpr_6 = (0u | 0u); goto L_089E9444; L_089E9444: aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(52))); { const bool branch_taken = aot_gpr_7 == 0u; if (branch_taken) { goto L_089E94C8; } goto L_089E9450; } L_089E9450: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); { const bool branch_taken = aot_gpr_7 != aot_gpr_4; if (branch_taken) { goto L_089E94C8; } goto L_089E945C; } L_089E945C: ctx.fpr[18] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(16))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[18] < aot_fpr_12)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_089E94C8; } goto L_089E9470; } L_089E9470: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[18] <= aot_fpr_13)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_089E94C8; } goto L_089E9480; } L_089E9480: ctx.fpr[18] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(20))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[18] < aot_fpr_14)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_089E94C8; } goto L_089E9494; } L_089E9494: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[18] <= ctx.fpr[15])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_089E94C8; } goto L_089E94A4; } L_089E94A4: ctx.fpr[18] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(24))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[18] < ctx.fpr[16])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_089E94C8; } goto L_089E94B8; } L_089E94B8: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[18] <= ctx.fpr[17])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_089E94E0; } goto L_089E94C8; } L_089E94C8: aot_gpr_6 = (aot_gpr_6 + static_cast(1)); aot_gpr_7 = (static_cast(aot_gpr_6) < 48 ? 1u : 0u); { const bool branch_taken = aot_gpr_7 != 0u; aot_gpr_5 = (aot_gpr_5 + static_cast(80)); if (branch_taken) { goto L_089E9444; } goto L_089E94D8; } L_089E94D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089E94E8; } goto L_089E94E0; } L_089E94E0: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { goto L_089E94EC; } goto L_089E94E8; } L_089E94E8: ctx.gpr[2] = (0u | 0u); goto L_089E94EC; L_089E94EC: 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_089E94F4: aot_gpr_5 = (2236u << 16u); { const float fs = aot_fpr_12; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_6 = (0u | 0u); aot_gpr_5 = (aot_gpr_5 + static_cast(-17072)); goto L_089E9504; L_089E9504: aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(52))); { const bool branch_taken = aot_gpr_7 == 0u; if (branch_taken) { goto L_089E955C; } goto L_089E9510; } L_089E9510: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(16))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(20))); aot_fpr_13 = aot_fpr_13 - aot_fpr_14; ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); ctx.fpr[15] = ctx.fpr[15] - ctx.fpr[16]; ctx.fpr[18] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(24))); { 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(0x7FC00000u); else aot_fpr_13 = fs * ft; } ctx.fpr[17] = ctx.fpr[17] - ctx.fpr[18]; { const float fs = ctx.fpr[15]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_14 = std::bit_cast(0x7FC00000u); else aot_fpr_14 = fs * ft; } { 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)) ctx.fpr[17] = std::bit_cast(0x7FC00000u); else ctx.fpr[17] = fs * ft; } aot_fpr_13 = aot_fpr_13 + aot_fpr_14; aot_fpr_13 = aot_fpr_13 + ctx.fpr[17]; 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_089E955C; } goto L_089E9558; } L_089E9558: aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(52), static_cast(0u)); goto L_089E955C; L_089E955C: aot_gpr_6 = (aot_gpr_6 + static_cast(1)); aot_gpr_7 = (static_cast(aot_gpr_6) < 48 ? 1u : 0u); { const bool branch_taken = aot_gpr_7 != 0u; aot_gpr_5 = (aot_gpr_5 + static_cast(80)); if (branch_taken) { goto L_089E9504; } goto L_089E956C; } L_089E956C: 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_089E9574: aot_gpr_6 = (aot_mem.aot_direct_load_word_left(aot_gpr_4 + static_cast(3), aot_gpr_6)); aot_gpr_6 = (aot_mem.aot_direct_load_word_right(aot_gpr_4 + static_cast(0), aot_gpr_6)); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_6 = (aot_gpr_4 + static_cast(4)); aot_gpr_7 = (aot_mem.aot_direct_load_word_left(aot_gpr_6 + static_cast(3), aot_gpr_7)); aot_gpr_7 = (aot_mem.aot_direct_load_word_right(aot_gpr_6 + static_cast(0), aot_gpr_7)); aot_fpr_13 = std::bit_cast(aot_gpr_7); aot_gpr_4 = (aot_gpr_4 + static_cast(8)); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(aot_gpr_4 + static_cast(3), aot_gpr_6)); aot_gpr_6 = (aot_mem.aot_direct_load_word_right(aot_gpr_4 + static_cast(0), aot_gpr_6)); aot_fpr_14 = std::bit_cast(aot_gpr_6); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(4), std::bit_cast(aot_fpr_13)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(8), std::bit_cast(aot_fpr_14)); // 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_089E95B0: aot_gpr_29 = (aot_gpr_29 + static_cast(-96)); { const std::uint32_t aot_run_words[9]{ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(52), aot_run_words); } ctx.gpr[16] = (aot_gpr_5 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(96), aot_gpr_6); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_gpr_4 = (ctx.gpr[17] + static_cast(3)); ctx.gpr[18] = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089E95F4u); aot_gpr_5 = (ctx.gpr[18] | 0u); goto L_089E9574; L_089E95F4: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[18] = (aot_gpr_29 + static_cast(32)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } ctx.gpr[19] = (0u | 0u); ctx.gpr[20] = (2237u << 16u); ctx.gpr[20] = (ctx.gpr[20] + static_cast(-28736)); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089E9618u); aot_gpr_5 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0182. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 271u, 0x089E9618u, 0x08ADC0F0u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); #else recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9618u) goto L_089E9618; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E9618: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; ctx.gpr[23] = (0u + static_cast(-1)); if (branch_taken) { goto L_089E9668; } goto L_089E9624; } L_089E9624: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(96))); if (aot_gpr_4 != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(96))); goto L_089E9650; } goto L_089E9630; L_089E9630: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[21] + static_cast(10)))))); aot_gpr_6 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x089E9640u); aot_gpr_4 = (ctx.gpr[21] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0166. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 274u, 0x089E9640u, 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 == 0x089E9640u) goto L_089E9640; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E9640: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(48))); aot_mem.aot_direct_store8(ctx.gpr[21] + static_cast(4), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(96))); goto L_089E9650; L_089E9650: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(102))); 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_089E9668; } goto L_089E9664; } L_089E9664: ctx.gpr[19] = (0u | 1u); goto L_089E9668; L_089E9668: ctx.gpr[21] = (0u | 0u); ctx.gpr[22] = (0u | 0u); aot_gpr_4 = (aot_mem.aot_direct_load_word_right(ctx.gpr[17] + static_cast(21), aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load_word_left(ctx.gpr[17] + static_cast(24), aot_gpr_4)); aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); { const bool branch_taken = aot_gpr_4 == ctx.gpr[23]; if (branch_taken) { goto L_089E96B4; } goto L_089E9688; } L_089E9688: aot_gpr_6 = (aot_mem.aot_direct_load_word_right(ctx.gpr[17] + static_cast(21), aot_gpr_6)); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(ctx.gpr[17] + static_cast(24), aot_gpr_6)); aot_gpr_6 = (aot_gpr_6 << 16u); aot_gpr_6 = (static_cast(static_cast(aot_gpr_6) >> 16u)); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089E96A4u); aot_gpr_5 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0182. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 279u, 0x089E96A4u, 0x08ADCA6Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); #else recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E96A4u) goto L_089E96A4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E96A4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E96B4; } goto L_089E96B0; } L_089E96B0: ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(112))); goto L_089E96B4; L_089E96B4: aot_gpr_4 = (aot_mem.aot_direct_load_word_right(ctx.gpr[17] + static_cast(23), aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load_word_left(ctx.gpr[17] + static_cast(26), aot_gpr_4)); aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); { const bool branch_taken = aot_gpr_4 == ctx.gpr[23]; if (branch_taken) { goto L_089E96F8; } goto L_089E96CC; } L_089E96CC: aot_gpr_6 = (aot_mem.aot_direct_load_word_right(ctx.gpr[17] + static_cast(23), aot_gpr_6)); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(ctx.gpr[17] + static_cast(26), aot_gpr_6)); aot_gpr_6 = (aot_gpr_6 << 16u); aot_gpr_6 = (static_cast(static_cast(aot_gpr_6) >> 16u)); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089E96E8u); aot_gpr_5 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0182. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 283u, 0x089E96E8u, 0x08ADCA6Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); #else recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E96E8u) goto L_089E96E8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E96E8: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; if (branch_taken) { goto L_089E96F8; } goto L_089E96F4; } L_089E96F4: ctx.gpr[22] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(112))); goto L_089E96F8; L_089E96F8: aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(19))); ctx.gpr[8] = (aot_mem.aot_direct_load_word_right(ctx.gpr[17] + static_cast(15), ctx.gpr[8])); ctx.gpr[8] = (aot_mem.aot_direct_load_word_left(ctx.gpr[17] + static_cast(18), ctx.gpr[8])); ctx.gpr[9] = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(20))); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_7 = (ctx.gpr[18] | 0u); ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x089E9720u); ctx.gpr[11] = (ctx.gpr[19] | 0u); goto L_089E974C; L_089E9720: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(52), 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]; aot_gpr_31 = aot_run_words[8]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); // 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_089E974C: aot_gpr_29 = (aot_gpr_29 + static_cast(-720)); { const std::uint32_t aot_run_words[16]{std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[24]), std::bit_cast(ctx.fpr[26]), std::bit_cast(ctx.fpr[28]), std::bit_cast(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(644), aot_run_words); } ctx.gpr[19] = (aot_gpr_4 | 0u); ctx.gpr[30] = (ctx.gpr[9] & 255u); aot_gpr_4 = (ctx.gpr[10] & 255u); ctx.gpr[9] = (ctx.gpr[11] & 255u); ctx.gpr[10] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(633), static_cast(ctx.gpr[9])); ctx.gpr[9] = (16544u << 16u); ctx.fpr[30] = std::bit_cast(ctx.gpr[9]); ctx.gpr[9] = (16640u << 16u); ctx.fpr[22] = std::bit_cast(ctx.gpr[9]); ctx.fpr[28] = std::bit_cast(0u); ctx.gpr[9] = (16672u << 16u); ctx.fpr[24] = std::bit_cast(ctx.gpr[9]); ctx.gpr[20] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[20] + static_cast(-17072)); ctx.gpr[22] = (aot_gpr_5 | 0u); ctx.gpr[23] = (aot_gpr_6 | 0u); ctx.gpr[21] = (aot_gpr_7 | 0u); { const bool branch_taken = ctx.gpr[10] == 0u; ctx.gpr[18] = (ctx.gpr[8] | 0u); if (branch_taken) { goto L_089E99C4; } goto L_089E97E0; } L_089E97E0: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E99C4; } goto L_089E97E8; } L_089E97E8: aot_gpr_4 = (0u | 25u); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(48), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(9684))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(50), static_cast(aot_gpr_4)); ctx.gpr[17] = (aot_gpr_29 + static_cast(48)); aot_gpr_4 = (aot_gpr_29 + static_cast(51)); aot_gpr_5 = (aot_gpr_4 + static_cast(4)); aot_gpr_6 = (aot_gpr_4 + static_cast(8)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(67), static_cast(ctx.gpr[23])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_7 = (std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store_word_left(aot_gpr_4 + static_cast(3), aot_gpr_7); aot_mem.aot_direct_store_word_right(aot_gpr_4 + static_cast(0), aot_gpr_7); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(4))); aot_gpr_4 = (std::bit_cast(aot_fpr_13)); aot_mem.aot_direct_store_word_left(aot_gpr_5 + static_cast(3), aot_gpr_4); aot_mem.aot_direct_store_word_right(aot_gpr_5 + static_cast(0), aot_gpr_4); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(8))); aot_gpr_4 = (std::bit_cast(aot_fpr_14)); aot_mem.aot_direct_store_word_left(aot_gpr_6 + static_cast(3), aot_gpr_4); aot_mem.aot_direct_store_word_right(aot_gpr_6 + static_cast(0), aot_gpr_4); aot_mem.aot_direct_store_word_right(aot_gpr_29 + static_cast(63), ctx.gpr[18]); aot_mem.aot_direct_store_word_left(aot_gpr_29 + static_cast(66), ctx.gpr[18]); aot_gpr_4 = (0u < ctx.gpr[30] ? 1u : 0u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(68), static_cast(aot_gpr_4)); aot_gpr_4 = (0u + static_cast(-1)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(69), static_cast(aot_gpr_4)); ctx.gpr[1] = (static_cast(static_cast(aot_gpr_4) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(70), static_cast(ctx.gpr[1])); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(71), static_cast(aot_gpr_4)); ctx.gpr[1] = (static_cast(static_cast(aot_gpr_4) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(72), static_cast(ctx.gpr[1])); ctx.gpr[16] = (2237u << 16u); ctx.gpr[16] = (ctx.gpr[16] + static_cast(-28736)); { const bool branch_taken = ctx.gpr[22] == 0u; if (branch_taken) { goto L_089E99B4; } goto L_089E9878; } L_089E9878: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[22] + static_cast(86)))))); aot_gpr_4 = (static_cast(aot_gpr_4) < 300 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E99B4; } goto L_089E9888; } L_089E9888: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 14u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E98EC; } goto L_089E98A4; } L_089E98A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(352))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(108))); aot_gpr_5 = (aot_gpr_5 + static_cast(64)); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); jump_target = aot_gpr_5; aot_gpr_31 = (0x089E98C0u); aot_gpr_4 = (aot_gpr_4 + 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 == 0x089E98C0u) goto L_089E98C0; AOT_REGCACHE_SYNC_OUT(); return; L_089E98C0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { goto L_089E99B4; } goto L_089E98C8; } L_089E98C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(352))); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(3)))))); aot_gpr_4 = (aot_gpr_4 << 24u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 24u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(71), static_cast(aot_gpr_4)); ctx.gpr[1] = (static_cast(static_cast(aot_gpr_4) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(72), static_cast(ctx.gpr[1])); { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089E99B4; } goto L_089E98EC; } L_089E98EC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(104))); aot_gpr_6 = (aot_gpr_5 + static_cast(4)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(0))); { const bool branch_taken = aot_gpr_6 == 0u; aot_gpr_4 = (ctx.gpr[22] | 0u); if (branch_taken) { goto L_089E9934; } goto L_089E9900; } L_089E9900: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(604), static_cast(0u)); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(16))); goto L_089E9908; L_089E9908: aot_gpr_7 = (aot_gpr_7 < aot_gpr_4 ? 1u : 0u); aot_gpr_7 = (aot_gpr_7 & 255u); if (aot_gpr_7 != 0u) { aot_gpr_6 = (aot_gpr_6 + static_cast(12)); goto L_089E9928; } goto L_089E9918; L_089E9918: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_6 = (aot_gpr_5 + static_cast(8)); { const bool branch_taken = 0u == 0u; aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(0))); if (branch_taken) { goto L_089E992C; } goto L_089E9928; } L_089E9928: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(0))); goto L_089E992C; L_089E992C: if (aot_gpr_6 != 0u) { aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(16))); goto L_089E9908; } goto L_089E9934; L_089E9934: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(104))); if (aot_gpr_5 == aot_gpr_6) { aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(104))); goto L_089E995C; } goto L_089E9940; L_089E9940: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(605), static_cast(0u)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(16))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_6 ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); if (aot_gpr_4 == 0u) { aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(600), aot_gpr_5); goto L_089E9960; } goto L_089E9958; L_089E9958: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(104))); goto L_089E995C; L_089E995C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(600), aot_gpr_5); goto L_089E9960; L_089E9960: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(600))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(596), aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(104))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(616), aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(616))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(592), aot_gpr_4); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(596))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(592))); aot_gpr_4 = (aot_gpr_5 ^ aot_gpr_4); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); if (aot_gpr_4 == 0u) { aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(20))); goto L_089E999C; } goto L_089E9994; L_089E9994: { const bool branch_taken = 0u == 0u; aot_gpr_5 = (0u | 0u); if (branch_taken) { goto L_089E999C; } goto L_089E999C; } L_089E999C: { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_089E99B4; } goto L_089E99A4; } L_089E99A4: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(8))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(71), static_cast(aot_gpr_4)); ctx.gpr[1] = (static_cast(static_cast(aot_gpr_4) >> 8u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(72), static_cast(ctx.gpr[1])); goto L_089E99B4; L_089E99B4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089E99C4u); aot_gpr_6 = (0u + static_cast(-1)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0182. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 310u, 0x089E99C4u, 0x08ADCA34u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); #else recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E99C4u) goto L_089E99C4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E99C4: aot_gpr_4 = (0u | 0u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(24), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(632), static_cast(aot_gpr_4)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(25), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(26), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(27), static_cast(0u)); aot_gpr_4 = (0u | 160u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(28), static_cast(aot_gpr_4)); aot_gpr_5 = (0u | 255u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(29), static_cast(aot_gpr_4)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(30), static_cast(aot_gpr_4)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(31), static_cast(aot_gpr_5)); aot_gpr_31 = (0x089E99FCu); 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 == 0x089E99FCu) goto L_089E99FC; AOT_REGCACHE_SYNC_OUT(); return; L_089E99FC: { const bool branch_taken = ctx.gpr[22] != ctx.gpr[2]; ctx.gpr[16] = (0u | 1u); if (branch_taken) { goto L_089E9A48; } goto L_089E9A04; } L_089E9A04: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 << 8u); aot_gpr_6 = (aot_gpr_4 + aot_gpr_4); aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); aot_gpr_4 = (aot_gpr_4 << 5u); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_gpr_5 = (2238u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(-6992)); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(316))); aot_gpr_5 = (aot_gpr_5 + static_cast(5)); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(316), aot_gpr_5); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(320))); aot_gpr_5 = (16608u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(320), std::bit_cast(aot_fpr_12)); goto L_089E9A48; L_089E9A48: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_6 = (aot_gpr_29 + static_cast(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(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); aot_fpr_12 = aot_fpr_12 + ctx.fpr[30]; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), std::bit_cast(aot_fpr_12)); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5060))); aot_gpr_4 = (49408u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_4); aot_gpr_4 = (18154u << 16u); aot_gpr_4 = (aot_gpr_4 | 24576u); ctx.fpr[17] = std::bit_cast(aot_gpr_4); aot_gpr_4 = (0u | 1u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_7 = (0u | 200u); ctx.gpr[8] = (0u | 0u); ctx.gpr[9] = (0u | 0u); ctx.gpr[10] = (0u | 0u); ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x089E9AA4u); ctx.gpr[11] = (0u | 1u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0164. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 314u, 0x089E9AA4u, 0x08A961ECu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); #else recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9AA4u) goto L_089E9AA4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E9AA4: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(52))); goto L_089E9AAC; L_089E9AAC: { const bool branch_taken = aot_gpr_5 == 0u; aot_gpr_5 = (static_cast(aot_gpr_4) < 48 ? 1u : 0u); if (branch_taken) { goto L_089E9ACC; } goto L_089E9AB4; } L_089E9AB4: { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_089E9ACC; } goto L_089E9ABC; } L_089E9ABC: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); ctx.gpr[20] = (ctx.gpr[20] + static_cast(80)); { const bool branch_taken = 0u == 0u; aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(52))); if (branch_taken) { goto L_089E9AAC; } goto L_089E9ACC; } L_089E9ACC: aot_gpr_5 = (0u | 48u); { const bool branch_taken = aot_gpr_4 == aot_gpr_5; if (branch_taken) { goto L_089E9B0C; } goto L_089E9AD8; } L_089E9AD8: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(0), ctx.gpr[23]); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[17] = (ctx.gpr[20] + static_cast(16)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(32), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(68), std::bit_cast(ctx.fpr[28])); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(40), ctx.gpr[22]); { const bool branch_taken = ctx.gpr[22] != 0u; if (branch_taken) { goto L_089E9B14; } goto L_089E9B04; } L_089E9B04: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089E9B24; } goto L_089E9B0C; } L_089E9B0C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); if (branch_taken) { goto L_089EAA4C; } goto L_089E9B14; } L_089E9B14: { const bool branch_taken = ctx.gpr[22] == 0u; aot_gpr_5 = (ctx.gpr[20] + static_cast(40)); if (branch_taken) { goto L_089E9B24; } goto L_089E9B1C; } L_089E9B1C: aot_gpr_31 = (0x089E9B24u); aot_gpr_4 = (ctx.gpr[22] | 0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08A92F78, 163u, 419u, 0x08A92F78u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0163_entry, 163u, 419u, 0x08A92F78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9B24u) goto L_089E9B24; AOT_REGCACHE_SYNC_OUT(); return; L_089E9B24: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(44), ctx.gpr[19]); { const bool branch_taken = ctx.gpr[19] == 0u; if (branch_taken) { goto L_089E9B40; } goto L_089E9B30; } L_089E9B30: { const bool branch_taken = ctx.gpr[19] == 0u; aot_gpr_5 = (ctx.gpr[20] + static_cast(44)); if (branch_taken) { goto L_089E9B40; } goto L_089E9B38; } L_089E9B38: aot_gpr_31 = (0x089E9B40u); aot_gpr_4 = (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_08A92F78, 163u, 419u, 0x08A92F78u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0163_entry, 163u, 419u, 0x08A92F78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9B40u) goto L_089E9B40; AOT_REGCACHE_SYNC_OUT(); return; L_089E9B40: aot_mem.aot_direct_store8(ctx.gpr[20] + static_cast(52), static_cast(ctx.gpr[16])); aot_mem.aot_direct_store8(ctx.gpr[20] + static_cast(53), static_cast(ctx.gpr[16])); aot_mem.aot_direct_store8(ctx.gpr[20] + static_cast(54), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[20] + static_cast(55), static_cast(ctx.gpr[30])); { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { goto L_089E9B68; } goto L_089E9B58; } L_089E9B58: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (ctx.gpr[18] + aot_gpr_4); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(60), aot_gpr_4); if (branch_taken) { goto L_089E9B6C; } goto L_089E9B68; } L_089E9B68: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(60), 0u); goto L_089E9B6C; L_089E9B6C: aot_gpr_4 = (ctx.gpr[23] < static_cast(12) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; aot_gpr_4 = (16128u << 16u); if (branch_taken) { goto L_089EA89C; } goto L_089E9B78; } L_089E9B78: ctx.gpr[23] = (ctx.gpr[23] << 2u); ctx.gpr[1] = (2232u << 16u); ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[23]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-1896))); ctx.gpr[23] = (static_cast(static_cast(ctx.gpr[23]) >> 2u)); jump_target = ctx.gpr[1]; aot_fpr_20 = std::bit_cast(aot_gpr_4); // 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_089E9B94: aot_gpr_4 = (16656u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(32), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (17302u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(64), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (ctx.gpr[18] + aot_gpr_4); aot_gpr_4 = (aot_gpr_4 + static_cast(750)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); ctx.gpr[16] = (2236u << 16u); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; ctx.gpr[16] = (ctx.gpr[16] + static_cast(32304)); if (branch_taken) { goto L_089E9BD8; } goto L_089E9BCC; } L_089E9BCC: aot_gpr_4 = (20352u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; goto L_089E9BD8; L_089E9BD8: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(48), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(36), std::bit_cast(aot_fpr_20)); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[18] = (aot_gpr_29 + static_cast(96)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } aot_gpr_4 = (16448u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_4); aot_fpr_14 = aot_fpr_14 + ctx.fpr[15]; aot_gpr_31 = (0x089E9C0Cu); aot_gpr_4 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 335u, 0x089E9C0Cu, 0x08893460u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); #else recomp_unit_0035_entry(rt, ctx, 519u, 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, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9C0Cu) goto L_089E9C0C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E9C0C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), std::bit_cast(ctx.fpr[0])); { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_5 = (aot_gpr_29 + static_cast(80)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (0u | 13u); aot_gpr_31 = (0x089E9C28u); aot_gpr_6 = (0u | 250u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0094. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 336u, 0x089E9C28u, 0x0897FF40u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); #else recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 981u, 0x0897FF40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9C28u) goto L_089E9C28; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E9C28: aot_gpr_4 = (ctx.gpr[16] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(112)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(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>()); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (16928u << 16u); aot_fpr_13 = std::bit_cast(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_089E9D2C; } goto L_089E9C6C; } L_089E9C6C: aot_gpr_31 = (0x089E9C74u); 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089E9C74u) goto L_089E9C74; AOT_REGCACHE_SYNC_OUT(); return; L_089E9C74: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-10724))); aot_gpr_31 = (0x089E9C88u); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-10728))); 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, ctx.gpr[2], ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089E9C88u) goto L_089E9C88; AOT_REGCACHE_SYNC_OUT(); return; L_089E9C88: ctx.gpr[1] = (ctx.gpr[3] << 1u); aot_gpr_5 = (static_cast(static_cast(ctx.gpr[3]) >> 31u)); aot_gpr_4 = (ctx.gpr[2] >> 31u); aot_gpr_4 = (ctx.gpr[1] | aot_gpr_4); aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-10716))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-10720))); ctx.gpr[8] = (aot_gpr_4 + aot_gpr_6); ctx.gpr[9] = (ctx.gpr[8] < aot_gpr_6 ? 1u : 0u); aot_gpr_4 = (ctx.gpr[9] + aot_gpr_5); aot_gpr_5 = (aot_gpr_4 + aot_gpr_7); aot_gpr_4 = (ctx.gpr[8] | 0u); aot_gpr_4 = (aot_gpr_4 | 0u); aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); aot_gpr_5 = (0u | 96u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(144), static_cast(aot_gpr_5)); aot_gpr_6 = (0u | 255u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(145), static_cast(aot_gpr_5)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(146), static_cast(aot_gpr_5)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(147), static_cast(aot_gpr_6)); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(145))); aot_gpr_5 = (aot_gpr_5 + aot_gpr_4); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(145), static_cast(aot_gpr_5)); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(146))); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(146), static_cast(aot_gpr_4)); { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[28]), std::bit_cast(ctx.fpr[28]), std::bit_cast(ctx.fpr[28])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(128), aot_run_words); } aot_gpr_6 = (aot_gpr_29 + static_cast(128)); aot_gpr_4 = (16528u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.gpr[8] = (aot_gpr_29 + static_cast(144)); aot_gpr_4 = (0u | 43u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_7 = (0u | 0u); ctx.gpr[9] = (0u | 0u); ctx.gpr[10] = (0u | 0u); ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089E9D2Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 340u, 0x089E9D2Cu, 0x0890043Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); #else recomp_unit_0063_entry(rt, ctx, 90u, 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, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9D2Cu) goto L_089E9D2C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E9D2C: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EA8A8; } goto L_089E9D34; } L_089E9D34: aot_gpr_4 = (16576u << 16u); ctx.fpr[22] = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(32), std::bit_cast(ctx.fpr[22])); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(64), std::bit_cast(ctx.fpr[28])); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (ctx.gpr[18] + aot_gpr_4); aot_gpr_4 = (aot_gpr_4 + static_cast(3000)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; ctx.gpr[18] = (aot_gpr_29 + static_cast(160)); if (branch_taken) { goto L_089E9D6C; } goto L_089E9D60; } L_089E9D60: aot_gpr_4 = (20352u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; goto L_089E9D6C; L_089E9D6C: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(48), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(36), std::bit_cast(aot_fpr_20)); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(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[18] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(160), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } aot_gpr_4 = (16384u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_4); aot_fpr_14 = aot_fpr_14 + ctx.fpr[15]; aot_gpr_31 = (0x089E9D9Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 344u, 0x089E9D9Cu, 0x08893460u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); #else recomp_unit_0035_entry(rt, ctx, 519u, 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, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9D9Cu) goto L_089E9D9C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E9D9C: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E9DB0; } goto L_089E9DAC; } L_089E9DAC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(168), std::bit_cast(aot_fpr_20)); goto L_089E9DB0; L_089E9DB0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(160), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } aot_gpr_31 = (0x089E9DC4u); aot_gpr_4 = (aot_gpr_29 + static_cast(20)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0189. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 347u, 0x089E9DC4u, 0x08AF8918u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); #else recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 138u, 0x08AF8918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9DC4u) goto L_089E9DC4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E9DC4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_089E9E0C; } goto L_089E9DCC; } L_089E9DCC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(168))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); 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_089E9E0C; } goto L_089E9DE4; } L_089E9DE4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(168))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_fpr_13 = aot_fpr_13 - ctx.fpr[22]; 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_089E9E0C; } goto L_089E9E00; } L_089E9E00: aot_gpr_4 = (0u | 1u); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(632), static_cast(aot_gpr_4)); if (branch_taken) { goto L_089E9E44; } goto L_089E9E0C; } L_089E9E0C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089E9E44; } goto L_089E9E18; } L_089E9E18: aot_gpr_4 = (2238u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(14864)); { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_5 = (aot_gpr_29 + static_cast(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(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_6 = (16179u << 16u); aot_gpr_6 = (aot_gpr_6 | 13107u); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089E9E44u); aot_gpr_7 = (0u | 1u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0114. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 353u, 0x089E9E44u, 0x089CFED4u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 710u, aot_mem); #else recomp_unit_0114_entry(rt, ctx, 710u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 710u, 0x089CFED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9E44u) goto L_089E9E44; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E9E44: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EA8A8; } goto L_089E9E4C; } L_089E9E4C: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(32), std::bit_cast(ctx.fpr[24])); aot_gpr_4 = (17302u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(64), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (ctx.gpr[18] + aot_gpr_4); aot_gpr_4 = (aot_gpr_4 + static_cast(750)); ctx.fpr[24] = std::bit_cast(aot_gpr_4); ctx.fpr[24] = static_cast(static_cast(std::bit_cast(ctx.fpr[24]))); ctx.gpr[16] = (2236u << 16u); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; ctx.gpr[16] = (ctx.gpr[16] + static_cast(32304)); if (branch_taken) { goto L_089E9E88; } goto L_089E9E7C; } L_089E9E7C: aot_gpr_4 = (20352u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.fpr[24] = ctx.fpr[24] + aot_fpr_12; goto L_089E9E88; L_089E9E88: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(48), std::bit_cast(ctx.fpr[24])); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(36), std::bit_cast(aot_fpr_20)); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_5 = (aot_gpr_29 + static_cast(192)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (0u | 13u); aot_gpr_31 = (0x089E9EA8u); aot_gpr_6 = (0u | 250u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0094. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 357u, 0x089E9EA8u, 0x0897FF40u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); #else recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 981u, 0x0897FF40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9EA8u) goto L_089E9EA8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E9EA8: aot_gpr_4 = (ctx.gpr[16] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>(); aot_gpr_4 = (aot_gpr_29 + static_cast(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(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(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>()); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (17224u << 16u); aot_fpr_13 = std::bit_cast(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_089E9F28; } goto L_089E9EEC; } L_089E9EEC: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[28]), std::bit_cast(ctx.fpr[28]), std::bit_cast(ctx.fpr[28])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(224), aot_run_words); } aot_gpr_6 = (aot_gpr_29 + static_cast(224)); aot_gpr_4 = (16560u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.gpr[8] = (aot_gpr_29 + static_cast(28)); aot_gpr_4 = (0u | 43u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_7 = (0u | 0u); ctx.gpr[9] = (0u | 0u); ctx.gpr[10] = (0u | 0u); ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089E9F28u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 359u, 0x089E9F28u, 0x0890043Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); #else recomp_unit_0063_entry(rt, ctx, 90u, 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, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9F28u) goto L_089E9F28; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089E9F28: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EA8A8; } goto L_089E9F30; } L_089E9F30: aot_gpr_4 = (16656u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(32), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (17302u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(64), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (ctx.gpr[18] + aot_gpr_4); aot_gpr_4 = (aot_gpr_4 + static_cast(4250)); aot_fpr_12 = std::bit_cast(aot_gpr_4); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); if (branch_taken) { goto L_089E9F6C; } goto L_089E9F60; } L_089E9F60: aot_gpr_4 = (20352u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; goto L_089E9F6C; L_089E9F6C: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(48), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(36), std::bit_cast(aot_fpr_20)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(56), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(44))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EA038; } goto L_089E9F90; } L_089E9F90: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(44))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 4u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; aot_gpr_5 = (0u | 2u); if (branch_taken) { goto L_089E9FD4; } goto L_089E9FB0; } L_089E9FB0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(44))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(852))); aot_gpr_7 = (0u | 1u); { const bool branch_taken = aot_gpr_6 == aot_gpr_7; if (branch_taken) { goto L_089E9FD0; } goto L_089E9FC4; } L_089E9FC4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(852))); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089E9FD4; } goto L_089E9FD0; } L_089E9FD0: aot_mem.aot_direct_store8(ctx.gpr[20] + static_cast(54), static_cast(ctx.gpr[16])); goto L_089E9FD4; L_089E9FD4: { const bool branch_taken = ctx.gpr[22] == 0u; if (branch_taken) { goto L_089EA018; } goto L_089E9FDC; } L_089E9FDC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); aot_gpr_4 = (aot_gpr_4 ^ 6u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EA018; } goto L_089E9FF8; } L_089E9FF8: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(44))); aot_gpr_4 = (0u | 13u); aot_gpr_5 = (0u | 2u); aot_gpr_7 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089EA010u); ctx.gpr[8] = (0u | 1000u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0095. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 370u, 0x089EA010u, 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 == 0x089EA010u) goto L_089EA010; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EA010: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EA050; } goto L_089EA018; } L_089EA018: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(44))); aot_gpr_4 = (0u | 13u); aot_gpr_5 = (0u | 2u); aot_gpr_7 = (0u | 0u); aot_gpr_31 = (0x089EA030u); ctx.gpr[8] = (0u | 1000u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0095. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 372u, 0x089EA030u, 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 == 0x089EA030u) goto L_089EA030; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EA030: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EA050; } goto L_089EA038; } L_089EA038: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_5 = (aot_gpr_29 + static_cast(240)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (0u | 13u); aot_gpr_31 = (0x089EA050u); aot_gpr_6 = (0u | 1000u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0094. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 374u, 0x089EA050u, 0x0897FF40u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); #else recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 981u, 0x0897FF40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA050u) goto L_089EA050; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EA050: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(44))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EA29C; } goto L_089EA05C; } L_089EA05C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(54))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089EA29C; } goto L_089EA068; } L_089EA068: aot_gpr_31 = (0x089EA070u); 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EA070u) goto L_089EA070; AOT_REGCACHE_SYNC_OUT(); return; L_089EA070: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 1u); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); aot_gpr_5 = (0u | 0u); aot_gpr_6 = (static_cast(aot_gpr_5) < static_cast(aot_gpr_4) ? 1u : 0u); ctx.gpr[18] = (aot_gpr_29 + static_cast(256)); { const bool branch_taken = aot_gpr_6 == 0u; ctx.gpr[17] = (aot_gpr_29 + static_cast(272)); if (branch_taken) { goto L_089EA0A0; } goto L_089EA090; } L_089EA090: aot_gpr_5 = (aot_gpr_5 + static_cast(1)); goto L_089EA094; L_089EA094: aot_gpr_6 = (static_cast(aot_gpr_5) < static_cast(aot_gpr_4) ? 1u : 0u); { const bool branch_taken = aot_gpr_6 != 0u; aot_gpr_5 = (aot_gpr_5 + static_cast(1)); if (branch_taken) { goto L_089EA094; } goto L_089EA0A0; } L_089EA0A0: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[28]), std::bit_cast(ctx.fpr[28]), std::bit_cast(ctx.fpr[28])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(256), aot_run_words); } { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[28]), std::bit_cast(ctx.fpr[28]), std::bit_cast(ctx.fpr[28])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(272), aot_run_words); } ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(44))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(852))); aot_gpr_5 = (0u | 8u); { const bool branch_taken = aot_gpr_4 == aot_gpr_5; if (branch_taken) { goto L_089EA218; } goto L_089EA0CC; } L_089EA0CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(852))); aot_gpr_5 = (0u | 6u); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089EA104; } goto L_089EA0DC; } L_089EA0DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(248)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0)))))); aot_gpr_4 = (ctx.gpr[16] + aot_gpr_4); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); aot_gpr_5 = (0u | 3u); jump_target = aot_gpr_7; aot_gpr_31 = (0x089EA0FCu); aot_gpr_6 = (ctx.gpr[18] | 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 == 0x089EA0FCu) goto L_089EA0FC; AOT_REGCACHE_SYNC_OUT(); return; L_089EA0FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EA218; } goto L_089EA104; } L_089EA104: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(256)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0)))))); aot_gpr_4 = (ctx.gpr[16] + aot_gpr_4); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); jump_target = aot_gpr_6; aot_gpr_31 = (0x089EA120u); aot_gpr_5 = (0u | 13u); 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 == 0x089EA120u) goto L_089EA120; AOT_REGCACHE_SYNC_OUT(); return; L_089EA120: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_089EA1D4; } goto L_089EA128; } L_089EA128: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(256)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0)))))); aot_gpr_4 = (ctx.gpr[16] + aot_gpr_4); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); jump_target = aot_gpr_6; aot_gpr_31 = (0x089EA144u); aot_gpr_5 = (0u | 7u); 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 == 0x089EA144u) goto L_089EA144; AOT_REGCACHE_SYNC_OUT(); return; L_089EA144: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_089EA1D4; } goto L_089EA14C; } L_089EA14C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(248)); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(0)))))); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_4 = (ctx.gpr[16] + aot_gpr_5); aot_gpr_5 = (0u | 13u); jump_target = aot_gpr_7; aot_gpr_31 = (0x089EA16Cu); aot_gpr_6 = (ctx.gpr[18] | 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 == 0x089EA16Cu) goto L_089EA16C; AOT_REGCACHE_SYNC_OUT(); return; L_089EA16C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(248)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0)))))); aot_gpr_4 = (ctx.gpr[16] + aot_gpr_4); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); aot_gpr_5 = (0u | 7u); jump_target = aot_gpr_7; aot_gpr_31 = (0x089EA18Cu); aot_gpr_6 = (ctx.gpr[17] | 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 == 0x089EA18Cu) goto L_089EA18C; AOT_REGCACHE_SYNC_OUT(); return; L_089EA18C: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(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(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(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_5 = (16384u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_5); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_5); ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 16u>(); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(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(288)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(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[18] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EA218; } goto L_089EA1D4; } L_089EA1D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(256)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0)))))); aot_gpr_4 = (ctx.gpr[16] + aot_gpr_4); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); jump_target = aot_gpr_6; aot_gpr_31 = (0x089EA1F0u); aot_gpr_5 = (0u | 19u); 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 == 0x089EA1F0u) goto L_089EA1F0; AOT_REGCACHE_SYNC_OUT(); return; L_089EA1F0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_089EA218; } goto L_089EA1F8; } L_089EA1F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(248)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0)))))); aot_gpr_4 = (ctx.gpr[16] + aot_gpr_4); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); aot_gpr_5 = (0u | 19u); jump_target = aot_gpr_7; aot_gpr_31 = (0x089EA218u); aot_gpr_6 = (ctx.gpr[18] | 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 == 0x089EA218u) goto L_089EA218; AOT_REGCACHE_SYNC_OUT(); return; L_089EA218: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(256))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(ctx.fpr[28])) && aot_fpr_12 == ctx.fpr[28])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_089EA29C; } goto L_089EA22C; } L_089EA22C: aot_gpr_31 = (0x089EA234u); 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EA234u) goto L_089EA234; AOT_REGCACHE_SYNC_OUT(); return; L_089EA234: aot_gpr_4 = (ctx.gpr[2] & 65535u); ctx.gpr[17] = (aot_gpr_4 & 2u); ctx.gpr[17] = (ctx.gpr[17] + static_cast(2)); ctx.gpr[16] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[16]) < static_cast(ctx.gpr[17]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; aot_gpr_4 = (16480u << 16u); if (branch_taken) { goto L_089EA29C; } goto L_089EA250; } L_089EA250: ctx.fpr[22] = std::bit_cast(aot_gpr_4); aot_gpr_4 = (16025u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); ctx.fpr[24] = std::bit_cast(aot_gpr_4); goto L_089EA260; L_089EA260: aot_gpr_31 = (0x089EA268u); 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EA268u) goto L_089EA268; AOT_REGCACHE_SYNC_OUT(); return; L_089EA268: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 7u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); { 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(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = aot_fpr_12 + ctx.fpr[22]; aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089EA28Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0062. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 400u, 0x089EA28Cu, 0x088FF204u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 733u, aot_mem); #else recomp_unit_0062_entry(rt, ctx, 733u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 733u, 0x088FF204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA28Cu) goto L_089EA28C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EA28C: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[16]) < static_cast(ctx.gpr[17]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089EA260; } goto L_089EA29C; } L_089EA29C: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EA8A8; } goto L_089EA2A4; } L_089EA2A4: aot_gpr_4 = (0u | 7u); aot_gpr_5 = (16448u << 16u); { const bool branch_taken = ctx.gpr[23] != aot_gpr_4; ctx.fpr[26] = std::bit_cast(aot_gpr_5); if (branch_taken) { goto L_089EA2D0; } goto L_089EA2B4; } L_089EA2B4: aot_gpr_4 = (16704u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(32), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (17402u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(64), std::bit_cast(aot_fpr_12)); if (branch_taken) { goto L_089EA2E8; } goto L_089EA2D0; } L_089EA2D0: aot_gpr_4 = (16576u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(32), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (17302u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(64), std::bit_cast(aot_fpr_12)); goto L_089EA2E8; L_089EA2E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (ctx.gpr[18] + aot_gpr_4); aot_gpr_4 = (aot_gpr_4 + static_cast(750)); aot_fpr_12 = std::bit_cast(aot_gpr_4); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); if (branch_taken) { goto L_089EA30C; } goto L_089EA300; } L_089EA300: aot_gpr_4 = (20352u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; goto L_089EA30C; L_089EA30C: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(48), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(36), std::bit_cast(aot_fpr_20)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(56), std::bit_cast(aot_fpr_12)); ctx.gpr[18] = (0u | 0u); ctx.gpr[16] = (aot_gpr_29 + static_cast(352)); aot_gpr_4 = (15692u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_fpr_20 = std::bit_cast(aot_gpr_4); ctx.gpr[17] = (aot_gpr_29 + static_cast(336)); aot_gpr_4 = (16416u << 16u); ctx.fpr[24] = std::bit_cast(aot_gpr_4); ctx.gpr[19] = (aot_gpr_29 + static_cast(28)); aot_gpr_4 = (16307u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); ctx.fpr[22] = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(640), std::bit_cast(ctx.fpr[22])); goto L_089EA358; L_089EA358: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(636), std::bit_cast(ctx.fpr[26])); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(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[16] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089EA36Cu); 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EA36Cu) goto L_089EA36C; AOT_REGCACHE_SYNC_OUT(); return; L_089EA36C: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_4 = (aot_gpr_4 + static_cast(-128)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_31 = (0x089EA388u); { 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)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EA388u) goto L_089EA388; AOT_REGCACHE_SYNC_OUT(); return; L_089EA388: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_4 = (aot_gpr_4 + static_cast(-128)); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_31 = (0x089EA3A4u); { const float fs = aot_fpr_13; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EA3A4u) goto L_089EA3A4; AOT_REGCACHE_SYNC_OUT(); return; L_089EA3A4: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_4 = (aot_gpr_4 + static_cast(-128)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); { 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(0x7FC00000u); else aot_fpr_12 = fs * ft; } { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[26]), std::bit_cast(ctx.fpr[22]), std::bit_cast(aot_fpr_12)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(336), aot_run_words); } aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089EA3D4u); aot_gpr_5 = (ctx.gpr[17] | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08A931B8, 163u, 0x08A931B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA3D4u) goto L_089EA3D4; AOT_REGCACHE_SYNC_OUT(); return; L_089EA3D4: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[28]), std::bit_cast(ctx.fpr[28]), std::bit_cast(ctx.fpr[28])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(336), aot_run_words); } aot_gpr_4 = (0u | 42u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_7 = (0u | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[9] = (0u | 0u); ctx.gpr[10] = (0u | 0u); ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089EA40Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 413u, 0x089EA40Cu, 0x0890043Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); #else recomp_unit_0063_entry(rt, ctx, 90u, 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, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA40Cu) goto L_089EA40C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EA40C: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(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[16] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089EA41Cu); 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EA41Cu) goto L_089EA41C; AOT_REGCACHE_SYNC_OUT(); return; L_089EA41C: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_4 = (aot_gpr_4 + static_cast(-128)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_31 = (0x089EA438u); { 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)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EA438u) goto L_089EA438; AOT_REGCACHE_SYNC_OUT(); return; L_089EA438: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_4 = (aot_gpr_4 + static_cast(-128)); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_31 = (0x089EA454u); { const float fs = aot_fpr_13; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EA454u) goto L_089EA454; AOT_REGCACHE_SYNC_OUT(); return; L_089EA454: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_4 = (aot_gpr_4 + static_cast(-128)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); { 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(0x7FC00000u); else aot_fpr_12 = fs * ft; } { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[26]), std::bit_cast(aot_fpr_12)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(336), aot_run_words); } aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089EA484u); aot_gpr_5 = (ctx.gpr[17] | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08A931B8, 163u, 0x08A931B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA484u) goto L_089EA484; AOT_REGCACHE_SYNC_OUT(); return; L_089EA484: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[28]), std::bit_cast(ctx.fpr[28]), std::bit_cast(ctx.fpr[28])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(336), aot_run_words); } aot_gpr_4 = (0u | 43u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_7 = (0u | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[9] = (0u | 0u); ctx.gpr[10] = (0u | 0u); ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089EA4BCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 418u, 0x089EA4BCu, 0x0890043Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); #else recomp_unit_0063_entry(rt, ctx, 90u, 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, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA4BCu) goto L_089EA4BC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EA4BC: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(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[16] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089EA4CCu); 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EA4CCu) goto L_089EA4CC; AOT_REGCACHE_SYNC_OUT(); return; L_089EA4CC: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_4 = (aot_gpr_4 + static_cast(-128)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_31 = (0x089EA4E8u); { 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)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EA4E8u) goto L_089EA4E8; AOT_REGCACHE_SYNC_OUT(); return; L_089EA4E8: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_4 = (aot_gpr_4 + static_cast(-128)); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_31 = (0x089EA504u); { const float fs = aot_fpr_13; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EA504u) goto L_089EA504; AOT_REGCACHE_SYNC_OUT(); return; L_089EA504: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_4 = (aot_gpr_4 + static_cast(-128)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); { 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(0x7FC00000u); else aot_fpr_12 = fs * ft; } { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[26]), std::bit_cast(aot_fpr_12)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(336), aot_run_words); } aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089EA534u); aot_gpr_5 = (ctx.gpr[17] | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08A931B8, 163u, 0x08A931B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA534u) goto L_089EA534; AOT_REGCACHE_SYNC_OUT(); return; L_089EA534: aot_gpr_4 = (ctx.gpr[16] | 0u); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(640))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(636))); aot_gpr_31 = (0x089EA54Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0062. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 423u, 0x089EA54Cu, 0x088FF204u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 733u, aot_mem); #else recomp_unit_0062_entry(rt, ctx, 733u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 733u, 0x088FF204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA54Cu) goto L_089EA54C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EA54C: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < 10 ? 1u : 0u); if (aot_gpr_4 != 0u) { aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(640), std::bit_cast(ctx.fpr[22])); goto L_089EA358; } goto L_089EA55C; L_089EA55C: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_5 = (aot_gpr_29 + static_cast(320)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (0u | 13u); aot_gpr_31 = (0x089EA574u); aot_gpr_6 = (0u | 1000u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0094. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 425u, 0x089EA574u, 0x0897FF40u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); #else recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 981u, 0x0897FF40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA574u) goto L_089EA574; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EA574: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EA8A8; } goto L_089EA57C; } L_089EA57C: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(32), std::bit_cast(ctx.fpr[24])); aot_gpr_4 = (17174u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(64), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (ctx.gpr[18] + aot_gpr_4); aot_gpr_4 = (aot_gpr_4 + static_cast(750)); ctx.fpr[24] = std::bit_cast(aot_gpr_4); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; ctx.fpr[24] = static_cast(static_cast(std::bit_cast(ctx.fpr[24]))); if (branch_taken) { goto L_089EA5B0; } goto L_089EA5A4; } L_089EA5A4: aot_gpr_4 = (20352u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.fpr[24] = ctx.fpr[24] + aot_fpr_12; goto L_089EA5B0; L_089EA5B0: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(48), std::bit_cast(ctx.fpr[24])); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(36), std::bit_cast(aot_fpr_20)); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(384)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(384), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } aot_gpr_4 = (16512u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_4); aot_fpr_14 = aot_fpr_14 + ctx.fpr[15]; aot_gpr_31 = (0x089EA5E4u); aot_gpr_4 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 429u, 0x089EA5E4u, 0x08893460u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); #else recomp_unit_0035_entry(rt, ctx, 519u, 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, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA5E4u) goto L_089EA5E4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EA5E4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(392), std::bit_cast(ctx.fpr[0])); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_5 = (aot_gpr_29 + static_cast(368)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (0u | 13u); aot_gpr_31 = (0x089EA600u); aot_gpr_6 = (0u | 250u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0094. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 430u, 0x089EA600u, 0x0897FF40u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); #else recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 981u, 0x0897FF40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA600u) goto L_089EA600; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EA600: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EA8A8; } goto L_089EA608; } L_089EA608: aot_gpr_4 = (16608u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(32), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (17174u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(64), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (ctx.gpr[18] + aot_gpr_4); aot_gpr_4 = (aot_gpr_4 + static_cast(750)); aot_fpr_12 = std::bit_cast(aot_gpr_4); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); if (branch_taken) { goto L_089EA644; } goto L_089EA638; } L_089EA638: aot_gpr_4 = (20352u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; goto L_089EA644; L_089EA644: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(48), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(36), std::bit_cast(aot_fpr_20)); ctx.gpr[17] = (0u | 0u); ctx.gpr[16] = (aot_gpr_29 + static_cast(448)); aot_gpr_4 = (15523u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (15651u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); ctx.fpr[22] = std::bit_cast(aot_gpr_4); ctx.gpr[18] = (aot_gpr_29 + static_cast(432)); ctx.gpr[19] = (aot_gpr_29 + static_cast(24)); goto L_089EA674; L_089EA674: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(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[16] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089EA684u); 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EA684u) goto L_089EA684; AOT_REGCACHE_SYNC_OUT(); return; L_089EA684: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_4 = (aot_gpr_4 + static_cast(-128)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_31 = (0x089EA6A0u); { 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)) ctx.fpr[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EA6A0u) goto L_089EA6A0; AOT_REGCACHE_SYNC_OUT(); return; L_089EA6A0: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_4 = (aot_gpr_4 + static_cast(-128)); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_31 = (0x089EA6BCu); { const float fs = aot_fpr_13; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EA6BCu) goto L_089EA6BC; AOT_REGCACHE_SYNC_OUT(); return; L_089EA6BC: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_4 = (aot_gpr_4 + static_cast(-128)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[24]), std::bit_cast(ctx.fpr[26]), std::bit_cast(aot_fpr_12)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(432), aot_run_words); } aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089EA6ECu); aot_gpr_5 = (ctx.gpr[18] | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08A931B8, 163u, 0x08A931B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA6ECu) goto L_089EA6EC; AOT_REGCACHE_SYNC_OUT(); return; L_089EA6EC: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[28]), std::bit_cast(ctx.fpr[28]), std::bit_cast(ctx.fpr[28])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(432), aot_run_words); } aot_gpr_4 = (0u | 40u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_7 = (0u | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[9] = (0u | 0u); ctx.gpr[10] = (0u | 0u); ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089EA724u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 439u, 0x089EA724u, 0x0890043Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); #else recomp_unit_0063_entry(rt, ctx, 90u, 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, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA724u) goto L_089EA724; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EA724: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 6 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089EA674; } goto L_089EA734; } L_089EA734: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(416)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(416), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } aot_gpr_4 = (16512u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_4); aot_fpr_14 = aot_fpr_14 + ctx.fpr[15]; aot_gpr_31 = (0x089EA760u); aot_gpr_4 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 441u, 0x089EA760u, 0x08893460u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); #else recomp_unit_0035_entry(rt, ctx, 519u, 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, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA760u) goto L_089EA760; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EA760: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(424), std::bit_cast(ctx.fpr[0])); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_5 = (aot_gpr_29 + static_cast(400)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (0u | 13u); aot_gpr_31 = (0x089EA77Cu); aot_gpr_6 = (0u | 250u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0094. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 442u, 0x089EA77Cu, 0x0897FF40u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); #else recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 981u, 0x0897FF40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA77Cu) goto L_089EA77C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EA77C: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EA8A8; } goto L_089EA784; } L_089EA784: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(32), std::bit_cast(ctx.fpr[24])); aot_gpr_4 = (17174u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(64), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (ctx.gpr[18] + aot_gpr_4); aot_gpr_4 = (aot_gpr_4 + static_cast(750)); ctx.fpr[24] = std::bit_cast(aot_gpr_4); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; ctx.fpr[24] = static_cast(static_cast(std::bit_cast(ctx.fpr[24]))); if (branch_taken) { goto L_089EA7B8; } goto L_089EA7AC; } L_089EA7AC: aot_gpr_4 = (20352u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.fpr[24] = ctx.fpr[24] + aot_fpr_12; goto L_089EA7B8; L_089EA7B8: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(48), std::bit_cast(ctx.fpr[24])); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(36), std::bit_cast(aot_fpr_20)); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(480)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(480), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } aot_gpr_4 = (16512u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_4); aot_fpr_14 = aot_fpr_14 + ctx.fpr[15]; aot_gpr_31 = (0x089EA7ECu); aot_gpr_4 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 446u, 0x089EA7ECu, 0x08893460u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); #else recomp_unit_0035_entry(rt, ctx, 519u, 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, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA7ECu) goto L_089EA7EC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EA7EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(488), std::bit_cast(ctx.fpr[0])); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_5 = (aot_gpr_29 + static_cast(464)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (0u | 13u); aot_gpr_31 = (0x089EA808u); aot_gpr_6 = (0u | 250u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0094. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 447u, 0x089EA808u, 0x0897FF40u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); #else recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 981u, 0x0897FF40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA808u) goto L_089EA808; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EA808: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EA8A8; } goto L_089EA810; } L_089EA810: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(32), std::bit_cast(ctx.fpr[22])); aot_gpr_4 = (16968u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(64), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (ctx.gpr[18] + aot_gpr_4); aot_gpr_4 = (aot_gpr_4 + static_cast(750)); ctx.fpr[22] = std::bit_cast(aot_gpr_4); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; ctx.fpr[22] = static_cast(static_cast(std::bit_cast(ctx.fpr[22]))); if (branch_taken) { goto L_089EA844; } goto L_089EA838; } L_089EA838: aot_gpr_4 = (20352u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.fpr[22] = ctx.fpr[22] + aot_fpr_12; goto L_089EA844; L_089EA844: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(48), std::bit_cast(ctx.fpr[22])); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(36), std::bit_cast(aot_fpr_20)); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(512)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(512), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } aot_gpr_4 = (16512u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_4); aot_fpr_14 = aot_fpr_14 + ctx.fpr[15]; aot_gpr_31 = (0x089EA878u); aot_gpr_4 = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 451u, 0x089EA878u, 0x08893460u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); #else recomp_unit_0035_entry(rt, ctx, 519u, 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, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA878u) goto L_089EA878; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EA878: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(520), std::bit_cast(ctx.fpr[0])); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_5 = (aot_gpr_29 + static_cast(496)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (0u | 13u); aot_gpr_31 = (0x089EA894u); aot_gpr_6 = (0u | 250u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0094. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 452u, 0x089EA894u, 0x0897FF40u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); #else recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 981u, 0x0897FF40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA894u) goto L_089EA894; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EA894: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EA8A8; } goto L_089EA89C; } L_089EA89C: aot_gpr_4 = (2232u << 16u); aot_gpr_31 = (0x089EA8A8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1952)); goto L_089E9290; L_089EA8A8: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(633))); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_089EA8D4; } goto L_089EA8B4; } L_089EA8B4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(32))); aot_gpr_4 = (16384u << 16u); aot_fpr_13 = std::bit_cast(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(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(32), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(64))); { 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(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(64), std::bit_cast(aot_fpr_12)); goto L_089EA8D4; L_089EA8D4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(632))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089EAA44; } goto L_089EA8E0; } L_089EA8E0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(64))); ctx.gpr[16] = (2236u << 16u); ctx.gpr[16] = (ctx.gpr[16] + static_cast(32304)); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(ctx.fpr[28])) && aot_fpr_12 == ctx.fpr[28])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); ctx.gpr[17] = (0u | 1u); if (branch_taken) { goto L_089EA9C8; } goto L_089EA8FC; } L_089EA8FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(60))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089EA9C8; } goto L_089EA908; } L_089EA908: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_6 = (0u | 8u); { const bool branch_taken = aot_gpr_4 == aot_gpr_6; aot_gpr_6 = (0u | 2u); if (branch_taken) { goto L_089EA954; } goto L_089EA918; } L_089EA918: { const bool branch_taken = aot_gpr_4 == aot_gpr_6; if (branch_taken) { goto L_089EA93C; } goto L_089EA920; } L_089EA920: { const bool branch_taken = aot_gpr_4 == ctx.gpr[17]; if (branch_taken) { goto L_089EA948; } goto L_089EA928; } L_089EA928: { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089EA960; } goto L_089EA930; } L_089EA930: aot_gpr_4 = (0u | 12u); { const bool branch_taken = 0u == 0u; aot_gpr_7 = (aot_gpr_5 | 0u); if (branch_taken) { goto L_089EA968; } goto L_089EA93C; } L_089EA93C: aot_gpr_4 = (0u | 32u); { const bool branch_taken = 0u == 0u; aot_gpr_7 = (aot_gpr_5 | 0u); if (branch_taken) { goto L_089EA968; } goto L_089EA948; } L_089EA948: aot_gpr_4 = (0u | 17u); { const bool branch_taken = 0u == 0u; aot_gpr_7 = (aot_gpr_5 | 0u); if (branch_taken) { goto L_089EA968; } goto L_089EA954; } L_089EA954: aot_gpr_4 = (0u | 15u); { const bool branch_taken = 0u == 0u; aot_gpr_7 = (aot_gpr_5 | 0u); if (branch_taken) { goto L_089EA968; } goto L_089EA960; } L_089EA960: aot_gpr_4 = (0u | 44u); aot_gpr_7 = (aot_gpr_5 | 0u); goto L_089EA968; L_089EA968: ctx.gpr[8] = (aot_gpr_4 | 0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(32))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(64))); aot_gpr_4 = (ctx.gpr[23] ^ 2u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_5 = (ctx.gpr[23] ^ 4u); aot_gpr_5 = (aot_gpr_5 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 | aot_gpr_5); aot_gpr_5 = (ctx.gpr[23] ^ 8u); aot_gpr_5 = (aot_gpr_5 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 | aot_gpr_5); aot_gpr_5 = (ctx.gpr[23] ^ 9u); aot_gpr_5 = (aot_gpr_5 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 | aot_gpr_5); aot_gpr_5 = (ctx.gpr[23] ^ 10u); aot_gpr_5 = (aot_gpr_5 < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 | aot_gpr_5); aot_gpr_5 = (ctx.gpr[23] ^ 11u); aot_gpr_5 = (aot_gpr_5 < static_cast(1) ? 1u : 0u); aot_gpr_6 = (aot_gpr_4 | aot_gpr_5); aot_gpr_6 = (aot_gpr_6 & 255u); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089EA9C8u); aot_gpr_5 = (ctx.gpr[22] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 469u, 0x089EA9C8u, 0x08892400u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 340u, aot_mem); #else recomp_unit_0035_entry(rt, ctx, 340u, 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, 340u, 0x08892400u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA9C8u) goto L_089EA9C8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EA9C8: { const bool branch_taken = ctx.gpr[23] != ctx.gpr[17]; if (branch_taken) { goto L_089EA9F8; } goto L_089EA9D0; } L_089EA9D0: aot_gpr_4 = (15948u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_fpr_12 = std::bit_cast(aot_gpr_4); { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[21] + static_cast(0), aot_run_words); aot_fpr_13 = std::bit_cast(aot_run_words[0]); aot_fpr_14 = std::bit_cast(aot_run_words[1]); ctx.fpr[15] = std::bit_cast(aot_run_words[2]); } aot_gpr_31 = (0x089EA9F0u); aot_gpr_4 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0133. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 471u, 0x089EA9F0u, 0x08A1BC64u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 572u, aot_mem); #else recomp_unit_0133_entry(rt, ctx, 572u, 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, 572u, 0x08A1BC64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA9F0u) goto L_089EA9F0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EA9F0: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EAA3C; } goto L_089EA9F8; } L_089EA9F8: aot_gpr_4 = (16076u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_fpr_12 = std::bit_cast(aot_gpr_4); { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[21] + static_cast(0), aot_run_words); aot_fpr_13 = std::bit_cast(aot_run_words[0]); aot_fpr_14 = std::bit_cast(aot_run_words[1]); ctx.fpr[15] = std::bit_cast(aot_run_words[2]); } aot_gpr_31 = (0x089EAA18u); aot_gpr_4 = (ctx.gpr[16] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0133. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 473u, 0x089EAA18u, 0x08A1BC64u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 572u, aot_mem); #else recomp_unit_0133_entry(rt, ctx, 572u, 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, 572u, 0x08A1BC64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EAA18u) goto L_089EAA18; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EAA18: aot_gpr_31 = (0x089EAA20u); aot_gpr_4 = (0u | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_0898B428, 97u, 0x0898B428u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EAA20u) goto L_089EAA20; AOT_REGCACHE_SYNC_OUT(); return; L_089EAA20: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[21] + static_cast(0), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 300u); aot_gpr_31 = (0x089EAA3Cu); aot_gpr_6 = (0u | 128u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0097. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 475u, 0x089EAA3Cu, 0x0898BB44u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 955u, aot_mem); #else recomp_unit_0097_entry(rt, ctx, 955u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 955u, 0x0898BB44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EAA3Cu) goto L_089EAA3C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EAA3C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); if (branch_taken) { goto L_089EAA4C; } goto L_089EAA44; } L_089EAA44: aot_mem.aot_direct_store8(ctx.gpr[20] + static_cast(52), static_cast(0u)); ctx.gpr[2] = (0u | 0u); goto L_089EAA4C; L_089EAA4C: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(644), aot_run_words); aot_fpr_20 = std::bit_cast(aot_run_words[0]); ctx.fpr[22] = std::bit_cast(aot_run_words[1]); ctx.fpr[24] = std::bit_cast(aot_run_words[2]); ctx.fpr[26] = std::bit_cast(aot_run_words[3]); ctx.fpr[28] = std::bit_cast(aot_run_words[4]); ctx.fpr[30] = std::bit_cast(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(720)); // 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_089EAA94: aot_gpr_29 = (aot_gpr_29 + static_cast(-576)); { const std::uint32_t aot_run_words[11]{std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[24]), ctx.gpr[16], 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(528), aot_run_words); } aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(16), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(17), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(18), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(19), static_cast(0u)); ctx.gpr[16] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[16]) < 48 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EBA7C; } goto L_089EAAE4; } L_089EAAE4: aot_gpr_4 = (ctx.gpr[16] << 6u); aot_gpr_5 = (ctx.gpr[16] << 4u); ctx.gpr[17] = (aot_gpr_4 + aot_gpr_5); aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-17072)); ctx.gpr[17] = (ctx.gpr[17] + aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(52))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EBA6C; } goto L_089EAB08; } L_089EAB08: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(60))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EABE0; } goto L_089EAB14; } L_089EAB14: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(60))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_5 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EBA6C; } goto L_089EAB28; } L_089EAB28: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(60), 0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(64))); aot_fpr_13 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(aot_fpr_13)) && aot_fpr_12 == aot_fpr_13)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); if (branch_taken) { goto L_089EBA6C; } goto L_089EAB44; } L_089EAB44: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(32))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(64))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(40))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_7 = (0u | 2u); { const bool branch_taken = aot_gpr_6 == aot_gpr_7; aot_gpr_5 = (0u | 0u); if (branch_taken) { goto L_089EABB0; } goto L_089EAB60; } L_089EAB60: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_7 = (0u | 4u); if (aot_gpr_6 == aot_gpr_7) { aot_gpr_5 = (0u | 1u); goto L_089EABB4; } goto L_089EAB70; L_089EAB70: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_7 = (0u | 8u); if (aot_gpr_6 == aot_gpr_7) { aot_gpr_5 = (0u | 1u); goto L_089EABB4; } goto L_089EAB80; L_089EAB80: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_7 = (0u | 9u); if (aot_gpr_6 == aot_gpr_7) { aot_gpr_5 = (0u | 1u); goto L_089EABB4; } goto L_089EAB90; L_089EAB90: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_7 = (0u | 10u); if (aot_gpr_6 == aot_gpr_7) { aot_gpr_5 = (0u | 1u); goto L_089EABB4; } goto L_089EABA0; L_089EABA0: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_7 = (0u | 11u); if (aot_gpr_6 != aot_gpr_7) { aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); goto L_089EABB8; } goto L_089EABB0; L_089EABB0: aot_gpr_5 = (0u | 1u); goto L_089EABB4; L_089EABB4: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); goto L_089EABB8; L_089EABB8: aot_gpr_6 = (aot_gpr_5 & 255u); aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); aot_gpr_7 = (0u | 0u); aot_gpr_31 = (0x089EABD8u); ctx.gpr[8] = (0u | 44u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 492u, 0x089EABD8u, 0x08892400u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 340u, aot_mem); #else recomp_unit_0035_entry(rt, ctx, 340u, 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, 340u, 0x08892400u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EABD8u) goto L_089EABD8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EABD8: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EBA6C; } goto L_089EABE0; } L_089EABE0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(32))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(36))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); { const float fs = aot_fpr_13; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(32), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(32)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(48))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_fpr_13 = std::bit_cast(aot_gpr_4); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); if (branch_taken) { goto L_089EAC28; } goto L_089EAC1C; } L_089EAC1C: aot_gpr_4 = (20352u << 16u); aot_fpr_14 = std::bit_cast(aot_gpr_4); aot_fpr_13 = aot_fpr_13 + aot_fpr_14; goto L_089EAC28; L_089EAC28: aot_fpr_12 = aot_fpr_12 - aot_fpr_13; aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); ctx.gpr[18] = (std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_5 = (aot_gpr_4 < static_cast(12) ? 1u : 0u); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_089EBA50; } goto L_089EAC44; } L_089EAC44: aot_gpr_4 = (aot_gpr_4 << 2u); ctx.gpr[1] = (2232u << 16u); ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-1848))); jump_target = ctx.gpr[1]; // 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_089EAC5C: aot_gpr_4 = (static_cast(ctx.gpr[18]) < 3500 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EAD78; } goto L_089EAC68; } L_089EAC68: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(52))); aot_gpr_4 = (aot_gpr_4 & 1u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089EAC80; } goto L_089EAC78; } L_089EAC78: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EBA50; } goto L_089EAC80; } L_089EAC80: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(44))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EACEC; } goto L_089EAC8C; } L_089EAC8C: aot_gpr_4 = (16128u << 16u); aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (16204u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_gpr_31 = (0x089EACA4u); ctx.fpr[22] = std::bit_cast(aot_gpr_4); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EACA4u) goto L_089EACA4; AOT_REGCACHE_SYNC_OUT(); return; L_089EACA4: aot_fpr_12 = ctx.fpr[22] - aot_fpr_20; { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = aot_fpr_20 + aot_fpr_12; aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(44))); aot_gpr_5 = (aot_gpr_5 + static_cast(48)); aot_fpr_13 = std::bit_cast(0u); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_13), std::bit_cast(aot_fpr_13), std::bit_cast(aot_fpr_13)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(80), aot_run_words); } aot_gpr_6 = (aot_gpr_29 + static_cast(80)); ctx.gpr[8] = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (0u | 56u); aot_gpr_7 = (0u | 0u); ctx.gpr[9] = (0u | 0u); ctx.gpr[10] = (0u | 0u); ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089EACECu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 503u, 0x089EACECu, 0x0890043Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); #else recomp_unit_0063_entry(rt, ctx, 90u, 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, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EACECu) goto L_089EACEC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EACEC: aot_gpr_4 = (16128u << 16u); aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (16384u << 16u); aot_gpr_31 = (0x089EAD00u); ctx.fpr[22] = std::bit_cast(aot_gpr_4); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EAD00u) goto L_089EAD00; AOT_REGCACHE_SYNC_OUT(); return; L_089EAD00: aot_fpr_12 = ctx.fpr[22] - aot_fpr_20; { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = aot_fpr_20 + aot_fpr_12; aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_5 = (aot_gpr_29 + static_cast(64)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (16256u << 16u); aot_fpr_14 = std::bit_cast(aot_gpr_4); aot_fpr_13 = aot_fpr_13 + aot_fpr_14; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), std::bit_cast(aot_fpr_13)); aot_fpr_13 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), std::bit_cast(aot_fpr_13)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(52), std::bit_cast(aot_fpr_13)); aot_gpr_4 = (15841u << 16u); aot_gpr_4 = (aot_gpr_4 | 18350u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), std::bit_cast(aot_fpr_13)); aot_gpr_6 = (aot_gpr_29 + static_cast(48)); ctx.gpr[8] = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (0u | 56u); aot_gpr_7 = (0u | 0u); ctx.gpr[9] = (0u | 0u); ctx.gpr[10] = (0u | 0u); ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089EAD70u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 505u, 0x089EAD70u, 0x0890043Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); #else recomp_unit_0063_entry(rt, ctx, 90u, 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, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EAD70u) goto L_089EAD70; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EAD70: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EBA50; } goto L_089EAD78; } L_089EAD78: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(44))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EAF0C; } goto L_089EAD84; } L_089EAD84: aot_gpr_31 = (0x089EAD8Cu); 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EAD8Cu) goto L_089EAD8C; AOT_REGCACHE_SYNC_OUT(); return; L_089EAD8C: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 15u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089EAE30; } goto L_089EAD9C; } L_089EAD9C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(54))); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089EAE30; } goto L_089EADA8; } L_089EADA8: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(44))); ctx.gpr[20] = (0u | 17u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(852))); aot_gpr_5 = (0u | 6u); { const bool branch_taken = aot_gpr_4 == aot_gpr_5; if (branch_taken) { goto L_089EADD0; } goto L_089EADC0; } L_089EADC0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(852))); aot_gpr_5 = (0u | 8u); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089EADD4; } goto L_089EADD0; } L_089EADD0: ctx.gpr[20] = (0u | 3u); goto L_089EADD4; L_089EADD4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(256)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0)))))); aot_gpr_4 = (ctx.gpr[19] + aot_gpr_4); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); jump_target = aot_gpr_6; aot_gpr_31 = (0x089EADF0u); aot_gpr_5 = (ctx.gpr[20] | 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 == 0x089EADF0u) goto L_089EADF0; AOT_REGCACHE_SYNC_OUT(); return; L_089EADF0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_089EAE30; } goto L_089EADF8; } L_089EADF8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(248)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0)))))); aot_gpr_4 = (ctx.gpr[19] + aot_gpr_4); ctx.gpr[19] = (aot_gpr_29 + static_cast(96)); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); aot_gpr_5 = (ctx.gpr[20] | 0u); jump_target = aot_gpr_7; aot_gpr_31 = (0x089EAE1Cu); aot_gpr_6 = (ctx.gpr[19] | 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 == 0x089EAE1Cu) goto L_089EAE1C; AOT_REGCACHE_SYNC_OUT(); return; L_089EAE1C: aot_gpr_4 = (16128u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_13 = std::bit_cast(0u); aot_gpr_31 = (0x089EAE30u); aot_gpr_4 = (ctx.gpr[19] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0062. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 517u, 0x089EAE30u, 0x088FF204u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 733u, aot_mem); #else recomp_unit_0062_entry(rt, ctx, 733u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 733u, 0x088FF204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EAE30u) goto L_089EAE30; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EAE30: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(56))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_fpr_13 = std::bit_cast(aot_gpr_4); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); if (branch_taken) { goto L_089EAE50; } goto L_089EAE44; } L_089EAE44: aot_gpr_4 = (20352u << 16u); aot_fpr_14 = std::bit_cast(aot_gpr_4); aot_fpr_13 = aot_fpr_13 + aot_fpr_14; goto L_089EAE50; L_089EAE50: 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_089EAF0C; } goto L_089EAE60; } L_089EAE60: aot_gpr_31 = (0x089EAE68u); ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EAE68u) goto L_089EAE68; AOT_REGCACHE_SYNC_OUT(); return; L_089EAE68: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 127u); aot_gpr_4 = (ctx.gpr[19] + aot_gpr_4); aot_gpr_4 = (aot_gpr_4 + static_cast(125)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(56), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(44))); aot_gpr_4 = (aot_gpr_4 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(112)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089EAEA0u); 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EAEA0u) goto L_089EAEA0; AOT_REGCACHE_SYNC_OUT(); return; L_089EAEA0: aot_gpr_4 = (ctx.gpr[2] & 65535u); ctx.gpr[19] = (aot_gpr_4 & 1u); ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); ctx.gpr[20] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[20]) < static_cast(ctx.gpr[19]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EAF0C; } goto L_089EAEBC; } L_089EAEBC: aot_gpr_5 = (aot_gpr_29 + static_cast(112)); aot_fpr_12 = std::bit_cast(0u); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_12)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(128), aot_run_words); } aot_gpr_6 = (aot_gpr_29 + static_cast(128)); aot_gpr_4 = (16480u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.gpr[8] = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (0u | 40u); aot_gpr_7 = (0u | 0u); ctx.gpr[9] = (0u | 0u); ctx.gpr[10] = (0u | 0u); ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089EAEFCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 524u, 0x089EAEFCu, 0x0890043Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); #else recomp_unit_0063_entry(rt, ctx, 90u, 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, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EAEFCu) goto L_089EAEFC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EAEFC: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[20]) < static_cast(ctx.gpr[19]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089EAEBC; } goto L_089EAF0C; } L_089EAF0C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7764))); aot_gpr_4 = (aot_gpr_4 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EAFC8; } goto L_089EAF1C; } L_089EAF1C: ctx.gpr[19] = (aot_gpr_29 + static_cast(32)); { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_5 = (aot_gpr_29 + static_cast(144)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_20 = std::bit_cast(0u); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(160), aot_run_words); } aot_gpr_6 = (aot_gpr_29 + static_cast(160)); aot_gpr_4 = (16752u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (16256u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); ctx.gpr[20] = (0u | 1u); aot_gpr_4 = (0u | 0u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_7 = (0u | 0u); aot_gpr_31 = (0x089EAF6Cu); ctx.gpr[8] = (0u | 1u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0200. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 527u, 0x089EAF6Cu, 0x08B25C64u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); #else recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EAF6Cu) goto L_089EAF6C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EAF6C: aot_gpr_4 = (16576u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (17056u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (2234u << 16u); ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4264))); aot_gpr_4 = (16320u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_4); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 200u); aot_gpr_6 = (0u | 100u); aot_gpr_7 = (0u | 0u); ctx.gpr[8] = (0u | 255u); ctx.gpr[9] = (ctx.gpr[19] | 0u); ctx.gpr[11] = (0u | 1u); { const std::uint32_t aot_run_words[3]{ctx.gpr[20], 0u, 0u}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089EAFC0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0095. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 528u, 0x089EAFC0u, 0x08983B9Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); #else recomp_unit_0095_entry(rt, ctx, 634u, 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, 634u, 0x08983B9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EAFC0u) goto L_089EAFC0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EAFC0: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EB020; } goto L_089EAFC8; } L_089EAFC8: ctx.gpr[9] = (aot_gpr_29 + static_cast(32)); aot_gpr_4 = (16640u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (17056u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (2234u << 16u); ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4264))); ctx.gpr[2] = (0u | 1u); aot_fpr_14 = std::bit_cast(0u); aot_gpr_4 = (16320u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_4); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 128u); aot_gpr_6 = (0u | 0u); aot_gpr_7 = (0u | 0u); ctx.gpr[8] = (0u | 255u); ctx.gpr[11] = (0u | 1u); { const std::uint32_t aot_run_words[3]{ctx.gpr[2], 0u, 0u}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089EB020u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0095. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 530u, 0x089EB020u, 0x08983B9Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); #else recomp_unit_0095_entry(rt, ctx, 634u, 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, 634u, 0x08983B9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB020u) goto L_089EB020; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EB020: aot_gpr_4 = (ctx.gpr[17] + static_cast(1)); ctx.gpr[9] = (aot_gpr_29 + static_cast(32)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(32))); aot_gpr_5 = (17056u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_gpr_5 = (2234u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(4264)); ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(28))); aot_fpr_14 = std::bit_cast(0u); aot_gpr_5 = (16320u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_5); aot_gpr_5 = (0u | 30u); aot_gpr_6 = (0u | 15u); aot_gpr_7 = (0u | 0u); ctx.gpr[8] = (0u | 255u); ctx.gpr[11] = (0u | 0u); { const std::uint32_t aot_run_words[3]{0u, 0u, 0u}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089EB074u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0095. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 531u, 0x089EB074u, 0x08983B9Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); #else recomp_unit_0095_entry(rt, ctx, 634u, 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, 634u, 0x08983B9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB074u) goto L_089EB074; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EB074: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EBA50; } goto L_089EB07C; } L_089EB07C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7764))); aot_gpr_4 = (aot_gpr_4 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EB13C; } goto L_089EB08C; } L_089EB08C: ctx.gpr[19] = (aot_gpr_29 + static_cast(32)); { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_5 = (aot_gpr_29 + static_cast(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(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_20 = std::bit_cast(0u); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(192), aot_run_words); } aot_gpr_6 = (aot_gpr_29 + static_cast(192)); aot_gpr_4 = (16800u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (16256u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (16128u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_4); ctx.gpr[20] = (0u | 1u); aot_gpr_4 = (0u | 0u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_7 = (0u | 0u); aot_gpr_31 = (0x089EB0E0u); ctx.gpr[8] = (0u | 1u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0200. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 534u, 0x089EB0E0u, 0x08B25C64u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); #else recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB0E0u) goto L_089EB0E0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EB0E0: aot_gpr_4 = (16640u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (17136u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (2234u << 16u); ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4264))); aot_gpr_4 = (16320u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_4); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 255u); aot_gpr_6 = (0u | 255u); aot_gpr_7 = (0u | 200u); ctx.gpr[8] = (0u | 255u); ctx.gpr[9] = (ctx.gpr[19] | 0u); ctx.gpr[11] = (0u | 1u); { const std::uint32_t aot_run_words[3]{ctx.gpr[20], 0u, 0u}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089EB134u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0095. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 535u, 0x089EB134u, 0x08983B9Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); #else recomp_unit_0095_entry(rt, ctx, 634u, 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, 634u, 0x08983B9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB134u) goto L_089EB134; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EB134: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EB194; } goto L_089EB13C; } L_089EB13C: ctx.gpr[9] = (aot_gpr_29 + static_cast(32)); aot_gpr_4 = (16640u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (17136u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (2234u << 16u); ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4264))); ctx.gpr[2] = (0u | 1u); aot_fpr_14 = std::bit_cast(0u); aot_gpr_4 = (16320u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_4); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 128u); aot_gpr_6 = (0u | 128u); aot_gpr_7 = (0u | 100u); ctx.gpr[8] = (0u | 255u); ctx.gpr[11] = (0u | 1u); { const std::uint32_t aot_run_words[3]{ctx.gpr[2], 0u, 0u}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089EB194u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0095. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 537u, 0x089EB194u, 0x08983B9Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); #else recomp_unit_0095_entry(rt, ctx, 634u, 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, 634u, 0x08983B9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB194u) goto L_089EB194; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EB194: aot_gpr_4 = (ctx.gpr[17] + static_cast(1)); ctx.gpr[9] = (aot_gpr_29 + static_cast(32)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(32))); aot_gpr_5 = (17136u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_gpr_5 = (2234u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(4264)); ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(28))); aot_fpr_14 = std::bit_cast(0u); aot_gpr_5 = (16320u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_5); aot_gpr_5 = (0u | 30u); aot_gpr_6 = (0u | 30u); aot_gpr_7 = (0u | 25u); ctx.gpr[8] = (0u | 255u); ctx.gpr[11] = (0u | 0u); { const std::uint32_t aot_run_words[3]{0u, 0u, 0u}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089EB1E8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0095. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 538u, 0x089EB1E8u, 0x08983B9Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); #else recomp_unit_0095_entry(rt, ctx, 634u, 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, 634u, 0x08983B9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB1E8u) goto L_089EB1E8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EB1E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EBA50; } goto L_089EB1F0; } L_089EB1F0: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(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(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(208), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } aot_gpr_4 = (16576u << 16u); aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(40))); aot_gpr_31 = (0x089EB220u); ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_20)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 540u, 0x089EB220u, 0x088937CCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 577u, aot_mem); #else recomp_unit_0035_entry(rt, ctx, 577u, 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, 577u, 0x088937CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB220u) goto L_089EB220; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EB220: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(208), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(40))); aot_gpr_31 = (0x089EB238u); ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_20)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 541u, 0x089EB238u, 0x08893C18u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 626u, aot_mem); #else recomp_unit_0035_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_0035_entry, 35u, 626u, 0x08893C18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB238u) goto L_089EB238; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EB238: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(208), aot_run_words); aot_fpr_12 = std::bit_cast(aot_run_words[0]); aot_fpr_13 = std::bit_cast(aot_run_words[1]); aot_fpr_14 = std::bit_cast(aot_run_words[2]); } aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(40))); aot_gpr_31 = (0x089EB250u); ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_20)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 542u, 0x089EB250u, 0x08893E14u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 647u, aot_mem); #else recomp_unit_0035_entry(rt, ctx, 647u, 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, 647u, 0x08893E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB250u) goto L_089EB250; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EB250: aot_gpr_4 = (0u | 255u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(224), static_cast(aot_gpr_4)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(225), static_cast(aot_gpr_4)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(226), static_cast(0u)); aot_gpr_4 = (0u | 30u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(227), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(52))); aot_gpr_4 = (static_cast(aot_gpr_4) < 10 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EB550; } goto L_089EB278; } L_089EB278: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(52))); aot_gpr_5 = (0u | 1u); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089EB2FC; } goto L_089EB288; } L_089EB288: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(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(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(312))); aot_gpr_5 = (16384u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(312), std::bit_cast(aot_fpr_12)); aot_gpr_5 = (50298u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_5); aot_gpr_5 = (aot_gpr_29 + static_cast(256)); aot_gpr_6 = (aot_gpr_29 + static_cast(288)); aot_gpr_7 = (0u | 1u); ctx.gpr[8] = (0u | 0u); ctx.gpr[9] = (0u | 0u); ctx.gpr[10] = (0u | 0u); ctx.gpr[11] = (0u | 1u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x089EB2E0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 545u, 0x089EB2E0u, 0x08891DD4u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); #else recomp_unit_0035_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_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB2E0u) goto L_089EB2E0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EB2E0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { goto L_089EB2F4; } goto L_089EB2E8; } L_089EB2E8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(264))); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(68), std::bit_cast(aot_fpr_12)); if (branch_taken) { goto L_089EB2FC; } goto L_089EB2F4; } L_089EB2F4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(24))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(68), std::bit_cast(aot_fpr_12)); goto L_089EB2FC; L_089EB2FC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(52))); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_20 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_4 = (16140u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_fpr_13 = std::bit_cast(aot_gpr_4); { const float fs = aot_fpr_20; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_fpr_14 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_20)); ctx.gpr[19] = (std::bit_cast(aot_fpr_14)); aot_gpr_4 = (ctx.gpr[19] << 5u); aot_gpr_4 = (aot_gpr_4 - ctx.gpr[19]); ctx.gpr[19] = (aot_gpr_4 - ctx.gpr[19]); ctx.gpr[20] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[20]) < static_cast(ctx.gpr[19]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EB4C0; } goto L_089EB33C; } L_089EB33C: aot_gpr_31 = (0x089EB344u); 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EB344u) goto L_089EB344; AOT_REGCACHE_SYNC_OUT(); return; L_089EB344: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_4 = (15560u << 16u); aot_gpr_4 = (aot_gpr_4 | 62915u); aot_fpr_13 = std::bit_cast(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(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[21] = (aot_gpr_29 + static_cast(336)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(336))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<0u>(aot_gpr_4); { const float vfpu_constant = std::bit_cast(0x3F22F983u); 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_vec3_ct<64u, 0u, 32u, 1u, 2u>(); ctx.execute_vfpu_unary_ct<1u, 64u, 1u, 18u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); aot_fpr_13 = std::bit_cast(aot_gpr_4); { const float fs = aot_fpr_20; 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(0x7FC00000u); else aot_fpr_13 = fs * ft; } aot_fpr_13 = aot_fpr_14 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(336), std::bit_cast(aot_fpr_13)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(340))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<0u>(aot_gpr_4); { const float vfpu_constant = std::bit_cast(0x3F22F983u); 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_vec3_ct<64u, 0u, 32u, 1u, 2u>(); ctx.execute_vfpu_unary_ct<1u, 64u, 1u, 19u>(); aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); aot_fpr_14 = std::bit_cast(aot_gpr_4); { const float fs = aot_fpr_20; 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(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = aot_fpr_13 + aot_fpr_12; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(340), std::bit_cast(aot_fpr_12)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(68))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(344), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089EB3DCu); 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EB3DCu) goto L_089EB3DC; AOT_REGCACHE_SYNC_OUT(); return; L_089EB3DC: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-10708))); aot_gpr_31 = (0x089EB3F0u); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-10712))); 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, ctx.gpr[2], ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EB3F0u) goto L_089EB3F0; AOT_REGCACHE_SYNC_OUT(); return; L_089EB3F0: ctx.gpr[1] = (ctx.gpr[3] << 1u); aot_gpr_5 = (static_cast(static_cast(ctx.gpr[3]) >> 31u)); aot_gpr_4 = (ctx.gpr[2] >> 31u); aot_gpr_4 = (ctx.gpr[1] | aot_gpr_4); aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-10700))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-10704))); ctx.gpr[8] = (aot_gpr_4 + aot_gpr_6); ctx.gpr[9] = (ctx.gpr[8] < aot_gpr_6 ? 1u : 0u); aot_gpr_4 = (ctx.gpr[9] + aot_gpr_5); aot_gpr_5 = (aot_gpr_4 + aot_gpr_7); aot_gpr_4 = (ctx.gpr[8] | 0u); ctx.gpr[22] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089EB428u); 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EB428u) goto L_089EB428; AOT_REGCACHE_SYNC_OUT(); return; L_089EB428: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-10692))); aot_gpr_31 = (0x089EB43Cu); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-10696))); 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, ctx.gpr[2], ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EB43Cu) goto L_089EB43C; AOT_REGCACHE_SYNC_OUT(); return; L_089EB43C: ctx.gpr[1] = (ctx.gpr[3] << 1u); aot_gpr_5 = (static_cast(static_cast(ctx.gpr[3]) >> 31u)); aot_gpr_4 = (ctx.gpr[2] >> 31u); aot_gpr_4 = (ctx.gpr[1] | aot_gpr_4); aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-10684))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-10688))); ctx.gpr[8] = (aot_gpr_4 + aot_gpr_6); ctx.gpr[9] = (ctx.gpr[8] < aot_gpr_6 ? 1u : 0u); aot_gpr_4 = (ctx.gpr[9] + aot_gpr_5); aot_gpr_5 = (aot_gpr_4 + aot_gpr_7); aot_gpr_4 = (ctx.gpr[8] | 0u); ctx.gpr[10] = (aot_gpr_4 | 0u); aot_fpr_12 = std::bit_cast(0u); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_12)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(320), aot_run_words); } aot_gpr_6 = (aot_gpr_29 + static_cast(320)); aot_gpr_4 = (16076u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.gpr[8] = (aot_gpr_29 + static_cast(224)); ctx.gpr[2] = (0u | 200u); aot_gpr_4 = (0u | 13u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_7 = (0u | 0u); ctx.gpr[9] = (ctx.gpr[22] | 0u); ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089EB4B0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 555u, 0x089EB4B0u, 0x0890043Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); #else recomp_unit_0063_entry(rt, ctx, 90u, 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, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB4B0u) goto L_089EB4B0; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EB4B0: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[20]) < static_cast(ctx.gpr[19]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089EB33C; } goto L_089EB4C0; } L_089EB4C0: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_7 = (aot_gpr_29 + static_cast(240)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_7 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(68))); aot_gpr_4 = (15395u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(248), std::bit_cast(aot_fpr_12)); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5048))); aot_gpr_4 = (16608u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_13 = std::bit_cast(0u); aot_gpr_4 = (49376u << 16u); ctx.fpr[15] = std::bit_cast(aot_gpr_4); aot_gpr_4 = (16672u << 16u); ctx.fpr[16] = std::bit_cast(aot_gpr_4); aot_gpr_4 = (16256u << 16u); ctx.fpr[17] = std::bit_cast(aot_gpr_4); aot_gpr_4 = (16928u << 16u); ctx.fpr[18] = std::bit_cast(aot_gpr_4); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 2u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_13)); ctx.gpr[8] = (0u | 100u); ctx.gpr[9] = (0u | 60u); ctx.gpr[10] = (0u | 60u); ctx.gpr[11] = (0u | 255u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); ctx.fpr[19] = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x089EB548u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_13)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0164. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 557u, 0x089EB548u, 0x08A97518u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); #else recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 490u, 0x08A97518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB548u) goto L_089EB548; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EB548: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EB5DC; } goto L_089EB550; } L_089EB550: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(352)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(68))); aot_gpr_4 = (15395u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(360), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089EB580u); 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EB580u) goto L_089EB580; AOT_REGCACHE_SYNC_OUT(); return; L_089EB580: aot_gpr_31 = (0x089EB588u); 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EB588u) goto L_089EB588; AOT_REGCACHE_SYNC_OUT(); return; L_089EB588: ctx.gpr[19] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[19]) < 4 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EB5DC; } goto L_089EB598; } L_089EB598: aot_gpr_5 = (aot_gpr_29 + static_cast(352)); aot_fpr_12 = std::bit_cast(0u); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_12)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(368), aot_run_words); } aot_gpr_6 = (aot_gpr_29 + static_cast(368)); aot_gpr_4 = (0u | 57u); aot_gpr_7 = (0u | 0u); ctx.gpr[8] = (0u | 0u); ctx.gpr[9] = (0u | 0u); ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x089EB5CCu); ctx.gpr[11] = (0u | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0062. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 562u, 0x089EB5CCu, 0x088FF060u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); #else recomp_unit_0062_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_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB5CCu) goto L_089EB5CC; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EB5CC: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < 4 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089EB598; } goto L_089EB5DC; } L_089EB5DC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(52))); aot_gpr_5 = (0u | 7u); { const bool branch_taken = aot_gpr_4 != aot_gpr_5; if (branch_taken) { goto L_089EB720; } goto L_089EB5EC; } L_089EB5EC: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(384)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(68))); aot_gpr_4 = (16345u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(392), std::bit_cast(aot_fpr_12)); ctx.gpr[19] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[19]) < 10 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EB6F8; } goto L_089EB624; } L_089EB624: aot_gpr_4 = (48373u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (15605u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); aot_gpr_31 = (0x089EB640u); ctx.fpr[22] = std::bit_cast(aot_gpr_4); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB640u) goto L_089EB640; AOT_REGCACHE_SYNC_OUT(); return; L_089EB640: aot_fpr_12 = ctx.fpr[22] - aot_fpr_20; { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } ctx.fpr[24] = aot_fpr_20 + aot_fpr_12; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(400), std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x089EB658u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB658u) goto L_089EB658; AOT_REGCACHE_SYNC_OUT(); return; L_089EB658: aot_fpr_13 = ctx.fpr[22] - aot_fpr_20; { const float fs = aot_fpr_13; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } aot_fpr_13 = aot_fpr_20 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(404), std::bit_cast(aot_fpr_13)); { const float fs = ctx.fpr[24]; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_14 = std::bit_cast(0x7FC00000u); else aot_fpr_14 = fs * ft; } { const float fs = aot_fpr_13; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast(0x7FC00000u); else ctx.fpr[15] = fs * ft; } aot_fpr_14 = aot_fpr_14 + ctx.fpr[15]; aot_fpr_12 = std::sqrt(aot_fpr_14); aot_fpr_12 = ctx.fpr[22] - aot_fpr_12; ctx.fpr[16] = std::bit_cast(0u); { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[16]), std::bit_cast(ctx.fpr[16]), std::bit_cast(ctx.fpr[16])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(432), aot_run_words); } aot_gpr_4 = (aot_gpr_29 + static_cast(384)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(432)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(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(416)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[24]), std::bit_cast(aot_fpr_13), std::bit_cast(aot_fpr_12)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(448), aot_run_words); } aot_gpr_6 = (aot_gpr_29 + static_cast(448)); aot_gpr_4 = (16358u << 16u); aot_gpr_4 = (aot_gpr_4 | 26214u); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.gpr[8] = (aot_gpr_29 + static_cast(224)); ctx.gpr[2] = (0u | 4000u); aot_gpr_4 = (0u | 13u); aot_gpr_7 = (0u | 0u); ctx.gpr[9] = (0u | 0u); ctx.gpr[10] = (0u | 0u); ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089EB6E8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 568u, 0x089EB6E8u, 0x0890043Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); #else recomp_unit_0063_entry(rt, ctx, 90u, 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, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB6E8u) goto L_089EB6E8; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EB6E8: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < 10 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089EB624; } goto L_089EB6F8; } L_089EB6F8: aot_gpr_4 = (aot_gpr_29 + static_cast(384)); aot_gpr_5 = (16576u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_5); aot_gpr_5 = (16384u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(40))); aot_gpr_6 = (0u | 1u); aot_gpr_7 = (0u | 0u); aot_gpr_31 = (0x089EB720u); ctx.gpr[8] = (0u | 17u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 570u, 0x089EB720u, 0x08892400u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 340u, aot_mem); #else recomp_unit_0035_entry(rt, ctx, 340u, 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, 340u, 0x08892400u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB720u) goto L_089EB720; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EB720: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(52))); aot_gpr_4 = (static_cast(aot_gpr_4) < 7 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089EB83C; } goto L_089EB730; } L_089EB730: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(52))); aot_gpr_4 = (static_cast(aot_gpr_4) < 33 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EB83C; } goto L_089EB740; } L_089EB740: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[19] = (aot_gpr_29 + static_cast(464)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(68))); aot_gpr_4 = (15395u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(472), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(52))); aot_gpr_4 = (aot_gpr_4 << 3u); aot_gpr_5 = (0u | 256u); aot_gpr_4 = (aot_gpr_5 - aot_gpr_4); aot_gpr_4 = (aot_gpr_4 << 16u); ctx.gpr[20] = (static_cast(static_cast(aot_gpr_4) >> 16u)); aot_gpr_4 = (48793u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (16025u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); aot_gpr_31 = (0x089EB79Cu); ctx.fpr[22] = std::bit_cast(aot_gpr_4); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB79Cu) goto L_089EB79C; AOT_REGCACHE_SYNC_OUT(); return; L_089EB79C: aot_fpr_12 = ctx.fpr[22] - aot_fpr_20; { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = aot_fpr_20 + aot_fpr_12; aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(52))); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_4 = (15779u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); aot_fpr_14 = std::bit_cast(aot_gpr_4); { const float fs = aot_fpr_13; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } ctx.fpr[15] = aot_fpr_12 + aot_fpr_13; aot_gpr_4 = (ctx.gpr[17] + static_cast(1)); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5048))); aot_gpr_5 = (16358u << 16u); aot_gpr_5 = (aot_gpr_5 | 26214u); aot_fpr_12 = std::bit_cast(aot_gpr_5); aot_fpr_12 = ctx.fpr[15] + aot_fpr_12; aot_fpr_13 = std::bit_cast(0u); aot_gpr_5 = (49126u << 16u); aot_gpr_5 = (aot_gpr_5 | 26214u); aot_fpr_14 = std::bit_cast(aot_gpr_5); ctx.fpr[15] = aot_fpr_14 - ctx.fpr[15]; ctx.gpr[9] = (ctx.gpr[20] & 255u); aot_gpr_5 = (16672u << 16u); ctx.fpr[16] = std::bit_cast(aot_gpr_5); aot_gpr_5 = (16256u << 16u); ctx.fpr[17] = std::bit_cast(aot_gpr_5); aot_gpr_5 = (16928u << 16u); ctx.fpr[18] = std::bit_cast(aot_gpr_5); aot_gpr_5 = (0u | 2u); aot_gpr_7 = (ctx.gpr[19] | 0u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_13)); ctx.gpr[8] = (0u | 255u); ctx.gpr[10] = (ctx.gpr[9] | 0u); ctx.gpr[11] = (0u | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); ctx.fpr[19] = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x089EB83Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_13)); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0164. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 574u, 0x089EB83Cu, 0x08A97518u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); #else recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 490u, 0x08A97518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB83Cu) goto L_089EB83C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EB83C: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EBA50; } goto L_089EB844; } L_089EB844: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(52))); aot_gpr_4 = (static_cast(aot_gpr_4) < 5 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EBA48; } goto L_089EB854; } L_089EB854: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(52))); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_20 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_4 = (16166u << 16u); aot_gpr_4 = (aot_gpr_4 | 26214u); aot_fpr_13 = std::bit_cast(aot_gpr_4); { const float fs = aot_fpr_20; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_fpr_14 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_20)); ctx.gpr[19] = (std::bit_cast(aot_fpr_14)); aot_gpr_4 = (ctx.gpr[19] << 3u); aot_gpr_4 = (ctx.gpr[19] + aot_gpr_4); ctx.gpr[19] = (ctx.gpr[19] + aot_gpr_4); ctx.gpr[20] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[20]) < static_cast(ctx.gpr[19]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EBA48; } goto L_089EB894; } L_089EB894: aot_gpr_31 = (0x089EB89Cu); 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EB89Cu) goto L_089EB89C; AOT_REGCACHE_SYNC_OUT(); return; L_089EB89C: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_4 = (aot_gpr_4 + static_cast(-128)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(496), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089EB8BCu); 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EB8BCu) goto L_089EB8BC; AOT_REGCACHE_SYNC_OUT(); return; L_089EB8BC: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_4 = (aot_gpr_4 + static_cast(-128)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(500), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089EB8DCu); 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EB8DCu) goto L_089EB8DC; AOT_REGCACHE_SYNC_OUT(); return; L_089EB8DC: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_4 = (aot_gpr_4 & 127u); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(504), std::bit_cast(aot_fpr_12)); ctx.gpr[21] = (aot_gpr_29 + static_cast(496)); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); } { float vfpu_value[4]{}; vfpu_value[0u] = 1.0f; ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 4u>(vfpu_value); } ctx.execute_vfpu_vdot_ct<28u, 1u, 1u, 3u>(); ctx.execute_vfpu_vcmp_ct<28u, 32u, 1u, 3u>(); ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 17u>(); ctx.execute_vfpu_vscl_ct<1u, 1u, 28u, 3u>(); ctx.execute_vfpu_vcmov_ct<1u, 0u, 3u, 0u, false>(); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<1u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(52))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); { 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(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_4 = (16544u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 / aot_fpr_13; aot_gpr_4 = (std::bit_cast(aot_fpr_12)); ctx.set_vfpu_scalar_bits_ct<1u>(aot_gpr_4); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(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[21] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_5 = (ctx.gpr[17] + static_cast(16)); aot_gpr_31 = (0x089EB958u); aot_gpr_4 = (ctx.gpr[21] | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08A931B8, 163u, 0x08A931B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB958u) goto L_089EB958; AOT_REGCACHE_SYNC_OUT(); return; L_089EB958: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(504))); aot_gpr_4 = (16128u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_13 + aot_fpr_12; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(504), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089EB974u); 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EB974u) goto L_089EB974; AOT_REGCACHE_SYNC_OUT(); return; L_089EB974: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-10708))); aot_gpr_31 = (0x089EB988u); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-10712))); 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, ctx.gpr[2], ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EB988u) goto L_089EB988; AOT_REGCACHE_SYNC_OUT(); return; L_089EB988: ctx.gpr[1] = (ctx.gpr[3] << 1u); aot_gpr_5 = (static_cast(static_cast(ctx.gpr[3]) >> 31u)); aot_gpr_4 = (ctx.gpr[2] >> 31u); aot_gpr_4 = (ctx.gpr[1] | aot_gpr_4); aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-10700))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-10704))); ctx.gpr[8] = (aot_gpr_4 + aot_gpr_6); ctx.gpr[9] = (ctx.gpr[8] < aot_gpr_6 ? 1u : 0u); aot_gpr_4 = (ctx.gpr[9] + aot_gpr_5); aot_gpr_5 = (aot_gpr_4 + aot_gpr_7); aot_gpr_4 = (ctx.gpr[8] | 0u); ctx.gpr[22] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089EB9C0u); 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, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EB9C0u) goto L_089EB9C0; AOT_REGCACHE_SYNC_OUT(); return; L_089EB9C0: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-10692))); aot_gpr_31 = (0x089EB9D4u); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-10696))); 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, ctx.gpr[2], ctx.gpr[3], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_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 == 0x089EB9D4u) goto L_089EB9D4; AOT_REGCACHE_SYNC_OUT(); return; L_089EB9D4: ctx.gpr[1] = (ctx.gpr[3] << 1u); aot_gpr_5 = (static_cast(static_cast(ctx.gpr[3]) >> 31u)); aot_gpr_4 = (ctx.gpr[2] >> 31u); aot_gpr_4 = (ctx.gpr[1] | aot_gpr_4); aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-10684))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-10688))); ctx.gpr[8] = (aot_gpr_4 + aot_gpr_6); ctx.gpr[9] = (ctx.gpr[8] < aot_gpr_6 ? 1u : 0u); aot_gpr_4 = (ctx.gpr[9] + aot_gpr_5); aot_gpr_5 = (aot_gpr_4 + aot_gpr_7); aot_gpr_4 = (ctx.gpr[8] | 0u); ctx.gpr[10] = (aot_gpr_4 | 0u); aot_fpr_12 = std::bit_cast(0u); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_12)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(480), aot_run_words); } aot_gpr_6 = (aot_gpr_29 + static_cast(480)); ctx.gpr[8] = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (0u | 41u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_7 = (0u | 0u); ctx.gpr[9] = (ctx.gpr[22] | 0u); ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089EBA38u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 586u, 0x089EBA38u, 0x0890043Cu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); #else recomp_unit_0063_entry(rt, ctx, 90u, 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, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EBA38u) goto L_089EBA38; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EBA38: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[20]) < static_cast(ctx.gpr[19]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089EB894; } goto L_089EBA48; } L_089EBA48: { const bool branch_taken = 0u == 0u; if (branch_taken) { goto L_089EBA50; } goto L_089EBA50; } L_089EBA50: { const bool branch_taken = static_cast(ctx.gpr[18]) <= 0; if (branch_taken) { goto L_089EBA68; } goto L_089EBA58; } L_089EBA58: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(52))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(52), static_cast(aot_gpr_4)); if (branch_taken) { goto L_089EBA6C; } goto L_089EBA68; } L_089EBA68: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(52), static_cast(0u)); goto L_089EBA6C; L_089EBA6C: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[16]) < 48 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089EAAE4; } goto L_089EBA7C; } L_089EBA7C: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(528), aot_run_words); aot_fpr_20 = std::bit_cast(aot_run_words[0]); ctx.fpr[22] = std::bit_cast(aot_run_words[1]); ctx.fpr[24] = std::bit_cast(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]; aot_gpr_31 = aot_run_words[10]; } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(576)); // 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_089EBAB0: aot_gpr_4 = (0u | 50u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(9684), static_cast(aot_gpr_4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(-10680)); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(9684))); aot_gpr_5 = (aot_gpr_5 << 2u); aot_gpr_6 = (2237u << 16u); aot_gpr_6 = (aot_gpr_6 + static_cast(-30144)); aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); // 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_089EBAD8: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EBB1C; } goto L_089EBAE8; } L_089EBAE8: aot_gpr_6 = (2235u << 16u); aot_gpr_6 = (aot_gpr_6 + static_cast(-26580)); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_6); { const bool branch_taken = aot_gpr_4 == 0u; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5844), 0u); if (branch_taken) { goto L_089EBB08; } goto L_089EBAFC; } L_089EBAFC: aot_gpr_6 = (2235u << 16u); aot_gpr_6 = (aot_gpr_6 + static_cast(-28772)); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_6); goto L_089EBB08; L_089EBB08: aot_gpr_5 = (aot_gpr_5 & 1u); { const bool branch_taken = aot_gpr_5 == 0u; if (branch_taken) { goto L_089EBB1C; } goto L_089EBB14; } L_089EBB14: aot_gpr_31 = (0x089EBB1Cu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2C0, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], 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 == 0x089EBB1Cu) goto L_089EBB1C; AOT_REGCACHE_SYNC_OUT(); return; L_089EBB1C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(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_089EBB28: aot_gpr_29 = (aot_gpr_29 + static_cast(-32)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[17]); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[16]); { const std::uint32_t aot_run_words[4]{ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(12), aot_run_words); } { const bool branch_taken = aot_gpr_4 == 0u; ctx.gpr[16] = (aot_gpr_5 | 0u); if (branch_taken) { goto L_089EBBF8; } goto L_089EBB50; } L_089EBB50: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(26880)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), aot_gpr_4); aot_gpr_31 = (0x089EBB64u); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0122. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 602u, 0x089EBB64u, 0x089EC3FCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 47u, aot_mem); #else recomp_unit_0122_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_0122_entry, 122u, 47u, 0x089EC3FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EBB64u) goto L_089EBB64; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EBB64: ctx.gpr[20] = (ctx.gpr[17] + static_cast(12)); { const bool branch_taken = ctx.gpr[20] == 0u; if (branch_taken) { goto L_089EBBBC; } goto L_089EBB70; } L_089EBB70: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(16))); { const bool branch_taken = ctx.gpr[18] == ctx.gpr[19]; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(0), static_cast(0u)); if (branch_taken) { goto L_089EBB98; } goto L_089EBB80; } L_089EBB80: aot_gpr_4 = (ctx.gpr[18] | 0u); goto L_089EBB84; L_089EBB84: aot_gpr_31 = (0x089EBB8Cu); aot_gpr_5 = (0u | 2u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0122. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 606u, 0x089EBB8Cu, 0x089EC4BCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 52u, aot_mem); #else recomp_unit_0122_entry(rt, ctx, 52u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 52u, 0x089EC4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EBB8Cu) goto L_089EBB8C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EBB8C: ctx.gpr[18] = (ctx.gpr[18] + static_cast(64)); { const bool branch_taken = ctx.gpr[18] != ctx.gpr[19]; aot_gpr_4 = (ctx.gpr[18] | 0u); if (branch_taken) { goto L_089EBB84; } goto L_089EBB98; } L_089EBB98: { const bool branch_taken = ctx.gpr[20] == 0u; if (branch_taken) { goto L_089EBBBC; } goto L_089EBBA0; } L_089EBBA0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EBBBC; } goto L_089EBBAC; } L_089EBBAC: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EBBBC; } goto L_089EBBB4; } L_089EBBB4: aot_gpr_31 = (0x089EBBBCu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], 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, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EBBBCu) goto L_089EBBBC; AOT_REGCACHE_SYNC_OUT(); return; L_089EBBBC: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (ctx.gpr[16] & 1u); if (branch_taken) { goto L_089EBBE8; } goto L_089EBBC4; } L_089EBBC4: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-26580)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), aot_gpr_4); { const bool branch_taken = ctx.gpr[17] == 0u; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5844), 0u); if (branch_taken) { goto L_089EBBE4; } goto L_089EBBD8; } L_089EBBD8: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28772)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), aot_gpr_4); goto L_089EBBE4; L_089EBBE4: aot_gpr_4 = (ctx.gpr[16] & 1u); goto L_089EBBE8; L_089EBBE8: { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EBBF8; } goto L_089EBBF0; } L_089EBBF0: aot_gpr_31 = (0x089EBBF8u); aot_gpr_4 = (ctx.gpr[17] | 0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE2C0, 174u, 470u, 0x08ABE2C0u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], 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 == 0x089EBBF8u) goto L_089EBBF8; AOT_REGCACHE_SYNC_OUT(); return; L_089EBBF8: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(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]; 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(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_089EBC18: aot_gpr_29 = (aot_gpr_29 + static_cast(-64)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), ctx.gpr[16]); ctx.gpr[16] = (aot_gpr_4 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[8]); aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); ctx.gpr[10] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_4 = (ctx.gpr[9] & 255u); aot_gpr_7 = (aot_gpr_7 - ctx.gpr[10]); ctx.gpr[9] = (static_cast(static_cast(aot_gpr_7) >> 6u)); ctx.gpr[9] = (ctx.gpr[9] >> 26u); aot_gpr_7 = (aot_gpr_7 + ctx.gpr[9]); aot_gpr_7 = (static_cast(static_cast(aot_gpr_7) >> 6u)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_7); aot_gpr_7 = (aot_gpr_7 < ctx.gpr[8] ? 1u : 0u); { const std::uint32_t aot_run_words[6]{ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } { const bool branch_taken = aot_gpr_7 == 0u; ctx.gpr[17] = (aot_gpr_29 + static_cast(4)); if (branch_taken) { goto L_089EBC78; } goto L_089EBC70; } L_089EBC70: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (aot_gpr_29 | 0u); if (branch_taken) { goto L_089EBC78; } goto L_089EBC78; } L_089EBC78: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); ctx.gpr[17] = (aot_gpr_7 + ctx.gpr[17]); { const bool branch_taken = ctx.gpr[17] == 0u; ctx.gpr[19] = (0u | 0u); if (branch_taken) { goto L_089EBCE0; } goto L_089EBC8C; } L_089EBC8C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_6); aot_gpr_4 = (ctx.gpr[17] << 6u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_5); aot_gpr_31 = (0x089EBCA4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0174. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 622u, 0x089EBCA4u, 0x08ABE308u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); #else recomp_unit_0174_entry(rt, ctx, 474u, 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, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EBCA4u) goto L_089EBCA4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EBCA4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(12), aot_run_words); aot_gpr_5 = aot_run_words[0]; aot_gpr_6 = aot_run_words[1]; aot_gpr_7 = aot_run_words[2]; } ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] != 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); if (branch_taken) { goto L_089EBCE0; } goto L_089EBCBC; } L_089EBCBC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_6); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_5); aot_gpr_31 = (0x089EBCD0u); aot_gpr_4 = (aot_gpr_7 | 0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 289u, 0x08B65438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EBCD0u) goto L_089EBCD0; AOT_REGCACHE_SYNC_OUT(); return; L_089EBCD0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); goto L_089EBCE0; L_089EBCE0: aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); ctx.gpr[18] = (ctx.gpr[19] | 0u); { const bool branch_taken = aot_gpr_7 == aot_gpr_5; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(8), static_cast(0u)); if (branch_taken) { goto L_089EBD78; } goto L_089EBCF0; } L_089EBCF0: ctx.gpr[8] = (ctx.gpr[19] | 0u); if (ctx.gpr[8] == 0u) { aot_gpr_7 = (aot_gpr_7 + static_cast(64)); goto L_089EBD70; } goto L_089EBCFC; L_089EBCFC: ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(0))); aot_mem.aot_direct_store32(ctx.gpr[8] + static_cast(0), ctx.gpr[9]); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(4))); aot_mem.aot_direct_store32(ctx.gpr[8] + static_cast(4), ctx.gpr[9]); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(8))); aot_mem.aot_direct_store32(ctx.gpr[8] + static_cast(8), ctx.gpr[9]); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(12))); aot_mem.aot_direct_store32(ctx.gpr[8] + static_cast(12), ctx.gpr[9]); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[8] + static_cast(16), ctx.gpr[9]); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(20))); aot_mem.aot_direct_store32(ctx.gpr[8] + static_cast(20), ctx.gpr[9]); ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_7 + static_cast(24))); aot_mem.aot_direct_store8(ctx.gpr[8] + static_cast(24), static_cast(ctx.gpr[9])); ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_7 + static_cast(25))); aot_mem.aot_direct_store8(ctx.gpr[8] + static_cast(25), static_cast(ctx.gpr[9])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(28))); aot_mem.aot_direct_store32(ctx.gpr[8] + static_cast(28), std::bit_cast(aot_fpr_12)); ctx.gpr[9] = (aot_gpr_7 + static_cast(32)); { const std::uint32_t vfpu_address = ctx.gpr[9] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[9] = (ctx.gpr[8] + static_cast(32)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[9] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_7 + static_cast(48))); aot_mem.aot_direct_store8(ctx.gpr[8] + static_cast(48), static_cast(ctx.gpr[9])); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(52))); aot_mem.aot_direct_store32(ctx.gpr[8] + static_cast(52), ctx.gpr[9]); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(56))); aot_mem.aot_direct_store32(ctx.gpr[8] + static_cast(56), ctx.gpr[9]); aot_gpr_7 = (aot_gpr_7 + static_cast(64)); goto L_089EBD70; L_089EBD70: { const bool branch_taken = aot_gpr_7 != aot_gpr_5; ctx.gpr[19] = (ctx.gpr[19] + static_cast(64)); if (branch_taken) { goto L_089EBCF0; } goto L_089EBD78; } L_089EBD78: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[8] = (0u | 1u); { const bool branch_taken = aot_gpr_7 != ctx.gpr[8]; if (branch_taken) { goto L_089EBE0C; } goto L_089EBD88; } L_089EBD88: aot_gpr_7 = (ctx.gpr[19] | 0u); { const bool branch_taken = aot_gpr_7 == 0u; if (branch_taken) { goto L_089EBE04; } goto L_089EBD94; } L_089EBD94: ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_7 + static_cast(0), ctx.gpr[8]); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_7 + static_cast(4), ctx.gpr[8]); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(8))); aot_mem.aot_direct_store32(aot_gpr_7 + static_cast(8), ctx.gpr[8]); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(12))); aot_mem.aot_direct_store32(aot_gpr_7 + static_cast(12), ctx.gpr[8]); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_7 + static_cast(16), ctx.gpr[8]); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(20))); aot_mem.aot_direct_store32(aot_gpr_7 + static_cast(20), ctx.gpr[8]); ctx.gpr[8] = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast(24))); aot_mem.aot_direct_store8(aot_gpr_7 + static_cast(24), static_cast(ctx.gpr[8])); ctx.gpr[8] = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast(25))); aot_mem.aot_direct_store8(aot_gpr_7 + static_cast(25), static_cast(ctx.gpr[8])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(28))); aot_mem.aot_direct_store32(aot_gpr_7 + static_cast(28), std::bit_cast(aot_fpr_12)); ctx.gpr[8] = (aot_gpr_6 + static_cast(32)); { const std::uint32_t vfpu_address = ctx.gpr[8] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[8] = (aot_gpr_7 + static_cast(32)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[8] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } ctx.gpr[8] = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast(48))); aot_mem.aot_direct_store8(aot_gpr_7 + static_cast(48), static_cast(ctx.gpr[8])); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(52))); aot_mem.aot_direct_store32(aot_gpr_7 + static_cast(52), ctx.gpr[8]); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(56))); aot_mem.aot_direct_store32(aot_gpr_7 + static_cast(56), aot_gpr_6); goto L_089EBE04; L_089EBE04: { const bool branch_taken = 0u == 0u; ctx.gpr[19] = (ctx.gpr[19] + static_cast(64)); if (branch_taken) { goto L_089EBEA0; } goto L_089EBE0C; } L_089EBE0C: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_7 == 0u; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(9), static_cast(0u)); if (branch_taken) { goto L_089EBEA0; } goto L_089EBE18; } L_089EBE18: ctx.gpr[8] = (aot_gpr_6 + static_cast(32)); goto L_089EBE1C; L_089EBE1C: ctx.gpr[9] = (ctx.gpr[19] | 0u); if (ctx.gpr[9] == 0u) { aot_gpr_7 = (aot_gpr_7 + static_cast(-1)); goto L_089EBE98; } goto L_089EBE28; L_089EBE28: ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(0))); aot_mem.aot_direct_store32(ctx.gpr[9] + static_cast(0), ctx.gpr[10]); ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(4))); aot_mem.aot_direct_store32(ctx.gpr[9] + static_cast(4), ctx.gpr[10]); ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(8))); aot_mem.aot_direct_store32(ctx.gpr[9] + static_cast(8), ctx.gpr[10]); ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(12))); aot_mem.aot_direct_store32(ctx.gpr[9] + static_cast(12), ctx.gpr[10]); ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[9] + static_cast(16), ctx.gpr[10]); ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(20))); aot_mem.aot_direct_store32(ctx.gpr[9] + static_cast(20), ctx.gpr[10]); ctx.gpr[10] = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast(24))); aot_mem.aot_direct_store8(ctx.gpr[9] + static_cast(24), static_cast(ctx.gpr[10])); ctx.gpr[10] = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast(25))); aot_mem.aot_direct_store8(ctx.gpr[9] + static_cast(25), static_cast(ctx.gpr[10])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(28))); aot_mem.aot_direct_store32(ctx.gpr[9] + static_cast(28), std::bit_cast(aot_fpr_12)); { const std::uint32_t vfpu_address = ctx.gpr[8] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } ctx.gpr[10] = (ctx.gpr[9] + static_cast(32)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = ctx.gpr[10] + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } ctx.gpr[10] = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast(48))); aot_mem.aot_direct_store8(ctx.gpr[9] + static_cast(48), static_cast(ctx.gpr[10])); ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(52))); aot_mem.aot_direct_store32(ctx.gpr[9] + static_cast(52), ctx.gpr[10]); ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(56))); aot_mem.aot_direct_store32(ctx.gpr[9] + static_cast(56), ctx.gpr[10]); aot_gpr_7 = (aot_gpr_7 + static_cast(-1)); goto L_089EBE98; L_089EBE98: { const bool branch_taken = aot_gpr_7 != 0u; ctx.gpr[19] = (ctx.gpr[19] + static_cast(64)); if (branch_taken) { goto L_089EBE1C; } goto L_089EBEA0; } L_089EBEA0: { const bool branch_taken = aot_gpr_4 != 0u; if (branch_taken) { goto L_089EBF40; } goto L_089EBEA8; } L_089EBEA8: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); { const bool branch_taken = aot_gpr_4 == aot_gpr_5; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(10), static_cast(0u)); if (branch_taken) { goto L_089EBF40; } goto L_089EBEB8; } L_089EBEB8: aot_gpr_6 = (ctx.gpr[19] | 0u); if (aot_gpr_6 == 0u) { aot_gpr_4 = (aot_gpr_4 + static_cast(64)); goto L_089EBF38; } goto L_089EBEC4; L_089EBEC4: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(0), aot_gpr_7); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(4), aot_gpr_7); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(8), aot_gpr_7); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(12), aot_gpr_7); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(16), aot_gpr_7); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(20), aot_gpr_7); aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(24))); aot_mem.aot_direct_store8(aot_gpr_6 + static_cast(24), static_cast(aot_gpr_7)); aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(25))); aot_mem.aot_direct_store8(aot_gpr_6 + static_cast(25), static_cast(aot_gpr_7)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(28))); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(28), std::bit_cast(aot_fpr_12)); aot_gpr_7 = (aot_gpr_4 + static_cast(32)); { const std::uint32_t vfpu_address = aot_gpr_7 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_7 = (aot_gpr_6 + static_cast(32)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_7 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_7 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(48))); aot_mem.aot_direct_store8(aot_gpr_6 + static_cast(48), static_cast(aot_gpr_7)); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(52))); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(52), aot_gpr_7); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(56))); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(56), aot_gpr_7); aot_gpr_4 = (aot_gpr_4 + static_cast(64)); goto L_089EBF38; L_089EBF38: { const bool branch_taken = aot_gpr_4 != aot_gpr_5; ctx.gpr[19] = (ctx.gpr[19] + static_cast(64)); if (branch_taken) { goto L_089EBEB8; } goto L_089EBF40; } L_089EBF40: ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); { const bool branch_taken = ctx.gpr[21] == ctx.gpr[20]; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(11), static_cast(0u)); if (branch_taken) { goto L_089EBF68; } goto L_089EBF50; } L_089EBF50: aot_gpr_4 = (ctx.gpr[21] | 0u); goto L_089EBF54; L_089EBF54: aot_gpr_31 = (0x089EBF5Cu); aot_gpr_5 = (0u | 2u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0122. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 646u, 0x089EBF5Cu, 0x089EC4BCu)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 52u, aot_mem); #else recomp_unit_0122_entry(rt, ctx, 52u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 52u, 0x089EC4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EBF5Cu) goto L_089EBF5C; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EBF5C: ctx.gpr[21] = (ctx.gpr[21] + static_cast(64)); { const bool branch_taken = ctx.gpr[21] != ctx.gpr[20]; aot_gpr_4 = (ctx.gpr[21] | 0u); if (branch_taken) { goto L_089EBF54; } goto L_089EBF68; } L_089EBF68: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; if (branch_taken) { goto L_089EBF7C; } goto L_089EBF74; } L_089EBF74: aot_gpr_31 = (0x089EBF7Cu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08ABE398, 174u, 482u, 0x08ABE398u>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[8], 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, 482u, 0x08ABE398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EBF7Cu) goto L_089EBF7C; AOT_REGCACHE_SYNC_OUT(); return; L_089EBF7C: aot_gpr_4 = (ctx.gpr[17] << 6u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(0), ctx.gpr[18]); aot_gpr_4 = (ctx.gpr[18] + aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(4), ctx.gpr[19]); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(8), aot_gpr_4); { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(28), 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(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_089EBFB4: aot_gpr_29 = (aot_gpr_29 + static_cast(-112)); { const std::uint32_t aot_run_words[5]{std::bit_cast(aot_fpr_20), ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(84), aot_run_words); } aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_12)); ctx.gpr[18] = (aot_gpr_5 | 0u); ctx.gpr[16] = (aot_gpr_4 | 0u); ctx.gpr[17] = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089EBFE4u); aot_gpr_4 = (ctx.gpr[17] | 0u); // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0122. #if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) AOT_REGCACHE_SYNC_OUT(); if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 651u, 0x089EBFE4u, 0x089EC460u)) { #if defined(__clang__) [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 51u, aot_mem); #else recomp_unit_0122_entry(rt, ctx, 51u, aot_mem); return; #endif } return; #else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 51u, 0x089EC460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EBFE4u) goto L_089EBFE4; AOT_REGCACHE_SYNC_OUT(); return; #endif L_089EBFE4: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(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(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words); float vfpu_value[4]{ std::bit_cast(vfpu_words[0]), std::bit_cast(vfpu_words[1]), std::bit_cast(vfpu_words[2]), std::bit_cast(vfpu_words[3])}; ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); } aot_gpr_4 = (aot_gpr_29 + static_cast(48)); { float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value); const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); ctx.pc = 0x089EC000u; AOT_REGCACHE_SYNC_OUT(); return; } #undef AOT_REGCACHE_SYNC_IN #undef AOT_REGCACHE_SYNC_OUT void recomp_unit_0121(Runtime &rt, AllegrexContext &ctx) { auto aot_mem = rt.memory().aot_fast_view(); recomp_unit_0121_entry(rt, ctx, 0u, aot_mem); } void register_generated_unit_121(Runtime &runtime) { runtime.register_generated_unit(121u, 0x089E8000u, 16384u, &recomp_unit_0121, &recomp_unit_0121_entry); // PSPRECOMP_V812_COMPACT_REGISTRATION: same entry set, looped once in Runtime instead of source-expanded calls. runtime.register_generated_entry_mask(0x089E8000u, &recomp_unit_0121, "recomp_unit_0121", kEntryMasks_recomp_unit_0121, 64u); } } // namespace psprecomp