mirror of
https://github.com/jessicanataliagta/PSPRecomp
synced 2026-09-26 16:49:34 -04:00
430e45bdb0
more updates
1976 lines
87 KiB
C++
1976 lines
87 KiB
C++
#include "psprecomp/runtime.hpp"
|
|
#include "generated_units.hpp"
|
|
#include <bit>
|
|
#include <cmath>
|
|
#include <cstdint>
|
|
#include <limits>
|
|
|
|
namespace psprecomp {
|
|
// PSPRECOMP_V811_COMPACT_DISPATCH: 64-slot occupancy masks + per-group base id.
|
|
static constexpr std::uint64_t kEntryMasks_recomp_unit_0225[64] = {
|
|
0x0000000010529245ull, 0x0001000000000000ull, 0x0000028984100000ull, 0x8504000201000000ull,
|
|
0x440000008A589441ull, 0x0008040040024401ull, 0x0000000000000000ull, 0x0008019011010A45ull,
|
|
0x2949210200200401ull, 0x4254924921448208ull, 0x0008423010102020ull, 0x4948000000000000ull,
|
|
0x0000051801644482ull, 0x0000010000000000ull, 0x0000000000000000ull, 0x0440900240040000ull,
|
|
0x120824210994A409ull, 0x2088222084042222ull, 0x2120210452102112ull, 0x0101004012110888ull,
|
|
0x0040820422040100ull, 0x0020104201040404ull, 0x0000000000880000ull, 0x0000200000000000ull,
|
|
0x0000004284400001ull, 0x0000000000000000ull, 0x010A100000000000ull, 0x0000000000000000ull,
|
|
0x000840040C000000ull, 0x2041008080004002ull, 0x0040010400000800ull, 0x000E410000000000ull,
|
|
0x0000000000000009ull, 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
|
|
0x0000000000000000ull, 0x0040000400010000ull, 0x0000000001400000ull, 0x000040100007C040ull,
|
|
0x0000104002801000ull, 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
|
|
0x0000000810204080ull, 0x0000000000000000ull, 0x0000000000000120ull, 0x0000080000000000ull,
|
|
0x8102040000000000ull, 0x0000000000000040ull, 0x0000000000000000ull, 0x0000000000000000ull,
|
|
0x0000022400000000ull, 0x0400420448502004ull, 0x0040040040040040ull, 0x0404400400414004ull,
|
|
0x0002000080000000ull, 0x4885020002008010ull, 0x0010001200101030ull, 0x4240C12418022090ull,
|
|
0xE061484240C06048ull, 0x081210C130084A40ull, 0x0080A10A06088020ull, 0x22090308C0311802ull,
|
|
};
|
|
static constexpr std::uint16_t kEntryBases_recomp_unit_0225[64] = {
|
|
1u, 11u, 12u, 19u, 25u, 38u, 45u, 45u, 57u, 69u, 87u, 96u, 101u, 113u, 114u, 114u,
|
|
121u, 138u, 151u, 165u, 175u, 183u, 191u, 193u, 194u, 200u, 200u, 204u, 204u, 209u, 216u, 220u,
|
|
225u, 227u, 227u, 227u, 227u, 227u, 230u, 232u, 240u, 245u, 245u, 245u, 245u, 250u, 250u, 252u,
|
|
253u, 257u, 258u, 258u, 258u, 261u, 271u, 276u, 284u, 286u, 295u, 302u, 316u, 333u, 347u, 358u,
|
|
};
|
|
void recomp_unit_0225_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) {
|
|
// PSPRECOMP_AOT_REGCACHE_BEGIN
|
|
// PSPRECOMP_AOT_REGCACHE_META gprs=12,25,3,19,5,18 fprs= gpr_occ=154 fpr_occ=0 gpr_total=249 fpr_total=0
|
|
std::uint32_t aot_gpr_12 = ctx.gpr[12];
|
|
std::uint32_t aot_gpr_25 = ctx.gpr[25];
|
|
std::uint32_t aot_gpr_3 = ctx.gpr[3];
|
|
std::uint32_t aot_gpr_19 = ctx.gpr[19];
|
|
std::uint32_t aot_gpr_5 = ctx.gpr[5];
|
|
std::uint32_t aot_gpr_18 = ctx.gpr[18];
|
|
bool aot_regcache_valid = true;
|
|
#define AOT_REGCACHE_SYNC_OUT() do { if (aot_regcache_valid) { ctx.gpr[12] = aot_gpr_12; ctx.gpr[25] = aot_gpr_25; ctx.gpr[3] = aot_gpr_3; ctx.gpr[19] = aot_gpr_19; ctx.gpr[5] = aot_gpr_5; ctx.gpr[18] = aot_gpr_18; } } while (false)
|
|
#define AOT_REGCACHE_SYNC_IN() do { if (aot_regcache_valid) { aot_gpr_12 = ctx.gpr[12]; aot_gpr_25 = ctx.gpr[25]; aot_gpr_3 = ctx.gpr[3]; aot_gpr_19 = ctx.gpr[19]; aot_gpr_5 = ctx.gpr[5]; aot_gpr_18 = ctx.gpr[18]; } } 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 - 0x08B88000u;
|
|
entry_id = 0u;
|
|
if (entry_delta < 16376u && (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_0225[entry_group];
|
|
const std::uint64_t entry_bit = 1ull << (entry_slot & 63u);
|
|
if ((entry_mask & entry_bit) != 0u) {
|
|
entry_id = static_cast<std::uint16_t>(
|
|
kEntryBases_recomp_unit_0225[entry_group] +
|
|
std::popcount(entry_mask & (entry_bit - 1ull)));
|
|
}
|
|
}
|
|
}
|
|
switch (entry_id) {
|
|
case 1u: goto L_08B88000;
|
|
case 2u: goto L_08B88008;
|
|
case 3u: goto L_08B88018;
|
|
case 4u: goto L_08B88024;
|
|
case 5u: goto L_08B88030;
|
|
case 6u: goto L_08B8803C;
|
|
case 7u: goto L_08B88044;
|
|
case 8u: goto L_08B88050;
|
|
case 9u: goto L_08B88058;
|
|
case 10u: goto L_08B88070;
|
|
case 11u: goto L_08B881C0;
|
|
case 12u: goto L_08B88250;
|
|
case 13u: goto L_08B88268;
|
|
case 14u: goto L_08B8827C;
|
|
case 15u: goto L_08B88280;
|
|
case 16u: goto L_08B8828C;
|
|
case 17u: goto L_08B8829C;
|
|
case 18u: goto L_08B882A4;
|
|
case 19u: goto L_08B88360;
|
|
case 20u: goto L_08B88384;
|
|
case 21u: goto L_08B883C8;
|
|
case 22u: goto L_08B883E0;
|
|
case 23u: goto L_08B883E8;
|
|
case 24u: goto L_08B883FC;
|
|
case 25u: goto L_08B88400;
|
|
case 26u: goto L_08B88418;
|
|
case 27u: goto L_08B88428;
|
|
case 28u: goto L_08B88430;
|
|
case 29u: goto L_08B8843C;
|
|
case 30u: goto L_08B8844C;
|
|
case 31u: goto L_08B88450;
|
|
case 32u: goto L_08B88458;
|
|
case 33u: goto L_08B88464;
|
|
case 34u: goto L_08B8846C;
|
|
case 35u: goto L_08B8847C;
|
|
case 36u: goto L_08B884E8;
|
|
case 37u: goto L_08B884F8;
|
|
case 38u: goto L_08B88500;
|
|
case 39u: goto L_08B88528;
|
|
case 40u: goto L_08B88538;
|
|
case 41u: goto L_08B88544;
|
|
case 42u: goto L_08B88578;
|
|
case 43u: goto L_08B885A8;
|
|
case 44u: goto L_08B885CC;
|
|
case 45u: goto L_08B88700;
|
|
case 46u: goto L_08B88708;
|
|
case 47u: goto L_08B88718;
|
|
case 48u: goto L_08B88724;
|
|
case 49u: goto L_08B8872C;
|
|
case 50u: goto L_08B88740;
|
|
case 51u: goto L_08B88760;
|
|
case 52u: goto L_08B88770;
|
|
case 53u: goto L_08B88790;
|
|
case 54u: goto L_08B8879C;
|
|
case 55u: goto L_08B887A0;
|
|
case 56u: goto L_08B887CC;
|
|
case 57u: goto L_08B88800;
|
|
case 58u: goto L_08B88828;
|
|
case 59u: goto L_08B88854;
|
|
case 60u: goto L_08B88884;
|
|
case 61u: goto L_08B888A0;
|
|
case 62u: goto L_08B888B4;
|
|
case 63u: goto L_08B888C0;
|
|
case 64u: goto L_08B888CC;
|
|
case 65u: goto L_08B888D8;
|
|
case 66u: goto L_08B888E0;
|
|
case 67u: goto L_08B888EC;
|
|
case 68u: goto L_08B888F4;
|
|
case 69u: goto L_08B8890C;
|
|
case 70u: goto L_08B88924;
|
|
case 71u: goto L_08B8893C;
|
|
case 72u: goto L_08B88948;
|
|
case 73u: goto L_08B88958;
|
|
case 74u: goto L_08B88960;
|
|
case 75u: goto L_08B88974;
|
|
case 76u: goto L_08B88980;
|
|
case 77u: goto L_08B8898C;
|
|
case 78u: goto L_08B88998;
|
|
case 79u: goto L_08B889A4;
|
|
case 80u: goto L_08B889B0;
|
|
case 81u: goto L_08B889BC;
|
|
case 82u: goto L_08B889C8;
|
|
case 83u: goto L_08B889D0;
|
|
case 84u: goto L_08B889D8;
|
|
case 85u: goto L_08B889E4;
|
|
case 86u: goto L_08B889F8;
|
|
case 87u: goto L_08B88A14;
|
|
case 88u: goto L_08B88A34;
|
|
case 89u: goto L_08B88A50;
|
|
case 90u: goto L_08B88A70;
|
|
case 91u: goto L_08B88A90;
|
|
case 92u: goto L_08B88A94;
|
|
case 93u: goto L_08B88AA4;
|
|
case 94u: goto L_08B88AB8;
|
|
case 95u: goto L_08B88ACC;
|
|
case 96u: goto L_08B88BCC;
|
|
case 97u: goto L_08B88BD8;
|
|
case 98u: goto L_08B88BE0;
|
|
case 99u: goto L_08B88BEC;
|
|
case 100u: goto L_08B88BF8;
|
|
case 101u: goto L_08B88C04;
|
|
case 102u: goto L_08B88C1C;
|
|
case 103u: goto L_08B88C28;
|
|
case 104u: goto L_08B88C38;
|
|
case 105u: goto L_08B88C48;
|
|
case 106u: goto L_08B88C54;
|
|
case 107u: goto L_08B88C58;
|
|
case 108u: goto L_08B88C60;
|
|
case 109u: goto L_08B88C8C;
|
|
case 110u: goto L_08B88C90;
|
|
case 111u: goto L_08B88CA0;
|
|
case 112u: goto L_08B88CA8;
|
|
case 113u: goto L_08B88DA0;
|
|
case 114u: goto L_08B88F48;
|
|
case 115u: goto L_08B88F78;
|
|
case 116u: goto L_08B88F84;
|
|
case 117u: goto L_08B88FB0;
|
|
case 118u: goto L_08B88FBC;
|
|
case 119u: goto L_08B88FD8;
|
|
case 120u: goto L_08B88FE8;
|
|
case 121u: goto L_08B89000;
|
|
case 122u: goto L_08B8900C;
|
|
case 123u: goto L_08B89028;
|
|
case 124u: goto L_08B89034;
|
|
case 125u: goto L_08B8903C;
|
|
case 126u: goto L_08B89048;
|
|
case 127u: goto L_08B89050;
|
|
case 128u: goto L_08B8905C;
|
|
case 129u: goto L_08B89060;
|
|
case 130u: goto L_08B8906C;
|
|
case 131u: goto L_08B89080;
|
|
case 132u: goto L_08B89094;
|
|
case 133u: goto L_08B890A8;
|
|
case 134u: goto L_08B890B4;
|
|
case 135u: goto L_08B890CC;
|
|
case 136u: goto L_08B890E4;
|
|
case 137u: goto L_08B890F0;
|
|
case 138u: goto L_08B89104;
|
|
case 139u: goto L_08B89114;
|
|
case 140u: goto L_08B89124;
|
|
case 141u: goto L_08B89134;
|
|
case 142u: goto L_08B89148;
|
|
case 143u: goto L_08B89168;
|
|
case 144u: goto L_08B8917C;
|
|
case 145u: goto L_08B89194;
|
|
case 146u: goto L_08B891A4;
|
|
case 147u: goto L_08B891B4;
|
|
case 148u: goto L_08B891CC;
|
|
case 149u: goto L_08B891DC;
|
|
case 150u: goto L_08B891F4;
|
|
case 151u: goto L_08B89204;
|
|
case 152u: goto L_08B89210;
|
|
case 153u: goto L_08B89220;
|
|
case 154u: goto L_08B89234;
|
|
case 155u: goto L_08B89250;
|
|
case 156u: goto L_08B89264;
|
|
case 157u: goto L_08B89270;
|
|
case 158u: goto L_08B89278;
|
|
case 159u: goto L_08B89288;
|
|
case 160u: goto L_08B892A0;
|
|
case 161u: goto L_08B892B4;
|
|
case 162u: goto L_08B892D4;
|
|
case 163u: goto L_08B892E0;
|
|
case 164u: goto L_08B892F4;
|
|
case 165u: goto L_08B8930C;
|
|
case 166u: goto L_08B8931C;
|
|
case 167u: goto L_08B8932C;
|
|
case 168u: goto L_08B89340;
|
|
case 169u: goto L_08B89350;
|
|
case 170u: goto L_08B89364;
|
|
case 171u: goto L_08B89370;
|
|
case 172u: goto L_08B89398;
|
|
case 173u: goto L_08B893C0;
|
|
case 174u: goto L_08B893E0;
|
|
case 175u: goto L_08B89420;
|
|
case 176u: goto L_08B89448;
|
|
case 177u: goto L_08B89464;
|
|
case 178u: goto L_08B89474;
|
|
case 179u: goto L_08B89488;
|
|
case 180u: goto L_08B894A4;
|
|
case 181u: goto L_08B894BC;
|
|
case 182u: goto L_08B894D8;
|
|
case 183u: goto L_08B89508;
|
|
case 184u: goto L_08B89528;
|
|
case 185u: goto L_08B89548;
|
|
case 186u: goto L_08B89560;
|
|
case 187u: goto L_08B89584;
|
|
case 188u: goto L_08B89598;
|
|
case 189u: goto L_08B895B0;
|
|
case 190u: goto L_08B895D4;
|
|
case 191u: goto L_08B8964C;
|
|
case 192u: goto L_08B8965C;
|
|
case 193u: goto L_08B897B4;
|
|
case 194u: goto L_08B89800;
|
|
case 195u: goto L_08B89858;
|
|
case 196u: goto L_08B89868;
|
|
case 197u: goto L_08B8987C;
|
|
case 198u: goto L_08B89884;
|
|
case 199u: goto L_08B89898;
|
|
case 200u: goto L_08B89AB0;
|
|
case 201u: goto L_08B89AC4;
|
|
case 202u: goto L_08B89ACC;
|
|
case 203u: goto L_08B89AE0;
|
|
case 204u: goto L_08B89C68;
|
|
case 205u: goto L_08B89C6C;
|
|
case 206u: goto L_08B89C88;
|
|
case 207u: goto L_08B89CB8;
|
|
case 208u: goto L_08B89CCC;
|
|
case 209u: goto L_08B89D04;
|
|
case 210u: goto L_08B89D38;
|
|
case 211u: goto L_08B89D7C;
|
|
case 212u: goto L_08B89D9C;
|
|
case 213u: goto L_08B89DC0;
|
|
case 214u: goto L_08B89DD8;
|
|
case 215u: goto L_08B89DF4;
|
|
case 216u: goto L_08B89E2C;
|
|
case 217u: goto L_08B89E88;
|
|
case 218u: goto L_08B89EA0;
|
|
case 219u: goto L_08B89ED8;
|
|
case 220u: goto L_08B89FA0;
|
|
case 221u: goto L_08B89FB8;
|
|
case 222u: goto L_08B89FC4;
|
|
case 223u: goto L_08B89FC8;
|
|
case 224u: goto L_08B89FCC;
|
|
case 225u: goto L_08B8A000;
|
|
case 226u: goto L_08B8A00C;
|
|
case 227u: goto L_08B8A540;
|
|
case 228u: goto L_08B8A588;
|
|
case 229u: goto L_08B8A5D8;
|
|
case 230u: goto L_08B8A658;
|
|
case 231u: goto L_08B8A660;
|
|
case 232u: goto L_08B8A718;
|
|
case 233u: goto L_08B8A738;
|
|
case 234u: goto L_08B8A73C;
|
|
case 235u: goto L_08B8A740;
|
|
case 236u: goto L_08B8A744;
|
|
case 237u: goto L_08B8A748;
|
|
case 238u: goto L_08B8A790;
|
|
case 239u: goto L_08B8A7B8;
|
|
case 240u: goto L_08B8A830;
|
|
case 241u: goto L_08B8A85C;
|
|
case 242u: goto L_08B8A864;
|
|
case 243u: goto L_08B8A898;
|
|
case 244u: goto L_08B8A8B0;
|
|
case 245u: goto L_08B8AC1C;
|
|
case 246u: goto L_08B8AC38;
|
|
case 247u: goto L_08B8AC54;
|
|
case 248u: goto L_08B8AC70;
|
|
case 249u: goto L_08B8AC8C;
|
|
case 250u: goto L_08B8AE14;
|
|
case 251u: goto L_08B8AE20;
|
|
case 252u: goto L_08B8AFAC;
|
|
case 253u: goto L_08B8B0A8;
|
|
case 254u: goto L_08B8B0C4;
|
|
case 255u: goto L_08B8B0E0;
|
|
case 256u: goto L_08B8B0FC;
|
|
case 257u: goto L_08B8B118;
|
|
case 258u: goto L_08B8B488;
|
|
case 259u: goto L_08B8B494;
|
|
case 260u: goto L_08B8B4A4;
|
|
case 261u: goto L_08B8B508;
|
|
case 262u: goto L_08B8B534;
|
|
case 263u: goto L_08B8B550;
|
|
case 264u: goto L_08B8B558;
|
|
case 265u: goto L_08B8B56C;
|
|
case 266u: goto L_08B8B578;
|
|
case 267u: goto L_08B8B588;
|
|
case 268u: goto L_08B8B5A4;
|
|
case 269u: goto L_08B8B5B8;
|
|
case 270u: goto L_08B8B5E8;
|
|
case 271u: goto L_08B8B618;
|
|
case 272u: goto L_08B8B648;
|
|
case 273u: goto L_08B8B678;
|
|
case 274u: goto L_08B8B6A8;
|
|
case 275u: goto L_08B8B6D8;
|
|
case 276u: goto L_08B8B708;
|
|
case 277u: goto L_08B8B738;
|
|
case 278u: goto L_08B8B740;
|
|
case 279u: goto L_08B8B758;
|
|
case 280u: goto L_08B8B788;
|
|
case 281u: goto L_08B8B7B8;
|
|
case 282u: goto L_08B8B7C8;
|
|
case 283u: goto L_08B8B7E8;
|
|
case 284u: goto L_08B8B87C;
|
|
case 285u: goto L_08B8B8C4;
|
|
case 286u: goto L_08B8B910;
|
|
case 287u: goto L_08B8B93C;
|
|
case 288u: goto L_08B8B964;
|
|
case 289u: goto L_08B8B9A4;
|
|
case 290u: goto L_08B8B9C0;
|
|
case 291u: goto L_08B8B9C8;
|
|
case 292u: goto L_08B8B9DC;
|
|
case 293u: goto L_08B8B9EC;
|
|
case 294u: goto L_08B8B9F8;
|
|
case 295u: goto L_08B8BA10;
|
|
case 296u: goto L_08B8BA14;
|
|
case 297u: goto L_08B8BA30;
|
|
case 298u: goto L_08B8BA50;
|
|
case 299u: goto L_08B8BA84;
|
|
case 300u: goto L_08B8BA90;
|
|
case 301u: goto L_08B8BAD0;
|
|
case 302u: goto L_08B8BB10;
|
|
case 303u: goto L_08B8BB1C;
|
|
case 304u: goto L_08B8BB34;
|
|
case 305u: goto L_08B8BB44;
|
|
case 306u: goto L_08B8BB6C;
|
|
case 307u: goto L_08B8BB70;
|
|
case 308u: goto L_08B8BB88;
|
|
case 309u: goto L_08B8BB94;
|
|
case 310u: goto L_08B8BBA0;
|
|
case 311u: goto L_08B8BBB8;
|
|
case 312u: goto L_08B8BBBC;
|
|
case 313u: goto L_08B8BBD8;
|
|
case 314u: goto L_08B8BBE4;
|
|
case 315u: goto L_08B8BBF8;
|
|
case 316u: goto L_08B8BC0C;
|
|
case 317u: goto L_08B8BC18;
|
|
case 318u: goto L_08B8BC34;
|
|
case 319u: goto L_08B8BC38;
|
|
case 320u: goto L_08B8BC58;
|
|
case 321u: goto L_08B8BC5C;
|
|
case 322u: goto L_08B8BC78;
|
|
case 323u: goto L_08B8BC84;
|
|
case 324u: goto L_08B8BC98;
|
|
case 325u: goto L_08B8BCAC;
|
|
case 326u: goto L_08B8BCB8;
|
|
case 327u: goto L_08B8BCC0;
|
|
case 328u: goto L_08B8BCD4;
|
|
case 329u: goto L_08B8BCD8;
|
|
case 330u: goto L_08B8BCF4;
|
|
case 331u: goto L_08B8BCF8;
|
|
case 332u: goto L_08B8BCFC;
|
|
case 333u: goto L_08B8BD18;
|
|
case 334u: goto L_08B8BD24;
|
|
case 335u: goto L_08B8BD2C;
|
|
case 336u: goto L_08B8BD38;
|
|
case 337u: goto L_08B8BD4C;
|
|
case 338u: goto L_08B8BD70;
|
|
case 339u: goto L_08B8BD74;
|
|
case 340u: goto L_08B8BD80;
|
|
case 341u: goto L_08B8BD98;
|
|
case 342u: goto L_08B8BD9C;
|
|
case 343u: goto L_08B8BDB0;
|
|
case 344u: goto L_08B8BDC4;
|
|
case 345u: goto L_08B8BDD0;
|
|
case 346u: goto L_08B8BDEC;
|
|
case 347u: goto L_08B8BE14;
|
|
case 348u: goto L_08B8BE3C;
|
|
case 349u: goto L_08B8BE4C;
|
|
case 350u: goto L_08B8BE64;
|
|
case 351u: goto L_08B8BE68;
|
|
case 352u: goto L_08B8BE84;
|
|
case 353u: goto L_08B8BE8C;
|
|
case 354u: goto L_08B8BEA0;
|
|
case 355u: goto L_08B8BEB4;
|
|
case 356u: goto L_08B8BEBC;
|
|
case 357u: goto L_08B8BEDC;
|
|
case 358u: goto L_08B8BF04;
|
|
case 359u: goto L_08B8BF2C;
|
|
case 360u: goto L_08B8BF30;
|
|
case 361u: goto L_08B8BF40;
|
|
case 362u: goto L_08B8BF50;
|
|
case 363u: goto L_08B8BF54;
|
|
case 364u: goto L_08B8BF78;
|
|
case 365u: goto L_08B8BF7C;
|
|
case 366u: goto L_08B8BF8C;
|
|
case 367u: goto L_08B8BFA0;
|
|
case 368u: goto L_08B8BFA4;
|
|
case 369u: goto L_08B8BFC0;
|
|
case 370u: goto L_08B8BFCC;
|
|
case 371u: goto L_08B8BFE4;
|
|
case 372u: goto L_08B8BFF4;
|
|
default:
|
|
if (local_transfers == 0u) rt.unsupported(ctx.pc, 0u, "invalid internal function entry");
|
|
else ctx.pc = local_pc;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
}
|
|
// PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit.
|
|
LOCAL_SCHED_BOUNDARY:
|
|
ctx.pc = jump_target;
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
if (local_redispatch_rounds < 7u && rt.continue_generated_local_dispatch(ctx)) {
|
|
++local_redispatch_rounds;
|
|
AOT_REGCACHE_SYNC_IN();
|
|
local_transfers = 0u;
|
|
local_pc = ctx.pc;
|
|
entry_id = 0u;
|
|
goto LOCAL_DISPATCH;
|
|
}
|
|
return;
|
|
L_08B88000:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88000u, 0x73726579u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88008:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88008u, 0x67676F54u, "vfpu1 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88018:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88018u, 0x6E6F4372u, "vfpu3 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88024:
|
|
ctx.execute_vfpu_compare3_ct<73u, 115u, 76u, 1u, 6u>();
|
|
if (aot_gpr_3 == aot_gpr_12) {
|
|
ctx.execute_vfpu_vscl_ct<108u, 97u, 121u, 1u>();
|
|
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0231_entry, 231u, 11u, 0x08BA05B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
goto L_08B88030;
|
|
L_08B88030:
|
|
ctx.execute_vfpu_compare3_ct<114u, 68u, 114u, 1u, 6u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88034u, 0x6E696E77u, "vfpu3 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8803C:
|
|
if (aot_gpr_3 == ctx.gpr[16]) {
|
|
ctx.execute_vfpu_vscl_ct<108u, 97u, 121u, 1u>();
|
|
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0231_entry, 231u, 9u, 0x08BA0574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
goto L_08B88044;
|
|
L_08B88044:
|
|
ctx.execute_vfpu_vcmp_ct<67u, 111u, 1u, 2u>();
|
|
if (aot_gpr_3 != aot_gpr_18) {
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8804Cu, 0x7261436Fu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0232_entry, 232u, 186u, 0x08BA5608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
goto L_08B88050;
|
|
L_08B88050:
|
|
ctx.execute_vfpu_compare3_ct<67u, 111u, 108u, 1u, 6u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88054u, 0x00007275u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88058:
|
|
ctx.execute_vfpu_vcmp_ct<115u, 80u, 1u, 9u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8805Cu, 0x72657961u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88070:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88074u, 0x08B166C8u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B881C0:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B881C4u, 0x08B186E0u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88250:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88250u, 0x2061754Cu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88268:
|
|
ctx.gpr[4] = (ctx.gpr[26] < static_cast<std::uint32_t>(20301) ? 1u : 0u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8826Cu, 0x4142494Cu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8827C:
|
|
{ const std::int64_t product = static_cast<std::int64_t>(static_cast<std::int32_t>(0u)) * static_cast<std::int64_t>(static_cast<std::int32_t>(0u)); ctx.lo = static_cast<std::uint32_t>(product); ctx.hi = static_cast<std::uint32_t>(static_cast<std::uint64_t>(product) >> 32u); }
|
|
goto L_08B88280;
|
|
L_08B88280:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88280u, 0x43534944u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8828C:
|
|
aot_gpr_5 = (ctx.gpr[26] < static_cast<std::uint32_t>(19777) ? 1u : 0u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88290u, 0x44525355u, "unsupported CFC1 control register"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
if (ctx.gpr[17] == ctx.gpr[15]) {
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88298u, 0x41444E55u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0230_entry, 230u, 11u, 0x08B9CBBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
goto L_08B8829C;
|
|
L_08B8829C:
|
|
if (ctx.gpr[1] == ctx.gpr[15]) {
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B882A0u, 0x4D2F5053u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0229_entry, 229u, 21u, 0x08B987F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
goto L_08B882A4;
|
|
L_08B882A4:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B882A4u, 0x4C55444Fu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88360:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88364u, 0x08BB2C0Cu, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88384:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88388u, 0x08BB2C54u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B883C8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B883CCu, 0x08B2542Cu, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B883E0:
|
|
if (ctx.gpr[27] == ctx.gpr[4]) {
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B883E4u, 0x74697270u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0231_entry, 231u, 43u, 0x08BA14E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
goto L_08B883E8;
|
|
L_08B883E8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B883E8u, 0x696C4265u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B883FC:
|
|
goto L_08B88400;
|
|
L_08B88400:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88400u, 0x4C646441u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88418:
|
|
ctx.execute_vfpu_compare3_ct<82u, 101u, 109u, 1u, 6u>();
|
|
ctx.execute_vfpu_compare3_ct<118u, 101u, 76u, 1u, 6u>();
|
|
if (aot_gpr_19 == aot_gpr_12) {
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88424u, 0x72616461u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0231_entry, 231u, 17u, 0x08BA09B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
goto L_08B88428;
|
|
L_08B88428:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88428u, 0x70696C42u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88430:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88430u, 0x42746553u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8843C:
|
|
ctx.execute_vfpu_compare3_ct<108u, 101u, 70u, 1u, 6u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88440u, 0x616C5072u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8844C:
|
|
goto L_08B88450;
|
|
L_08B88450:
|
|
if (aot_gpr_19 == ctx.gpr[20]) {
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88454u, 0x72616461u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0231_entry, 231u, 53u, 0x08BA19A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
goto L_08B88458;
|
|
L_08B88458:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88458u, 0x70696C42u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88464:
|
|
if (aot_gpr_19 == ctx.gpr[20]) {
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88468u, 0x72616461u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0231_entry, 231u, 54u, 0x08BA19B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
goto L_08B8846C;
|
|
L_08B8846C:
|
|
ctx.execute_vfpu_vscl_ct<84u, 111u, 84u, 1u>();
|
|
ctx.execute_vfpu_compare3_ct<97u, 109u, 67u, 1u, 6u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88474u, 0x72756F6Cu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8847C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88480u, 0x08B24924u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B884E8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B884E8u, 0x4E414843u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B884F8:
|
|
if (ctx.gpr[26] == ctx.gpr[31]) {
|
|
(void)(ctx.gpr[9] < static_cast<std::uint32_t>(21573) ? 1u : 0u);
|
|
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0230_entry, 230u, 15u, 0x08B9CE50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
goto L_08B88500;
|
|
L_08B88500:
|
|
ctx.execute_vfpu_vscl_ct<32u, 84u, 104u, 1u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88504u, 0x61206572u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88528:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88528u, 0x4E414843u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88538:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88538u, 0x435F5450u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88544:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88544u, 0x202D2054u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88578:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8857Cu, 0x08B26D18u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B885A8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B885ACu, 0x08B36A88u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B885CC:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B885D0u, 0x08B36AF8u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88700:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88704u, 0x504D4153u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88708:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88708u, 0x495F454Cu, "cop2/vfpu not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88718:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88718u, 0x444E5552u, "unsupported CFC1 control register"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
if (static_cast<std::int32_t>(ctx.gpr[2]) > 0) {
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88720u, 0x4D5C7325u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0230_entry, 230u, 18u, 0x08B9D824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
goto L_08B88724;
|
|
L_08B88724:
|
|
if (ctx.gpr[2] == ctx.gpr[1]) {
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88728u, 0x492E7325u, "cop2/vfpu not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0229_entry, 229u, 41u, 0x08B99464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
goto L_08B8872C;
|
|
L_08B8872C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8872Cu, 0x0000474Du, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88740:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88744u, 0x08B3CEBCu, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88760:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88768u, 0x00002928u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88770:
|
|
ctx.execute_vfpu_vscl_ct<71u, 101u, 110u, 1u>();
|
|
ctx.execute_vfpu_vscl_ct<114u, 97u, 116u, 1u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88778u, 0x72656D45u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88790:
|
|
ctx.execute_vfpu_vscl_ct<71u, 101u, 110u, 1u>();
|
|
ctx.execute_vfpu_vscl_ct<114u, 97u, 116u, 1u>();
|
|
if (aot_gpr_19 == aot_gpr_5) {
|
|
ctx.execute_vfpu_compare3_ct<97u, 110u, 100u, 1u, 6u>();
|
|
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0232_entry, 232u, 4u, 0x08BA40D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
goto L_08B887A0;
|
|
L_08B8879C:
|
|
ctx.execute_vfpu_compare3_ct<97u, 110u, 100u, 1u, 6u>();
|
|
goto L_08B887A0;
|
|
L_08B887A0:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B887A0u, 0x7261436Du, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B887CC:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B887D0u, 0x08B468F8u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88800:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88804u, 0x08B4692Cu, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88828:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8882Cu, 0x08B4D4E4u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88854:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88858u, 0x08B4D18Cu, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88884:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88888u, 0x08B4D4CCu, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B888A0:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B888A0u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B888B4:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B888B4u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B888C0:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B888C0u, 0x4D643365u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B888CC:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B888CCu, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B888D8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B888D8u, 0x68746C61u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B888E0:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B888E0u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B888EC:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B888ECu, 0x69746973u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B888F4:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B888F4u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8890C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8890Cu, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88924:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88924u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8893C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8893Cu, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88948:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88948u, 0x746E6563u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88958:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88958u, 0x72657961u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88960:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88960u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88974:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88974u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88980:
|
|
ctx.execute_vfpu_vscl_ct<101u, 114u, 103u, 1u>();
|
|
if (ctx.gpr[27] == aot_gpr_25) {
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88988u, 0x00706F74u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0231_entry, 231u, 45u, 0x08BA1740u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
goto L_08B8898C;
|
|
L_08B8898C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8898Cu, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88998:
|
|
ctx.execute_vfpu_compare3_ct<114u, 68u, 111u, 1u, 6u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8899Cu, 0x636F4C72u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B889A4:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B889A4u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B889B0:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B889B0u, 0x4E736572u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B889BC:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B889BCu, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B889C8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B889C8u, 0x72756F6Cu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B889D0:
|
|
if (aot_gpr_19 != ctx.gpr[20]) {
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B889D4u, 0x63696865u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0231_entry, 231u, 86u, 0x08BA1EF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
goto L_08B889D8;
|
|
L_08B889D8:
|
|
ctx.execute_vfpu_compare3_ct<108u, 101u, 67u, 1u, 6u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B889DCu, 0x72756F6Cu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B889E4:
|
|
ctx.execute_vfpu_vscl_ct<73u, 115u, 86u, 1u>();
|
|
ctx.execute_vfpu_vcmp_ct<105u, 99u, 1u, 8u>();
|
|
ctx.execute_vfpu_vscl_ct<101u, 87u, 114u, 1u>();
|
|
ctx.execute_vfpu_vec3_ct<99u, 107u, 101u, 1u, 2u>();
|
|
goto L_08B889F8;
|
|
L_08B889F8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B889F8u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88A14:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88A14u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88A34:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88A34u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88A50:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88A50u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88A70:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88A70u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88A90:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88A90u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88A94:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88A94u, 0x41656C63u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88AA4:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88AA4u, 0x696D694Cu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88AB8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88AB8u, 0x69686556u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88ACC:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88AD0u, 0x08B52A68u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88BCC:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88BCCu, 0x4C524143u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88BD8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88BD8u, 0x44454B43u, "unsupported CFC1 control register"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
goto L_08B88BE0;
|
|
L_08B88BE0:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88BE0u, 0x4C524143u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88BEC:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88BECu, 0x4F4C5F31u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88BF8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88BF8u, 0x4C524143u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88C04:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88C04u, 0x4F4C5F32u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88C1C:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load_word_left(ctx.gpr[20] + static_cast<std::uint32_t>(-32143), ctx.gpr[4]));
|
|
aot_gpr_18 = (ctx.gpr[17] & 12850u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88C24u, 0x44454B46u, "unsupported CFC1 control register"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
goto L_08B88C28;
|
|
L_08B88C28:
|
|
(void)(static_cast<std::uint32_t>(static_cast<std::int32_t>(0u) >> 0u));
|
|
if (!([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_ok_ = ctx.execute_signed_add(0u, 0u, 0u); AOT_REGCACHE_SYNC_IN(); return aot_regcache_ok_; }())) { rt.arithmetic_overflow(0x08B88C2Cu, 0x00000020u); AOT_REGCACHE_SYNC_OUT(); return; }
|
|
(void)(0u << 16u);
|
|
(void)(static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(0u + static_cast<std::uint32_t>(0))))));
|
|
goto L_08B88C38;
|
|
L_08B88C38:
|
|
(void)(static_cast<std::uint32_t>(static_cast<std::int32_t>(0u) >> 0u));
|
|
if (!([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_ok_ = ctx.execute_signed_add(0u, 0u, 0u); AOT_REGCACHE_SYNC_IN(); return aot_regcache_ok_; }())) { rt.arithmetic_overflow(0x08B88C3Cu, 0x00000020u); AOT_REGCACHE_SYNC_OUT(); return; }
|
|
(void)(0u << 16u);
|
|
(void)(static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(0u + static_cast<std::uint32_t>(0))))));
|
|
goto L_08B88C48;
|
|
L_08B88C48:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88C48u, 0x72657375u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88C54:
|
|
(void)(static_cast<std::uint32_t>(static_cast<std::int32_t>(0u) >> 1u));
|
|
goto L_08B88C58;
|
|
L_08B88C58:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88C58u, 0x6978655Fu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88C60:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88C60u, 0x6362696Cu, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88C8C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88C90u, 0x72657355u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
ctx.pc = 0x02D54A70u; (void)([&]() { 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_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88C90:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88C90u, 0x72657355u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88CA0:
|
|
(void)(static_cast<std::uint32_t>(static_cast<std::int32_t>(0u) >> 1u));
|
|
goto L_08B88CA8;
|
|
L_08B88CA8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88CA8u, 0x676E750Au, "vfpu1 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88DA0:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88DA4u, 0x08B56BE8u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88F48:
|
|
ctx.execute_vfpu_vscl_ct<97u, 115u, 115u, 1u>();
|
|
ctx.execute_vfpu_compare3_ct<114u, 116u, 105u, 1u, 6u>();
|
|
ctx.gpr[2] = (ctx.gpr[9] + static_cast<std::uint32_t>(8302));
|
|
ctx.execute_vfpu_vhdp_ct<115u, 34u, 32u, 1u>();
|
|
ctx.execute_vfpu_vscl_ct<97u, 105u, 108u, 1u>();
|
|
ctx.execute_vfpu_vhdp_ct<100u, 58u, 32u, 1u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88F60u, 0x20656C69u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88F78:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88F78u, 0x4A532D43u, "cop2/vfpu not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88F84:
|
|
ctx.gpr[9] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[16]) >> 9u));
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88F88u, 0x494A2D43u, "cop2/vfpu not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88FB0:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88FB0u, 0x20746F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88FBC:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88FBCu, 0x73206F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88FD8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88FD8u, 0x73206F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B88FE8:
|
|
ctx.execute_vfpu_vscl_ct<73u, 110u, 116u, 1u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B88FECu, 0x70757272u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89000:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89000u, 0x204F2F49u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8900C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8900Cu, 0x73206F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89028:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89028u, 0x20677241u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89034:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89034u, 0x6E6F6C20u, "vfpu3 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8903C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8903Cu, 0x63657845u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89048:
|
|
ctx.execute_vfpu_compare3_ct<101u, 114u, 114u, 1u, 6u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8904Cu, 0x00000072u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89050:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89050u, 0x20646142u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8905C:
|
|
if (!([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_ok_ = ctx.execute_signed_sub(12u, 3u, 18u); AOT_REGCACHE_SYNC_IN(); return aot_regcache_ok_; }())) { rt.arithmetic_overflow(0x08B8905Cu, 0x00726562u); AOT_REGCACHE_SYNC_OUT(); return; }
|
|
goto L_08B89060;
|
|
L_08B89060:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89060u, 0x63206F4Eu, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8906C:
|
|
ctx.execute_vfpu_vminmax_ct<78u, 111u, 32u, 1u, false>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89070u, 0x2065726Fu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89080:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89080u, 0x20746F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89094:
|
|
ctx.execute_vfpu_vminmax_ct<80u, 101u, 114u, 1u, false>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89098u, 0x69737369u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B890A8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B890A8u, 0x20646142u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B890B4:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B890B4u, 0x636F6C42u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B890CC:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B890CCu, 0x69766544u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B890E4:
|
|
ctx.execute_vfpu_vscl_ct<70u, 105u, 108u, 1u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B890E8u, 0x69786520u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B890F0:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B890F0u, 0x736F7243u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89104:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89104u, 0x73206F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89114:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89114u, 0x20746F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89124:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89124u, 0x61207349u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89134:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89134u, 0x61766E49u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89148:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89148u, 0x206F6F54u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89168:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89168u, 0x206F6F54u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8917C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8917Cu, 0x20746F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89194:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89194u, 0x74786554u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B891A4:
|
|
ctx.execute_vfpu_vscl_ct<70u, 105u, 108u, 1u>();
|
|
ctx.execute_vfpu_compare3_ct<32u, 116u, 111u, 1u, 6u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B891ACu, 0x72616C20u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B891B4:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B891B4u, 0x73206F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B891CC:
|
|
ctx.execute_vfpu_vscl_ct<73u, 108u, 108u, 1u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B891D0u, 0x206C6167u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B891DC:
|
|
ctx.execute_vfpu_vec3_ct<82u, 101u, 97u, 1u, 2u>();
|
|
ctx.execute_vfpu_vcmp_ct<111u, 110u, 1u, 13u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B891E4u, 0x69662079u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B891F4:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B891F4u, 0x206F6F54u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89204:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89204u, 0x6B6F7242u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89210:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89210u, 0x6874614Du, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89220:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89220u, 0x75736552u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89234:
|
|
ctx.execute_vfpu_vminmax_ct<78u, 111u, 32u, 1u, false>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89238u, 0x61737365u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89250:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89250u, 0x6E656449u, "vfpu3 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89264:
|
|
ctx.execute_vfpu_vec3_ct<68u, 101u, 97u, 1u, 2u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89268u, 0x6B636F6Cu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89270:
|
|
ctx.execute_vfpu_vcmp_ct<111u, 32u, 1u, 14u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89274u, 0x006B636Fu, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89278:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89278u, 0x20746F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89288:
|
|
ctx.execute_vfpu_vscl_ct<83u, 116u, 114u, 1u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8928Cu, 0x69206D61u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B892A0:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B892A0u, 0x73206F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B892B4:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B892B4u, 0x6863614Du, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B892D4:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B892D4u, 0x70206F4Eu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B892E0:
|
|
ctx.execute_vfpu_compare3_ct<82u, 101u, 115u, 1u, 6u>();
|
|
ctx.execute_vfpu_vscl_ct<117u, 114u, 99u, 1u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B892E8u, 0x20736920u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B892F4:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B892F4u, 0x74726956u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8930C:
|
|
ctx.execute_vfpu_vscl_ct<65u, 100u, 118u, 1u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89310u, 0x73697472u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8931C:
|
|
ctx.execute_vfpu_compare3_ct<83u, 114u, 109u, 1u, 6u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89320u, 0x20746E75u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8932C:
|
|
ctx.execute_vfpu_vminmax_ct<67u, 111u, 109u, 1u, false>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89330u, 0x63696E75u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89340:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89340u, 0x746F7250u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89350:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89350u, 0x746C754Du, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89364:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89364u, 0x20646142u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89370:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89370u, 0x6E6E6143u, "vfpu3 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89398:
|
|
ctx.execute_vfpu_vscl_ct<65u, 99u, 99u, 1u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8939Cu, 0x6E697373u, "vfpu3 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B893C0:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B893C0u, 0x62696C2Eu, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B893E0:
|
|
ctx.execute_vfpu_vscl_ct<65u, 116u, 116u, 1u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B893E4u, 0x6974706Du, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89420:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89420u, 0x6E6E6143u, "vfpu3 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89448:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89448u, 0x636E7546u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89464:
|
|
ctx.execute_vfpu_vminmax_ct<78u, 111u, 32u, 1u, false>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89468u, 0x2065726Fu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89474:
|
|
ctx.execute_vfpu_vscl_ct<68u, 105u, 114u, 1u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89478u, 0x726F7463u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89488:
|
|
ctx.execute_vfpu_vscl_ct<70u, 105u, 108u, 1u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8948Cu, 0x20726F20u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B894A4:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B894A4u, 0x206F6F54u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B894BC:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B894BCu, 0x62206F4Eu, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B894D8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B894D8u, 0x72646441u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89508:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89508u, 0x746F7250u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89528:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89528u, 0x6B636F53u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89548:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89548u, 0x746F7250u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89560:
|
|
ctx.gpr[14] = (ctx.gpr[27] + static_cast<std::uint32_t>(24899));
|
|
ctx.execute_vfpu_vscl_ct<116u, 32u, 115u, 1u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89568u, 0x6120646Eu, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89584:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89584u, 0x6E6E6F43u, "vfpu3 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89598:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89598u, 0x72646441u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B895B0:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B895B0u, 0x74666F53u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B895D4:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B895DCu, 0x08B583ECu, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8964C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89650u, 0x08B58630u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8965C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89660u, 0x08B58680u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B897B4:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B897B8u, 0x08B58D9Cu, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89800:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89804u, 0x08B58D9Cu, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89858:
|
|
ctx.execute_vfpu_vhdp_ct<45u, 73u, 110u, 1u>();
|
|
jump_target = aot_gpr_3;
|
|
ctx.gpr[13] = (0x08B89868u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89864u, 0x004E614Eu, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
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 == 0x08B89868u) goto L_08B89868;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89868:
|
|
aot_gpr_18 = (aot_gpr_25 & 12592u);
|
|
ctx.gpr[22] = (aot_gpr_25 | 13620u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89870u, 0x62613938u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8987C:
|
|
ctx.execute_vfpu_vcmp_ct<110u, 117u, 1u, 8u>();
|
|
aot_gpr_5 = (static_cast<std::int32_t>(0u) > static_cast<std::int32_t>(0u) ? 0u : 0u);
|
|
goto L_08B89884;
|
|
L_08B89884:
|
|
aot_gpr_18 = (aot_gpr_25 & 12592u);
|
|
ctx.gpr[22] = (aot_gpr_25 | 13620u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8988Cu, 0x42413938u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89898:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89898u, 0x20677562u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89AB0:
|
|
aot_gpr_18 = (aot_gpr_25 & 12592u);
|
|
ctx.gpr[22] = (aot_gpr_25 | 13620u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89AB8u, 0x62613938u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89AC4:
|
|
ctx.execute_vfpu_vcmp_ct<110u, 117u, 1u, 8u>();
|
|
aot_gpr_5 = (static_cast<std::int32_t>(0u) > static_cast<std::int32_t>(0u) ? 0u : 0u);
|
|
goto L_08B89ACC;
|
|
L_08B89ACC:
|
|
aot_gpr_18 = (aot_gpr_25 & 12592u);
|
|
ctx.gpr[22] = (aot_gpr_25 | 13620u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89AD4u, 0x42413938u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89AE0:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89AE0u, 0x20677562u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89C68:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89C68u, 0x0000002Eu, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89C6C:
|
|
(void)(static_cast<std::uint32_t>(static_cast<std::int32_t>(0u) >> 1u));
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89C74u, 0x494A2D43u, "cop2/vfpu not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89C88:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89C88u, 0x40C90FDBu, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89CB8:
|
|
ctx.gpr[11] = (static_cast<std::int32_t>(aot_gpr_25) < 17162 ? 1u : 0u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89CBCu, 0x6E757220u, "vfpu3 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89CCC:
|
|
ctx.execute_vfpu_vminmax_ct<116u, 101u, 114u, 1u, false>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89CD0u, 0x74616E69u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89D04:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89D04u, 0x75746572u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89D38:
|
|
ctx.execute_vfpu_vscl_ct<105u, 110u, 116u, 1u>();
|
|
ctx.execute_vfpu_vcmp_ct<110u, 97u, 1u, 2u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89D40u, 0x72726520u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89D7C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89D7Cu, 0x6E69616Du, "vfpu3 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89D9C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89D9Cu, 0x75702061u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89DC0:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89DC0u, 0x61766E69u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89DD8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89DD8u, 0x61766E69u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89DF4:
|
|
ctx.execute_vfpu_vscl_ct<102u, 114u, 101u, 1u>();
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89DF8u, 0x20676E69u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89E2C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89E2Cu, 0x203A7325u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89E88:
|
|
goto L_08B89EA0;
|
|
L_08B89EA0:
|
|
(void)(ctx.gpr[2] << 4u);
|
|
(void)(static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_3) >> 12u));
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89EA8u, 0x04040404u, "regimm? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89ED8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89ED8u, 0x06060606u, "regimm? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89FA0:
|
|
aot_gpr_18 = (31068u << 16u);
|
|
(void)(aot_gpr_3 & 25440u);
|
|
ctx.gpr[20] = (aot_mem.aot_direct_load_word_left(ctx.gpr[11] + static_cast<std::uint32_t>(31614), ctx.gpr[20]));
|
|
ctx.gpr[23] = (aot_gpr_19 & 34931u);
|
|
aot_gpr_18 = (ctx.gpr[17] & 12850u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89FB4u, 0x44454B46u, "unsupported CFC1 control register"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
goto L_08B89FB8;
|
|
L_08B89FB8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89FB8u, 0x62733C00u, "vfpu0 not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89FC4:
|
|
if (ctx.gpr[27] != aot_gpr_5) {
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89FC8u, 0x4D657661u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0231_entry, 231u, 107u, 0x08BA2D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
goto L_08B89FCC;
|
|
L_08B89FC8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89FC8u, 0x4D657661u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B89FCC:
|
|
ctx.gpr[13] = (aot_gpr_3 + ctx.gpr[14]);
|
|
aot_gpr_18 = (31068u << 16u);
|
|
(void)(aot_gpr_3 & 25440u);
|
|
ctx.gpr[20] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[11] + static_cast<std::uint32_t>(31614))))));
|
|
aot_gpr_18 = (ctx.gpr[17] & 34163u);
|
|
aot_gpr_18 = (ctx.gpr[17] & 12850u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B89FE4u, 0x44454B46u, "unsupported CFC1 control register"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
goto L_08B8A000;
|
|
L_08B8A000:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8A000u, 0x0032FFF9u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8A00C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8A00Cu, 0x050A0609u, "regimm? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8A540:
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[4]) > static_cast<std::int32_t>(0u) ? ctx.gpr[4] : 0u);
|
|
{ const std::int32_t dividend = static_cast<std::int32_t>(ctx.gpr[4]); const std::int32_t divisor = static_cast<std::int32_t>(ctx.gpr[2]); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast<std::uint32_t>(dividend); } else if (dividend == static_cast<std::int32_t>(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast<std::uint32_t>(dividend / divisor); ctx.hi = static_cast<std::uint32_t>(dividend % divisor); } }
|
|
(void)(ctx.lo);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8A54Cu, 0x0084201Eu, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8A588:
|
|
ctx.lo = ctx.gpr[4];
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8A58Cu, 0x00972014u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8A5D8:
|
|
goto L_08B8A658;
|
|
L_08B8A658:
|
|
goto L_08B8A660;
|
|
L_08B8A660:
|
|
goto L_08B8A718;
|
|
L_08B8A718:
|
|
goto L_08B8A738;
|
|
L_08B8A738:
|
|
goto L_08B8A73C;
|
|
L_08B8A73C:
|
|
goto L_08B8A740;
|
|
L_08B8A740:
|
|
goto L_08B8A744;
|
|
L_08B8A744:
|
|
goto L_08B8A748;
|
|
L_08B8A748:
|
|
goto L_08B8A790;
|
|
L_08B8A790:
|
|
goto L_08B8A7B8;
|
|
L_08B8A7B8:
|
|
(void)(0u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
(void)(0u << 16u);
|
|
(void)(0u << 16u);
|
|
(void)(0u << 16u);
|
|
(void)(0u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
(void)(0u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
(void)(0u << 16u);
|
|
aot_gpr_19 = (13107u << 16u);
|
|
aot_gpr_19 = (13107u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
(void)(0u << 16u);
|
|
(void)(0u << 16u);
|
|
(void)(0u << 16u);
|
|
aot_gpr_19 = (13107u << 16u);
|
|
(void)(0u << 16u);
|
|
(void)(0u << 16u);
|
|
(void)(0u << 16u);
|
|
goto L_08B8A830;
|
|
L_08B8A830:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8A834u, 0x08BAA6E0u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8A85C:
|
|
if (ctx.gpr[26] == aot_gpr_5) {
|
|
aot_gpr_19 = (ctx.gpr[10] < static_cast<std::uint32_t>(17740) ? 1u : 0u);
|
|
(void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0229_entry, 229u, 72u, 0x08B9B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
goto L_08B8A864;
|
|
L_08B8A864:
|
|
ctx.gpr[16] = (ctx.gpr[17] | 12597u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8A868u, 0x41544731u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8A898:
|
|
aot_gpr_12 = (52429u << 16u);
|
|
(void)(0u << 16u);
|
|
aot_gpr_25 = (39322u << 16u);
|
|
ctx.gpr[6] = (26214u << 16u);
|
|
aot_gpr_25 = (39322u << 16u);
|
|
aot_gpr_25 = (39322u << 16u);
|
|
goto L_08B8A8B0;
|
|
L_08B8A8B0:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8A8B0u, 0x000001F4u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8AC1C:
|
|
jump_target = 0u;
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8AC20u, 0x000003E8u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B8AC38:
|
|
ctx.gpr[1] = (0u << 18u);
|
|
(void)(ctx.hi);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8AC44u, 0x000003E8u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8AC54:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8AC58u, 0x000003E8u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8AC70:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8AC70u, 0x000003E8u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8AC8C:
|
|
(void)(ctx.hi);
|
|
jump_target = 0u;
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8AC94u, 0x000003E8u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B8AE14:
|
|
jump_target = 0u;
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8AE18u, 0x000003E8u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B8AE20:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8AE24u, 0x08BAACD4u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8AFAC:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8AFB4u, 0x08BAAE10u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B0A8:
|
|
(void)(static_cast<std::uint32_t>(static_cast<std::int32_t>(0u) >> 0u));
|
|
if (0u != 0u) (void)(0u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8B0B8u, 0x08BAAEE0u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B0C4:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8B0CCu, 0x08BAAEF0u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B0E0:
|
|
ctx.pc = 0x02EABC00u; (void)([&]() { 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_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B0FC:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8B0FCu, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B118:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8B11Cu, 0x08BAAF30u, "control flow in delay slot"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B488:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8B488u, 0x43534944u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B494:
|
|
aot_gpr_5 = (ctx.gpr[26] < static_cast<std::uint32_t>(19777) ? 1u : 0u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8B498u, 0x44525355u, "unsupported CFC1 control register"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
jump_target = ctx.gpr[1];
|
|
ctx.gpr[10] = (0x08B8B4A4u);
|
|
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 == 0x08B8B4A4u) goto L_08B8B4A4;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B4A4:
|
|
goto L_08B8B508;
|
|
L_08B8B508:
|
|
ctx.pc = 0x02EACB70u; (void)([&]() { 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_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B534:
|
|
ctx.pc = 0x02EACC30u; (void)([&]() { 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_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B550:
|
|
ctx.pc = 0x02EACC90u; (void)([&]() { 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_; }()); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B558:
|
|
jump_target = 0u;
|
|
(void)(static_cast<std::uint32_t>(static_cast<std::int32_t>(0u) >> 0u));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
// PSPRECOMP_V812_SHARED_SCHED_JUMP
|
|
goto LOCAL_SCHED_BOUNDARY;
|
|
L_08B8B56C:
|
|
(void)(0u >> 0u);
|
|
jump_target = 0u;
|
|
ctx.gpr[31] = (0x08B8B578u);
|
|
(void)(0u >> (0u & 31u));
|
|
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 == 0x08B8B578u) goto L_08B8B578;
|
|
AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B578:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8B578u, 0x00000005u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B588:
|
|
(void)(0u >> 0u);
|
|
(void)(0u >> 0u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8B590u, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B5A4:
|
|
(void)(0u >> 0u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8B5A8u, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B5B8:
|
|
(void)(0u << (0u & 31u));
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8B5CCu, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B5E8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8B5ECu, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B618:
|
|
(void)(static_cast<std::uint32_t>(static_cast<std::int32_t>(0u) >> 0u));
|
|
(void)(0u >> 0u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8B630u, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B648:
|
|
(void)(0u >> 0u);
|
|
(void)(0u >> 0u);
|
|
goto L_08B8B678;
|
|
L_08B8B678:
|
|
(void)(0u >> 0u);
|
|
goto L_08B8B6A8;
|
|
L_08B8B6A8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8B6A8u, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B6D8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8B6D8u, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B708:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8B708u, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B738:
|
|
goto L_08B8B740;
|
|
L_08B8B740:
|
|
(void)(static_cast<std::uint32_t>(std::countl_zero(0u)));
|
|
goto L_08B8B758;
|
|
L_08B8B758:
|
|
(void)(0u << 16u);
|
|
aot_gpr_19 = (13107u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
aot_gpr_19 = (13107u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
aot_gpr_12 = (52429u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8B788;
|
|
L_08B8B788:
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
aot_gpr_19 = (13107u << 16u);
|
|
(void)(0u << 16u);
|
|
aot_gpr_19 = (13107u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8B7B8;
|
|
L_08B8B7B8:
|
|
(void)(0u << 16u);
|
|
(void)(0u << 16u);
|
|
goto L_08B8B7C8;
|
|
L_08B8B7C8:
|
|
(void)(0u << 16u);
|
|
aot_gpr_25 = (39322u << 16u);
|
|
ctx.gpr[6] = (26214u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
ctx.gpr[6] = (26214u << 16u);
|
|
aot_gpr_19 = (13107u << 16u);
|
|
aot_gpr_25 = (39322u << 16u);
|
|
aot_gpr_25 = (39322u << 16u);
|
|
goto L_08B8B7E8;
|
|
L_08B8B7E8:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8B7ECu, 0x42700000u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B87C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8B87Cu, 0x42C80000u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B8C4:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8B8C4u, 0xC1C80000u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B910:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8B910u, 0x40000000u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B93C:
|
|
(void)(0u << 16u);
|
|
aot_gpr_25 = (39322u << 16u);
|
|
aot_gpr_25 = (39322u << 16u);
|
|
aot_gpr_19 = (13107u << 16u);
|
|
aot_gpr_19 = (13107u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
(void)(0u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
goto L_08B8B964;
|
|
L_08B8B964:
|
|
(void)(0u << 16u);
|
|
(void)(0u << 16u);
|
|
aot_gpr_19 = (13107u << 16u);
|
|
aot_gpr_25 = (39322u << 16u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8B974u, 0x40000000u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8B9A4:
|
|
aot_gpr_12 = (52429u << 16u);
|
|
aot_gpr_5 = (7864u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
aot_gpr_19 = (13107u << 16u);
|
|
aot_gpr_25 = (39322u << 16u);
|
|
ctx.gpr[10] = (15729u << 16u);
|
|
goto L_08B8B9C0;
|
|
L_08B8B9C0:
|
|
aot_gpr_12 = (52429u << 16u);
|
|
(void)(0u << 16u);
|
|
goto L_08B8B9C8;
|
|
L_08B8B9C8:
|
|
ctx.gpr[6] = (26214u << 16u);
|
|
ctx.gpr[6] = (26214u << 16u);
|
|
(void)(0u << 16u);
|
|
aot_gpr_25 = (39322u << 16u);
|
|
goto L_08B8B9DC;
|
|
L_08B8B9DC:
|
|
aot_gpr_5 = (7864u << 16u);
|
|
ctx.gpr[21] = (49807u << 16u);
|
|
aot_gpr_19 = (13107u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
goto L_08B8B9EC;
|
|
L_08B8B9EC:
|
|
(void)(0u << 16u);
|
|
aot_gpr_19 = (13107u << 16u);
|
|
ctx.gpr[6] = (26214u << 16u);
|
|
goto L_08B8B9F8;
|
|
L_08B8B9F8:
|
|
(void)(0u << 16u);
|
|
aot_gpr_25 = (39322u << 16u);
|
|
(void)(0u << 16u);
|
|
ctx.gpr[6] = (26214u << 16u);
|
|
(void)(0u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
goto L_08B8BA10;
|
|
L_08B8BA10:
|
|
goto L_08B8BA14;
|
|
L_08B8BA14:
|
|
goto L_08B8BA30;
|
|
L_08B8BA30:
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8BA50;
|
|
L_08B8BA50:
|
|
goto L_08B8BA84;
|
|
L_08B8BA84:
|
|
goto L_08B8BA90;
|
|
L_08B8BA90:
|
|
goto L_08B8BAD0;
|
|
L_08B8BAD0:
|
|
goto L_08B8BB10;
|
|
L_08B8BB10:
|
|
(void)(aot_gpr_5 << 0u);
|
|
(void)(static_cast<std::uint32_t>(static_cast<std::int32_t>(0u) >> (0u & 31u)));
|
|
(void)(static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[2]) >> (0u & 31u)));
|
|
goto L_08B8BB1C;
|
|
L_08B8BB1C:
|
|
(void)(ctx.gpr[7] << 0u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BB20u, 0x00000005u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BB34:
|
|
(void)(ctx.gpr[9] << 0u);
|
|
(void)(0u << (0u & 31u));
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BB3Cu, 0x00090005u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BB44:
|
|
(void)(0u >> (0u & 31u));
|
|
(void)(aot_gpr_5 >> (0u & 31u));
|
|
(void)(ctx.gpr[6] << 0u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BB50u, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BB6C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BB6Cu, 0x00080005u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BB70:
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
ctx.gpr[24] = (20972u << 16u);
|
|
aot_gpr_5 = (58196u << 16u);
|
|
ctx.gpr[24] = (20972u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8BB88;
|
|
L_08B8BB88:
|
|
aot_gpr_5 = (58196u << 16u);
|
|
aot_gpr_5 = (58196u << 16u);
|
|
goto L_08B8BB94;
|
|
L_08B8BB94:
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8BBA0;
|
|
L_08B8BBA0:
|
|
(void)(ctx.gpr[1] << 0u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BBA4u, 0x00010005u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BBB8:
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8BBBC;
|
|
L_08B8BBBC:
|
|
aot_gpr_12 = (52429u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
aot_gpr_12 = (52429u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
aot_gpr_12 = (52429u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
aot_gpr_12 = (52429u << 16u);
|
|
goto L_08B8BBD8;
|
|
L_08B8BBD8:
|
|
aot_gpr_12 = (52429u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8BBE4;
|
|
L_08B8BBE4:
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
aot_gpr_12 = (52429u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8BBF8;
|
|
L_08B8BBF8:
|
|
aot_gpr_12 = (52429u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8BC0C;
|
|
L_08B8BC0C:
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8BC18;
|
|
L_08B8BC18:
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
aot_gpr_3 = (55050u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
aot_gpr_3 = (55050u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
aot_gpr_3 = (55050u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8BC34;
|
|
L_08B8BC34:
|
|
aot_gpr_3 = (55050u << 16u);
|
|
goto L_08B8BC38;
|
|
L_08B8BC38:
|
|
aot_gpr_3 = (55050u << 16u);
|
|
aot_gpr_3 = (55050u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
aot_gpr_3 = (55050u << 16u);
|
|
aot_gpr_3 = (55050u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8BC58;
|
|
L_08B8BC58:
|
|
aot_gpr_3 = (55050u << 16u);
|
|
goto L_08B8BC5C;
|
|
L_08B8BC5C:
|
|
aot_gpr_3 = (55050u << 16u);
|
|
aot_gpr_3 = (55050u << 16u);
|
|
aot_gpr_3 = (55050u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8BC78;
|
|
L_08B8BC78:
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
aot_gpr_25 = (39322u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8BC84;
|
|
L_08B8BC84:
|
|
aot_gpr_25 = (39322u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
aot_gpr_25 = (39322u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
aot_gpr_25 = (39322u << 16u);
|
|
goto L_08B8BC98;
|
|
L_08B8BC98:
|
|
aot_gpr_25 = (39322u << 16u);
|
|
aot_gpr_25 = (39322u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
aot_gpr_25 = (39322u << 16u);
|
|
goto L_08B8BCAC;
|
|
L_08B8BCAC:
|
|
aot_gpr_25 = (39322u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8BCB8;
|
|
L_08B8BCB8:
|
|
aot_gpr_25 = (39322u << 16u);
|
|
aot_gpr_25 = (39322u << 16u);
|
|
goto L_08B8BCC0;
|
|
L_08B8BCC0:
|
|
aot_gpr_25 = (39322u << 16u);
|
|
aot_gpr_25 = (39322u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8BCD4;
|
|
L_08B8BCD4:
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8BCD8;
|
|
L_08B8BCD8:
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
aot_gpr_3 = (55050u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
aot_gpr_3 = (55050u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
aot_gpr_3 = (55050u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8BCF4;
|
|
L_08B8BCF4:
|
|
aot_gpr_3 = (55050u << 16u);
|
|
goto L_08B8BCF8;
|
|
L_08B8BCF8:
|
|
aot_gpr_3 = (55050u << 16u);
|
|
goto L_08B8BCFC;
|
|
L_08B8BCFC:
|
|
aot_gpr_3 = (55050u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
aot_gpr_3 = (55050u << 16u);
|
|
aot_gpr_3 = (55050u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8BD18;
|
|
L_08B8BD18:
|
|
aot_gpr_12 = (52429u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
goto L_08B8BD24;
|
|
L_08B8BD24:
|
|
aot_gpr_12 = (52429u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8BD2C;
|
|
L_08B8BD2C:
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8BD38;
|
|
L_08B8BD38:
|
|
(void)(ctx.gpr[2] << 0u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BD3Cu, 0x00010001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BD4C:
|
|
(void)(static_cast<std::uint32_t>(static_cast<std::int32_t>(aot_gpr_5) >> (0u & 31u)));
|
|
(void)(ctx.gpr[7] >> 0u);
|
|
(void)(static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[2]) >> 0u));
|
|
(void)(ctx.gpr[7] >> (0u & 31u));
|
|
(void)(0u << (0u & 31u));
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BD60u, 0x00040001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BD70:
|
|
(void)(0u >> 0u);
|
|
goto L_08B8BD74;
|
|
L_08B8BD74:
|
|
(void)(aot_gpr_5 >> (0u & 31u));
|
|
(void)(static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[6]) >> (0u & 31u)));
|
|
(void)(aot_gpr_5 << (0u & 31u));
|
|
goto L_08B8BD80;
|
|
L_08B8BD80:
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
aot_gpr_3 = (55050u << 16u);
|
|
ctx.gpr[21] = (49807u << 16u);
|
|
aot_gpr_3 = (55050u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8BD98;
|
|
L_08B8BD98:
|
|
ctx.gpr[21] = (49807u << 16u);
|
|
goto L_08B8BD9C;
|
|
L_08B8BD9C:
|
|
ctx.gpr[21] = (49807u << 16u);
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
// PSP CACHE is a no-op in coherent host memory.
|
|
goto L_08B8BDB0;
|
|
L_08B8BDB0:
|
|
(void)(ctx.gpr[1] << 0u);
|
|
(void)(static_cast<std::uint32_t>(static_cast<std::int32_t>(0u) >> 0u));
|
|
(void)(static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[2]) >> 0u));
|
|
(void)(aot_gpr_5 << (0u & 31u));
|
|
(void)(static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[4]) >> (0u & 31u)));
|
|
goto L_08B8BDC4;
|
|
L_08B8BDC4:
|
|
(void)(static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[6]) >> (0u & 31u)));
|
|
goto L_08B8BDD0;
|
|
L_08B8BDD0:
|
|
(void)(0u << 0u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BDE8u, 0x01010101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BDEC:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BDECu, 0x01010101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BE14:
|
|
(void)(0u << 0u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BE1Cu, 0x01010101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BE3C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BE3Cu, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BE4C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BE4Cu, 0x01010101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BE64:
|
|
(void)(0u << 0u);
|
|
goto L_08B8BE68;
|
|
L_08B8BE68:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BE68u, 0x01010101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BE84:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BE84u, 0x00000101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BE8C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BE8Cu, 0x00010101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BEA0:
|
|
goto L_08B8BEB4;
|
|
L_08B8BEB4:
|
|
(void)(ctx.gpr[1] << 0u);
|
|
goto L_08B8BEBC;
|
|
L_08B8BEBC:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BEBCu, 0x00000101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BEDC:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BEDCu, 0x00000101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BF04:
|
|
(void)(ctx.gpr[1] << 0u);
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BF08u, 0x00000101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BF2C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BF2Cu, 0x00000101u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BF30:
|
|
goto L_08B8BF40;
|
|
L_08B8BF40:
|
|
goto L_08B8BF50;
|
|
L_08B8BF50:
|
|
goto L_08B8BF54;
|
|
L_08B8BF54:
|
|
aot_gpr_12 = (52429u << 16u);
|
|
aot_gpr_25 = (39322u << 16u);
|
|
aot_gpr_12 = (52429u << 16u);
|
|
ctx.gpr[6] = (26214u << 16u);
|
|
(void)(0u << 16u);
|
|
aot_gpr_25 = (39322u << 16u);
|
|
(void)(839u << 16u);
|
|
(void)(0u << 16u);
|
|
goto L_08B8BF78;
|
|
L_08B8BF78:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BF78u, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BF7C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BF7Cu, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BF8C:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BF8Cu, 0x00000001u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BFA0:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BFA0u, 0x00001770u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BFA4:
|
|
AOT_REGCACHE_SYNC_OUT();
|
|
rt.unsupported(0x08B8BFA4u, 0x00001770u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return;
|
|
L_08B8BFC0:
|
|
goto L_08B8BFCC;
|
|
L_08B8BFCC:
|
|
goto L_08B8BFE4;
|
|
L_08B8BFE4:
|
|
goto L_08B8BFF4;
|
|
L_08B8BFF4:
|
|
ctx.pc = 0x08B8C000u; AOT_REGCACHE_SYNC_OUT(); return;
|
|
}
|
|
|
|
#undef AOT_REGCACHE_SYNC_IN
|
|
#undef AOT_REGCACHE_SYNC_OUT
|
|
|
|
void recomp_unit_0225(Runtime &rt, AllegrexContext &ctx) {
|
|
auto aot_mem = rt.memory().aot_fast_view();
|
|
recomp_unit_0225_entry(rt, ctx, 0u, aot_mem);
|
|
}
|
|
|
|
void register_generated_unit_225(Runtime &runtime) {
|
|
runtime.register_generated_unit(225u, 0x08B88000u, 16384u, &recomp_unit_0225, &recomp_unit_0225_entry);
|
|
// PSPRECOMP_V812_COMPACT_REGISTRATION: same entry set, looped once in Runtime instead of source-expanded calls.
|
|
runtime.register_generated_entry_mask(0x08B88000u, &recomp_unit_0225, "recomp_unit_0225",
|
|
kEntryMasks_recomp_unit_0225, 64u);
|
|
}
|
|
} // namespace psprecomp
|