mirror of
https://github.com/ApfelTeeSaft/RebrewU.git
synced 2026-08-26 19:33:27 +00:00
40268 lines
2.1 MiB
Plaintext
40268 lines
2.1 MiB
Plaintext
// Generated by RebrewU -- do not edit
|
|
#include <rebrewu_runtime.h>
|
|
#include <stdint.h>
|
|
#include <math.h>
|
|
|
|
#include "Gambit.h"
|
|
|
|
// fn_028D2310 @ 0x28d2310
|
|
void Gambit_fn_028D2310(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28;
|
|
|
|
L_028D2310: ; // 0x28d2310
|
|
/* 028D2310 */ cpu->r[0] = cpu->lr;
|
|
/* 028D2314 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D2314 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D2314 */ cpu->r[1] = _t0;
|
|
/* 028D2318 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2318 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D231C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D231C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D2320 */ _t3 = cpu->r[3] + 0x00000004u;
|
|
/* 028D2320 */ cpu->r[0] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028D2324 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D2328 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2328 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D2328 */ if (_t5) goto L_028D23B8; else goto L_028D232C;
|
|
L_028D232C: ; // 0x28d232c
|
|
/* 028D232C */ _t6 = cpu->r[4] + 0x00000000u;
|
|
/* 028D232C */ cpu->r[9] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D2330 */ cpu->r[12] = 0x10110000u;
|
|
/* 028D2334 */ _t7 = cpu->r[12] + 0x00007399u;
|
|
/* 028D2334 */ cpu->r[0] = rbrew_read8(cpu->mem, _t7);
|
|
/* 028D2338 */ _t8 = cpu->r[9] + 0x00000000u;
|
|
/* 028D2338 */ cpu->r[10] = rbrew_read8(cpu->mem, _t8);
|
|
/* 028D233C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 028D2340 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2340 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D2340 */ if (_t10) goto L_028D2344; else goto L_028D235C;
|
|
L_028D2344: ; // 0x28d2344
|
|
/* 028D2344 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2344 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D2348 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028D2348 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D234C */ cpu->lr = cpu->r[0];
|
|
/* 028D2350 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2350 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D2354 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2358 */ return;
|
|
L_028D235C: ; // 0x28d235c
|
|
/* 028D235C */ Gambit_fn_028D2200(cpu);
|
|
/* 028D2360 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D2360 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D2364 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2364 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028D2364 */ if (_t15) goto L_028D23B8; else goto L_028D2368;
|
|
L_028D2368: ; // 0x28d2368
|
|
/* 028D2368 */ cpu->r[11] = 0x101D0000u;
|
|
/* 028D236C */ _t16 = cpu->r[11] + 0x00001940u;
|
|
/* 028D236C */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D236C */ cpu->r[11] = _t16;
|
|
/* 028D2370 */ cpu->r[4] = 0x101D0000u;
|
|
/* 028D2374 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D2378 */ cpu->r[4] = cpu->r[4] + 0x00001A00u;
|
|
/* 028D237C */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D237C */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D237C */ if (_t18) goto L_028D2380; else goto L_028D2394;
|
|
L_028D2380: ; // 0x28d2380
|
|
/* 028D2380 */ cpu->r[9] = 0x10140000u;
|
|
/* 028D2384 */ cpu->r[0] = 0x00000001u;
|
|
/* 028D2388 */ cpu->r[9] = cpu->r[9] + 0xFFFFA6F4u;
|
|
/* 028D238C */ _t19 = cpu->r[11] + 0x00000000u;
|
|
/* 028D238C */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 028D2390 */ _t20 = cpu->r[4] + 0x00000000u;
|
|
/* 028D2390 */ rbrew_write32(cpu->mem, _t20, cpu->r[9]);
|
|
L_028D2394: ; // 0x28d2394
|
|
/* 028D2394 */ _t21 = cpu->r[31] + 0x00000008u;
|
|
/* 028D2394 */ cpu->r[10] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D2398 */ _t22 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028D2398 */ cpu->r[12] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D239C */ cpu->ctr = cpu->r[12];
|
|
/* 028D23A0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D23A4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D23A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D23AC */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D23AC */ _t24 = _t23 & 0x00000001u;
|
|
/* 028D23AC */ if (_t24) goto L_028D23B8; else goto L_028D23B0;
|
|
L_028D23B0: ; // 0x28d23b0
|
|
/* 028D23B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D23B4 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D23B4 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028D23B4 */ if (_t26) goto L_028D23B8; else goto L_028D23BC;
|
|
L_028D23B8: ; // 0x28d23b8
|
|
/* 028D23B8 */ cpu->r[31] = 0x00000000u;
|
|
L_028D23BC: ; // 0x28d23bc
|
|
/* 028D23BC */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 028D23BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D23C0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D23C4 */ _t28 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D23C4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D23C8 */ cpu->lr = cpu->r[0];
|
|
/* 028D23CC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D23D0 */ return;
|
|
}
|
|
|
|
// fn_028D2314 @ 0x28d2314
|
|
void Gambit_fn_028D2314(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28;
|
|
|
|
L_028D2314: ; // 0x28d2314
|
|
/* 028D2314 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D2314 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D2314 */ cpu->r[1] = _t0;
|
|
/* 028D2318 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2318 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D231C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D231C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D2320 */ _t3 = cpu->r[3] + 0x00000004u;
|
|
/* 028D2320 */ cpu->r[0] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028D2324 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D2328 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2328 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D2328 */ if (_t5) goto L_028D23B8; else goto L_028D232C;
|
|
L_028D232C: ; // 0x28d232c
|
|
/* 028D232C */ _t6 = cpu->r[4] + 0x00000000u;
|
|
/* 028D232C */ cpu->r[9] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D2330 */ cpu->r[12] = 0x10110000u;
|
|
/* 028D2334 */ _t7 = cpu->r[12] + 0x00007399u;
|
|
/* 028D2334 */ cpu->r[0] = rbrew_read8(cpu->mem, _t7);
|
|
/* 028D2338 */ _t8 = cpu->r[9] + 0x00000000u;
|
|
/* 028D2338 */ cpu->r[10] = rbrew_read8(cpu->mem, _t8);
|
|
/* 028D233C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 028D2340 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2340 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D2340 */ if (_t10) goto L_028D2344; else goto L_028D235C;
|
|
L_028D2344: ; // 0x28d2344
|
|
/* 028D2344 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2344 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D2348 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028D2348 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D234C */ cpu->lr = cpu->r[0];
|
|
/* 028D2350 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2350 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D2354 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2358 */ return;
|
|
L_028D235C: ; // 0x28d235c
|
|
/* 028D235C */ Gambit_fn_028D2200(cpu);
|
|
/* 028D2360 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D2360 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D2364 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2364 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028D2364 */ if (_t15) goto L_028D23B8; else goto L_028D2368;
|
|
L_028D2368: ; // 0x28d2368
|
|
/* 028D2368 */ cpu->r[11] = 0x101D0000u;
|
|
/* 028D236C */ _t16 = cpu->r[11] + 0x00001940u;
|
|
/* 028D236C */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D236C */ cpu->r[11] = _t16;
|
|
/* 028D2370 */ cpu->r[4] = 0x101D0000u;
|
|
/* 028D2374 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D2378 */ cpu->r[4] = cpu->r[4] + 0x00001A00u;
|
|
/* 028D237C */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D237C */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D237C */ if (_t18) goto L_028D2380; else goto L_028D2394;
|
|
L_028D2380: ; // 0x28d2380
|
|
/* 028D2380 */ cpu->r[9] = 0x10140000u;
|
|
/* 028D2384 */ cpu->r[0] = 0x00000001u;
|
|
/* 028D2388 */ cpu->r[9] = cpu->r[9] + 0xFFFFA6F4u;
|
|
/* 028D238C */ _t19 = cpu->r[11] + 0x00000000u;
|
|
/* 028D238C */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 028D2390 */ _t20 = cpu->r[4] + 0x00000000u;
|
|
/* 028D2390 */ rbrew_write32(cpu->mem, _t20, cpu->r[9]);
|
|
L_028D2394: ; // 0x28d2394
|
|
/* 028D2394 */ _t21 = cpu->r[31] + 0x00000008u;
|
|
/* 028D2394 */ cpu->r[10] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D2398 */ _t22 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028D2398 */ cpu->r[12] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D239C */ cpu->ctr = cpu->r[12];
|
|
/* 028D23A0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D23A4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D23A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D23AC */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D23AC */ _t24 = _t23 & 0x00000001u;
|
|
/* 028D23AC */ if (_t24) goto L_028D23B8; else goto L_028D23B0;
|
|
L_028D23B0: ; // 0x28d23b0
|
|
/* 028D23B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D23B4 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D23B4 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028D23B4 */ if (_t26) goto L_028D23B8; else goto L_028D23BC;
|
|
L_028D23B8: ; // 0x28d23b8
|
|
/* 028D23B8 */ cpu->r[31] = 0x00000000u;
|
|
L_028D23BC: ; // 0x28d23bc
|
|
/* 028D23BC */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 028D23BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D23C0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D23C4 */ _t28 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D23C4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D23C8 */ cpu->lr = cpu->r[0];
|
|
/* 028D23CC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D23D0 */ return;
|
|
}
|
|
|
|
// fn_028D23D4 @ 0x28d23d4
|
|
void Gambit_fn_028D23D4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24;
|
|
|
|
L_028D23D4: ; // 0x28d23d4
|
|
/* 028D23D4 */ cpu->r[0] = cpu->lr;
|
|
/* 028D23D8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D23D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D23D8 */ cpu->r[1] = _t0;
|
|
/* 028D23DC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D23DC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028D23E0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028D23E0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D23E4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D23E4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D23E8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D23E8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D23EC */ cpu->r[29] = cpu->r[4];
|
|
/* 028D23F0 */ cpu->r[10] = 0x10110000u;
|
|
/* 028D23F4 */ _t5 = cpu->r[29] + 0x00000000u;
|
|
/* 028D23F4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D23F8 */ _t6 = cpu->r[10] + 0x00007399u;
|
|
/* 028D23F8 */ cpu->r[0] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028D23FC */ _t7 = cpu->r[11] + 0x00000000u;
|
|
/* 028D23FC */ cpu->r[12] = rbrew_read8(cpu->mem, _t7);
|
|
/* 028D2400 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028D2404 */ cpu->r[30] = cpu->r[5];
|
|
/* 028D2408 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2408 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D2408 */ if (_t9) goto L_028D2430; else goto L_028D240C;
|
|
L_028D240C: ; // 0x28d240c
|
|
/* 028D240C */ _t10 = cpu->r[3] + 0x00000020u;
|
|
/* 028D240C */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D2410 */ _t11 = cpu->r[3] + 0x00000000u;
|
|
/* 028D2410 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D2414 */ _t12 = cpu->r[11] + 0x0000001Cu;
|
|
/* 028D2414 */ cpu->r[10] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D2418 */ cpu->ctr = cpu->r[10];
|
|
/* 028D241C */ cpu->r[4] = cpu->r[29];
|
|
/* 028D2420 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D2424 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D2428 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D2428 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D242C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D242C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D242C */ if (_t14) goto L_028D2430; else goto L_028D2450;
|
|
L_028D2430: ; // 0x28d2430
|
|
/* 028D2430 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2430 */ cpu->r[29] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D2434 */ _t16 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D2434 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D2438 */ _t17 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2438 */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D243C */ cpu->lr = cpu->r[0];
|
|
/* 028D2440 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2440 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D2444 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D2448 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D244C */ return;
|
|
L_028D2450: ; // 0x28d2450
|
|
/* 028D2450 */ _t19 = cpu->r[31] + 0x00000008u;
|
|
/* 028D2450 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D2454 */ _t20 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D2454 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D2458 */ cpu->ctr = cpu->r[0];
|
|
/* 028D245C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2460 */ cpu->r[4] = cpu->r[29];
|
|
/* 028D2464 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D2468 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D246C */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D246C */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D2470 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D2470 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D2474 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2478 */ _t23 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2478 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D247C */ cpu->lr = cpu->r[0];
|
|
/* 028D2480 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2480 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D2484 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D2488 */ return;
|
|
}
|
|
|
|
// fn_028D23D8 @ 0x28d23d8
|
|
void Gambit_fn_028D23D8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24;
|
|
|
|
L_028D23D8: ; // 0x28d23d8
|
|
/* 028D23D8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D23D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D23D8 */ cpu->r[1] = _t0;
|
|
/* 028D23DC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D23DC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028D23E0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028D23E0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D23E4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D23E4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D23E8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D23E8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D23EC */ cpu->r[29] = cpu->r[4];
|
|
/* 028D23F0 */ cpu->r[10] = 0x10110000u;
|
|
/* 028D23F4 */ _t5 = cpu->r[29] + 0x00000000u;
|
|
/* 028D23F4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D23F8 */ _t6 = cpu->r[10] + 0x00007399u;
|
|
/* 028D23F8 */ cpu->r[0] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028D23FC */ _t7 = cpu->r[11] + 0x00000000u;
|
|
/* 028D23FC */ cpu->r[12] = rbrew_read8(cpu->mem, _t7);
|
|
/* 028D2400 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028D2404 */ cpu->r[30] = cpu->r[5];
|
|
/* 028D2408 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2408 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D2408 */ if (_t9) goto L_028D2430; else goto L_028D240C;
|
|
L_028D240C: ; // 0x28d240c
|
|
/* 028D240C */ _t10 = cpu->r[3] + 0x00000020u;
|
|
/* 028D240C */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D2410 */ _t11 = cpu->r[3] + 0x00000000u;
|
|
/* 028D2410 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D2414 */ _t12 = cpu->r[11] + 0x0000001Cu;
|
|
/* 028D2414 */ cpu->r[10] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D2418 */ cpu->ctr = cpu->r[10];
|
|
/* 028D241C */ cpu->r[4] = cpu->r[29];
|
|
/* 028D2420 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D2424 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D2428 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D2428 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D242C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D242C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D242C */ if (_t14) goto L_028D2430; else goto L_028D2450;
|
|
L_028D2430: ; // 0x28d2430
|
|
/* 028D2430 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2430 */ cpu->r[29] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D2434 */ _t16 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D2434 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D2438 */ _t17 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2438 */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D243C */ cpu->lr = cpu->r[0];
|
|
/* 028D2440 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2440 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D2444 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D2448 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D244C */ return;
|
|
L_028D2450: ; // 0x28d2450
|
|
/* 028D2450 */ _t19 = cpu->r[31] + 0x00000008u;
|
|
/* 028D2450 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D2454 */ _t20 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D2454 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D2458 */ cpu->ctr = cpu->r[0];
|
|
/* 028D245C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2460 */ cpu->r[4] = cpu->r[29];
|
|
/* 028D2464 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D2468 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D246C */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D246C */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D2470 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D2470 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D2474 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2478 */ _t23 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2478 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D247C */ cpu->lr = cpu->r[0];
|
|
/* 028D2480 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2480 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D2484 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D2488 */ return;
|
|
}
|
|
|
|
// fn_028D248C @ 0x28d248c
|
|
void Gambit_fn_028D248C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_028D248C: ; // 0x28d248c
|
|
/* 028D248C */ cpu->r[0] = cpu->lr;
|
|
/* 028D2490 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D2490 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D2490 */ cpu->r[1] = _t0;
|
|
/* 028D2494 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2494 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D2498 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D249C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D249C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D24A0 */ _t3 = cpu->r[31] + 0x00000005u;
|
|
/* 028D24A0 */ cpu->r[8] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028D24A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028D24A8 */ cpu->r[5] = cpu->r[4];
|
|
/* 028D24AC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D24AC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D24AC */ if (_t5) goto L_028D24B0; else goto L_028D24F4;
|
|
L_028D24B0: ; // 0x28d24b0
|
|
/* 028D24B0 */ _t6 = cpu->r[31] + 0x00000008u;
|
|
/* 028D24B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D24B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D24B8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D24B8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D24B8 */ if (_t8) goto L_028D24BC; else goto L_028D24F4;
|
|
L_028D24BC: ; // 0x28d24bc
|
|
/* 028D24BC */ cpu->r[4] = 0x101F0000u;
|
|
/* 028D24C0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D24C4 */ cpu->r[4] = cpu->r[4] + 0x000071BCu;
|
|
/* 028D24C8 */ Gambit_fn_028D23D4(cpu);
|
|
/* 028D24CC */ cpu->r[11] = cpu->r[3];
|
|
/* 028D24CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028D24D0 */ _t9 = cpu->r[31] + 0x00000008u;
|
|
/* 028D24D0 */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 028D24D4 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D24D4 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D24D4 */ if (_t11) goto L_028D24F4; else goto L_028D24D8;
|
|
L_028D24D8: ; // 0x28d24d8
|
|
/* 028D24D8 */ _t12 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028D24D8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D24DC */ cpu->r[3] = cpu->r[31] + 0x00000010u;
|
|
/* 028D24E0 */ cpu->r[4] = cpu->r[11] + cpu->r[9];
|
|
/* 028D24E4 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028D24E8 */ _t13 = cpu->r[31] + 0x00000018u;
|
|
/* 028D24E8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D24EC */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028D24F0 */ _t14 = cpu->r[31] + 0x00000018u;
|
|
/* 028D24F0 */ rbrew_write32(cpu->mem, _t14, cpu->r[12]);
|
|
L_028D24F4: ; // 0x28d24f4
|
|
/* 028D24F4 */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 028D24F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D24F8 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D24F8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D24FC */ cpu->lr = cpu->r[0];
|
|
/* 028D2500 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2504 */ return;
|
|
}
|
|
|
|
// fn_028D2490 @ 0x28d2490
|
|
void Gambit_fn_028D2490(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_028D2490: ; // 0x28d2490
|
|
/* 028D2490 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D2490 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D2490 */ cpu->r[1] = _t0;
|
|
/* 028D2494 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2494 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D2498 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D249C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D249C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D24A0 */ _t3 = cpu->r[31] + 0x00000005u;
|
|
/* 028D24A0 */ cpu->r[8] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028D24A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028D24A8 */ cpu->r[5] = cpu->r[4];
|
|
/* 028D24AC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D24AC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D24AC */ if (_t5) goto L_028D24B0; else goto L_028D24F4;
|
|
L_028D24B0: ; // 0x28d24b0
|
|
/* 028D24B0 */ _t6 = cpu->r[31] + 0x00000008u;
|
|
/* 028D24B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D24B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D24B8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D24B8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D24B8 */ if (_t8) goto L_028D24BC; else goto L_028D24F4;
|
|
L_028D24BC: ; // 0x28d24bc
|
|
/* 028D24BC */ cpu->r[4] = 0x101F0000u;
|
|
/* 028D24C0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D24C4 */ cpu->r[4] = cpu->r[4] + 0x000071BCu;
|
|
/* 028D24C8 */ Gambit_fn_028D23D4(cpu);
|
|
/* 028D24CC */ cpu->r[11] = cpu->r[3];
|
|
/* 028D24CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028D24D0 */ _t9 = cpu->r[31] + 0x00000008u;
|
|
/* 028D24D0 */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 028D24D4 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D24D4 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D24D4 */ if (_t11) goto L_028D24F4; else goto L_028D24D8;
|
|
L_028D24D8: ; // 0x28d24d8
|
|
/* 028D24D8 */ _t12 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028D24D8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D24DC */ cpu->r[3] = cpu->r[31] + 0x00000010u;
|
|
/* 028D24E0 */ cpu->r[4] = cpu->r[11] + cpu->r[9];
|
|
/* 028D24E4 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028D24E8 */ _t13 = cpu->r[31] + 0x00000018u;
|
|
/* 028D24E8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D24EC */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028D24F0 */ _t14 = cpu->r[31] + 0x00000018u;
|
|
/* 028D24F0 */ rbrew_write32(cpu->mem, _t14, cpu->r[12]);
|
|
L_028D24F4: ; // 0x28d24f4
|
|
/* 028D24F4 */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 028D24F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D24F8 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D24F8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D24FC */ cpu->lr = cpu->r[0];
|
|
/* 028D2500 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2504 */ return;
|
|
}
|
|
|
|
// fn_028D2508 @ 0x28d2508
|
|
void Gambit_fn_028D2508(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24;
|
|
|
|
L_028D2508: ; // 0x28d2508
|
|
/* 028D2508 */ cpu->r[0] = cpu->lr;
|
|
/* 028D250C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D250C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D250C */ cpu->r[1] = _t0;
|
|
/* 028D2510 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2510 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028D2514 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2514 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D2518 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2518 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D251C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D251C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D2520 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D2524 */ cpu->r[12] = 0x10110000u;
|
|
/* 028D2528 */ _t5 = cpu->r[29] + 0x00000000u;
|
|
/* 028D2528 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D252C */ _t6 = cpu->r[12] + 0x00007399u;
|
|
/* 028D252C */ cpu->r[10] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028D2530 */ _t7 = cpu->r[11] + 0x00000000u;
|
|
/* 028D2530 */ cpu->r[0] = rbrew_read8(cpu->mem, _t7);
|
|
/* 028D2534 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[10]);
|
|
/* 028D2538 */ cpu->r[30] = cpu->r[5];
|
|
/* 028D253C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D253C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D253C */ if (_t9) goto L_028D2564; else goto L_028D2540;
|
|
L_028D2540: ; // 0x28d2540
|
|
/* 028D2540 */ _t10 = cpu->r[3] + 0x00000020u;
|
|
/* 028D2540 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D2544 */ _t11 = cpu->r[3] + 0x00000000u;
|
|
/* 028D2544 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D2548 */ _t12 = cpu->r[11] + 0x00000014u;
|
|
/* 028D2548 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D254C */ cpu->ctr = cpu->r[0];
|
|
/* 028D2550 */ cpu->r[4] = cpu->r[29];
|
|
/* 028D2554 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D2558 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D255C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D255C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D2560 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2560 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D2560 */ if (_t14) goto L_028D2564; else goto L_028D2584;
|
|
L_028D2564: ; // 0x28d2564
|
|
/* 028D2564 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2564 */ cpu->r[29] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D2568 */ _t16 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D2568 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D256C */ _t17 = cpu->r[1] + 0x00000010u;
|
|
/* 028D256C */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D2570 */ cpu->lr = cpu->r[0];
|
|
/* 028D2574 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2574 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D2578 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D257C */ cpu->r[3] = 0x00000000u;
|
|
/* 028D2580 */ return;
|
|
L_028D2584: ; // 0x28d2584
|
|
/* 028D2584 */ _t19 = cpu->r[31] + 0x00000008u;
|
|
/* 028D2584 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D2588 */ _t20 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D2588 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D258C */ cpu->ctr = cpu->r[0];
|
|
/* 028D2590 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2594 */ cpu->r[4] = cpu->r[29];
|
|
/* 028D2598 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D259C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D25A0 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D25A0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D25A4 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D25A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D25A8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D25AC */ _t23 = cpu->r[1] + 0x00000010u;
|
|
/* 028D25AC */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D25B0 */ cpu->lr = cpu->r[0];
|
|
/* 028D25B4 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 028D25B4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D25B8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D25BC */ return;
|
|
}
|
|
|
|
// fn_028D250C @ 0x28d250c
|
|
void Gambit_fn_028D250C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24;
|
|
|
|
L_028D250C: ; // 0x28d250c
|
|
/* 028D250C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D250C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D250C */ cpu->r[1] = _t0;
|
|
/* 028D2510 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2510 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028D2514 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2514 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D2518 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2518 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D251C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D251C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D2520 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D2524 */ cpu->r[12] = 0x10110000u;
|
|
/* 028D2528 */ _t5 = cpu->r[29] + 0x00000000u;
|
|
/* 028D2528 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D252C */ _t6 = cpu->r[12] + 0x00007399u;
|
|
/* 028D252C */ cpu->r[10] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028D2530 */ _t7 = cpu->r[11] + 0x00000000u;
|
|
/* 028D2530 */ cpu->r[0] = rbrew_read8(cpu->mem, _t7);
|
|
/* 028D2534 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[10]);
|
|
/* 028D2538 */ cpu->r[30] = cpu->r[5];
|
|
/* 028D253C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D253C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D253C */ if (_t9) goto L_028D2564; else goto L_028D2540;
|
|
L_028D2540: ; // 0x28d2540
|
|
/* 028D2540 */ _t10 = cpu->r[3] + 0x00000020u;
|
|
/* 028D2540 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D2544 */ _t11 = cpu->r[3] + 0x00000000u;
|
|
/* 028D2544 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D2548 */ _t12 = cpu->r[11] + 0x00000014u;
|
|
/* 028D2548 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D254C */ cpu->ctr = cpu->r[0];
|
|
/* 028D2550 */ cpu->r[4] = cpu->r[29];
|
|
/* 028D2554 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D2558 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D255C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D255C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D2560 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2560 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D2560 */ if (_t14) goto L_028D2564; else goto L_028D2584;
|
|
L_028D2564: ; // 0x28d2564
|
|
/* 028D2564 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2564 */ cpu->r[29] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D2568 */ _t16 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D2568 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D256C */ _t17 = cpu->r[1] + 0x00000010u;
|
|
/* 028D256C */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D2570 */ cpu->lr = cpu->r[0];
|
|
/* 028D2574 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2574 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D2578 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D257C */ cpu->r[3] = 0x00000000u;
|
|
/* 028D2580 */ return;
|
|
L_028D2584: ; // 0x28d2584
|
|
/* 028D2584 */ _t19 = cpu->r[31] + 0x00000008u;
|
|
/* 028D2584 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D2588 */ _t20 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D2588 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D258C */ cpu->ctr = cpu->r[0];
|
|
/* 028D2590 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2594 */ cpu->r[4] = cpu->r[29];
|
|
/* 028D2598 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D259C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D25A0 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D25A0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D25A4 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D25A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D25A8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D25AC */ _t23 = cpu->r[1] + 0x00000010u;
|
|
/* 028D25AC */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D25B0 */ cpu->lr = cpu->r[0];
|
|
/* 028D25B4 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 028D25B4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D25B8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D25BC */ return;
|
|
}
|
|
|
|
// fn_028D25C0 @ 0x28d25c0
|
|
void Gambit_fn_028D25C0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_028D25C0: ; // 0x28d25c0
|
|
/* 028D25C0 */ cpu->r[0] = cpu->lr;
|
|
/* 028D25C4 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028D25C4 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028D25C8 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028D25C8 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028D25C8 */ cpu->r[1] = _t1;
|
|
/* 028D25CC */ Gambit_fn_028D2200(cpu);
|
|
/* 028D25D0 */ cpu->r[0] = cpu->r[3] + 0xFFFFFFFFu;
|
|
/* 028D25D4 */ cpu->r[3] = cpu->r[3] - cpu->r[0];
|
|
/* 028D25D8 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D25D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028D25DC */ cpu->lr = cpu->r[0];
|
|
/* 028D25E0 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D25E4 */ return;
|
|
}
|
|
|
|
// fn_028D25C8 @ 0x28d25c8
|
|
void Gambit_fn_028D25C8(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028D25C8: ; // 0x28d25c8
|
|
/* 028D25C8 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028D25C8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D25C8 */ cpu->r[1] = _t0;
|
|
/* 028D25CC */ Gambit_fn_028D2200(cpu);
|
|
/* 028D25D0 */ cpu->r[0] = cpu->r[3] + 0xFFFFFFFFu;
|
|
/* 028D25D4 */ cpu->r[3] = cpu->r[3] - cpu->r[0];
|
|
/* 028D25D8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D25D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028D25DC */ cpu->lr = cpu->r[0];
|
|
/* 028D25E0 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D25E4 */ return;
|
|
}
|
|
|
|
// fn_028D25EC @ 0x28d25ec
|
|
void Gambit_fn_028D25EC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028D25EC: ; // 0x28d25ec
|
|
/* 028D25EC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D25EC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D25EC */ cpu->r[1] = _t0;
|
|
/* 028D25F0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D25F0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D25F4 */ cpu->r[30] = cpu->r[4];
|
|
/* 028D25F8 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D25F8 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D25FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D2600 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2600 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D2604 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2604 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D2604 */ if (_t5) goto L_028D2610; else goto L_028D2608;
|
|
L_028D2608: ; // 0x28d2608
|
|
/* 028D2608 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D260C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D260C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D260C */ if (_t7) goto L_028D2610; else goto L_028D262C;
|
|
L_028D2610: ; // 0x28d2610
|
|
/* 028D2610 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2610 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D2614 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028D2614 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D2618 */ cpu->lr = cpu->r[0];
|
|
/* 028D261C */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D261C */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D2620 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2624 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D2628 */ return;
|
|
L_028D262C: ; // 0x28d262c
|
|
/* 028D262C */ Gambit_fn_028D0794(cpu);
|
|
/* 028D2630 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D2634 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D2638 */ Gambit_fn_028D0794(cpu);
|
|
/* 028D263C */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028D263C */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D2640 */ cpu->r[3] = cpu->r[31] - cpu->r[3];
|
|
/* 028D2644 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2644 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D2648 */ cpu->lr = cpu->r[0];
|
|
/* 028D264C */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028D264C */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D2650 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2654 */ return;
|
|
}
|
|
|
|
// fn_028D2658 @ 0x28d2658
|
|
void Gambit_fn_028D2658(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028D2658: ; // 0x28d2658
|
|
/* 028D2658 */ cpu->r[0] = cpu->lr;
|
|
/* 028D265C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D265C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D265C */ cpu->r[1] = _t0;
|
|
/* 028D2660 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2660 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D2664 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D2668 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2668 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D266C */ _t3 = cpu->r[31] + 0x00000004u;
|
|
/* 028D266C */ cpu->r[0] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028D2670 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D2674 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2674 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D2674 */ if (_t5) goto L_028D26A0; else goto L_028D2678;
|
|
L_028D2678: ; // 0x28d2678
|
|
/* 028D2678 */ cpu->r[5] = 0x028D0000u;
|
|
/* 028D267C */ cpu->r[3] = cpu->r[31] + 0x00000010u;
|
|
/* 028D2680 */ _t6 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028D2680 */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D2684 */ cpu->r[5] = cpu->r[5] + 0x000025E8u;
|
|
/* 028D2688 */ Gambit_fn_02801F44(cpu);
|
|
/* 028D268C */ Gambit_fn_028C2A3C(cpu);
|
|
/* 028D2690 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D2694 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2694 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D2694 */ if (_t8) goto L_028D26A0; else goto L_028D2698;
|
|
L_028D2698: ; // 0x28d2698
|
|
/* 028D2698 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D269C */ Gambit_fn_028CDD40(cpu);
|
|
L_028D26A0: ; // 0x28d26a0
|
|
/* 028D26A0 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028D26A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D26A4 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D26A4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D26A8 */ cpu->lr = cpu->r[0];
|
|
/* 028D26AC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D26B0 */ return;
|
|
}
|
|
|
|
// fn_028D265C @ 0x28d265c
|
|
void Gambit_fn_028D265C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028D265C: ; // 0x28d265c
|
|
/* 028D265C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D265C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D265C */ cpu->r[1] = _t0;
|
|
/* 028D2660 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2660 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D2664 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D2668 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2668 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D266C */ _t3 = cpu->r[31] + 0x00000004u;
|
|
/* 028D266C */ cpu->r[0] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028D2670 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D2674 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2674 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D2674 */ if (_t5) goto L_028D26A0; else goto L_028D2678;
|
|
L_028D2678: ; // 0x28d2678
|
|
/* 028D2678 */ cpu->r[5] = 0x028D0000u;
|
|
/* 028D267C */ cpu->r[3] = cpu->r[31] + 0x00000010u;
|
|
/* 028D2680 */ _t6 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028D2680 */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D2684 */ cpu->r[5] = cpu->r[5] + 0x000025E8u;
|
|
/* 028D2688 */ Gambit_fn_02801F44(cpu);
|
|
/* 028D268C */ Gambit_fn_028C2A3C(cpu);
|
|
/* 028D2690 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D2694 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2694 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D2694 */ if (_t8) goto L_028D26A0; else goto L_028D2698;
|
|
L_028D2698: ; // 0x28d2698
|
|
/* 028D2698 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D269C */ Gambit_fn_028CDD40(cpu);
|
|
L_028D26A0: ; // 0x28d26a0
|
|
/* 028D26A0 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028D26A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D26A4 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D26A4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D26A8 */ cpu->lr = cpu->r[0];
|
|
/* 028D26AC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D26B0 */ return;
|
|
}
|
|
|
|
// fn_028D26B4 @ 0x28d26b4
|
|
void Gambit_fn_028D26B4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29;
|
|
|
|
L_028D26B4: ; // 0x28d26b4
|
|
/* 028D26B4 */ cpu->r[0] = cpu->lr;
|
|
/* 028D26B8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D26B8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D26B8 */ cpu->r[1] = _t0;
|
|
/* 028D26BC */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028D26BC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D26C0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D26C4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D26C4 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028D26C8 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028D26C8 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028D26CC */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D26CC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D26D0 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D26D4 */ _t5 = cpu->r[31] + 0x00000004u;
|
|
/* 028D26D4 */ cpu->r[12] = rbrew_read8(cpu->mem, _t5);
|
|
/* 028D26D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D26DC */ cpu->r[30] = cpu->r[5];
|
|
/* 028D26E0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D26E0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D26E0 */ if (_t7) goto L_028D272C; else goto L_028D26E4;
|
|
L_028D26E4: ; // 0x28d26e4
|
|
/* 028D26E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D26E8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D26E8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D26E8 */ if (_t9) goto L_028D272C; else goto L_028D26EC;
|
|
L_028D26EC: ; // 0x28d26ec
|
|
/* 028D26EC */ cpu->r[3] = cpu->r[31];
|
|
/* 028D26F0 */ cpu->r[4] = cpu->r[29];
|
|
/* 028D26F4 */ Gambit_fn_028D25C0(cpu);
|
|
/* 028D26F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D26FC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D26FC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D26FC */ if (_t11) goto L_028D2700; else goto L_028D272C;
|
|
L_028D2700: ; // 0x28d2700
|
|
/* 028D2700 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D2704 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2704 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D2704 */ if (_t13) goto L_028D2708; else goto L_028D270C;
|
|
L_028D2708: ; // 0x28d2708
|
|
/* 028D2708 */ _t14 = cpu->r[31] + 0x00000008u;
|
|
/* 028D2708 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
L_028D270C: ; // 0x28d270c
|
|
/* 028D270C */ _t15 = cpu->r[30] + 0x00000008u;
|
|
/* 028D270C */ cpu->r[11] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D2710 */ _t16 = cpu->r[11] + 0x0000009Cu;
|
|
/* 028D2710 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D2714 */ cpu->ctr = cpu->r[0];
|
|
/* 028D2718 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D271C */ cpu->r[4] = cpu->r[29];
|
|
/* 028D2720 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D2724 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D2728 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2728 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D2728 */ if (_t18) goto L_028D272C; else goto L_028D274C;
|
|
L_028D272C: ; // 0x28d272c
|
|
/* 028D272C */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D272C */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D2730 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D2730 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D2734 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2734 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D2738 */ cpu->lr = cpu->r[0];
|
|
/* 028D273C */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028D273C */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D2740 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D2744 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D2748 */ return;
|
|
L_028D274C: ; // 0x28d274c
|
|
/* 028D274C */ _t23 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028D274C */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D2750 */ cpu->r[3] = cpu->r[31] + 0x00000010u;
|
|
/* 028D2754 */ cpu->r[4] = cpu->r[29] + cpu->r[0];
|
|
/* 028D2758 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028D275C */ _t24 = cpu->r[31] + 0x00000018u;
|
|
/* 028D275C */ cpu->r[10] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D2760 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028D2764 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2768 */ _t25 = cpu->r[31] + 0x00000018u;
|
|
/* 028D2768 */ rbrew_write32(cpu->mem, _t25, cpu->r[10]);
|
|
/* 028D276C */ Gambit_fn_028D2658(cpu);
|
|
/* 028D2770 */ _t26 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2770 */ cpu->r[29] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D2774 */ _t27 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D2774 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D2778 */ _t28 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2778 */ cpu->r[30] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D277C */ cpu->lr = cpu->r[0];
|
|
/* 028D2780 */ _t29 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2780 */ cpu->r[31] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028D2784 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D2788 */ cpu->r[3] = 0x00000001u;
|
|
/* 028D278C */ return;
|
|
}
|
|
|
|
// fn_028D26B8 @ 0x28d26b8
|
|
void Gambit_fn_028D26B8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29;
|
|
|
|
L_028D26B8: ; // 0x28d26b8
|
|
/* 028D26B8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D26B8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D26B8 */ cpu->r[1] = _t0;
|
|
/* 028D26BC */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028D26BC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D26C0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D26C4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D26C4 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028D26C8 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028D26C8 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028D26CC */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D26CC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D26D0 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D26D4 */ _t5 = cpu->r[31] + 0x00000004u;
|
|
/* 028D26D4 */ cpu->r[12] = rbrew_read8(cpu->mem, _t5);
|
|
/* 028D26D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D26DC */ cpu->r[30] = cpu->r[5];
|
|
/* 028D26E0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D26E0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D26E0 */ if (_t7) goto L_028D272C; else goto L_028D26E4;
|
|
L_028D26E4: ; // 0x28d26e4
|
|
/* 028D26E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D26E8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D26E8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D26E8 */ if (_t9) goto L_028D272C; else goto L_028D26EC;
|
|
L_028D26EC: ; // 0x28d26ec
|
|
/* 028D26EC */ cpu->r[3] = cpu->r[31];
|
|
/* 028D26F0 */ cpu->r[4] = cpu->r[29];
|
|
/* 028D26F4 */ Gambit_fn_028D25C0(cpu);
|
|
/* 028D26F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D26FC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D26FC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D26FC */ if (_t11) goto L_028D2700; else goto L_028D272C;
|
|
L_028D2700: ; // 0x28d2700
|
|
/* 028D2700 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D2704 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2704 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D2704 */ if (_t13) goto L_028D2708; else goto L_028D270C;
|
|
L_028D2708: ; // 0x28d2708
|
|
/* 028D2708 */ _t14 = cpu->r[31] + 0x00000008u;
|
|
/* 028D2708 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
L_028D270C: ; // 0x28d270c
|
|
/* 028D270C */ _t15 = cpu->r[30] + 0x00000008u;
|
|
/* 028D270C */ cpu->r[11] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D2710 */ _t16 = cpu->r[11] + 0x0000009Cu;
|
|
/* 028D2710 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D2714 */ cpu->ctr = cpu->r[0];
|
|
/* 028D2718 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D271C */ cpu->r[4] = cpu->r[29];
|
|
/* 028D2720 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D2724 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D2728 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2728 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D2728 */ if (_t18) goto L_028D272C; else goto L_028D274C;
|
|
L_028D272C: ; // 0x28d272c
|
|
/* 028D272C */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D272C */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D2730 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D2730 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D2734 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2734 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D2738 */ cpu->lr = cpu->r[0];
|
|
/* 028D273C */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028D273C */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D2740 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D2744 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D2748 */ return;
|
|
L_028D274C: ; // 0x28d274c
|
|
/* 028D274C */ _t23 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028D274C */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D2750 */ cpu->r[3] = cpu->r[31] + 0x00000010u;
|
|
/* 028D2754 */ cpu->r[4] = cpu->r[29] + cpu->r[0];
|
|
/* 028D2758 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028D275C */ _t24 = cpu->r[31] + 0x00000018u;
|
|
/* 028D275C */ cpu->r[10] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D2760 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028D2764 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2768 */ _t25 = cpu->r[31] + 0x00000018u;
|
|
/* 028D2768 */ rbrew_write32(cpu->mem, _t25, cpu->r[10]);
|
|
/* 028D276C */ Gambit_fn_028D2658(cpu);
|
|
/* 028D2770 */ _t26 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2770 */ cpu->r[29] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D2774 */ _t27 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D2774 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D2778 */ _t28 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2778 */ cpu->r[30] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D277C */ cpu->lr = cpu->r[0];
|
|
/* 028D2780 */ _t29 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2780 */ cpu->r[31] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028D2784 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D2788 */ cpu->r[3] = 0x00000001u;
|
|
/* 028D278C */ return;
|
|
}
|
|
|
|
// fn_028D2790 @ 0x28d2790
|
|
void Gambit_fn_028D2790(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31;
|
|
|
|
L_028D2790: ; // 0x28d2790
|
|
/* 028D2790 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 028D2790 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D2790 */ cpu->r[1] = _t0;
|
|
/* 028D2794 */ cpu->r[0] = cpu->lr;
|
|
/* 028D2798 */ /* nop */
|
|
/* 028D279C */ cpu->r[26] = cpu->r[5];
|
|
/* 028D27A0 */ cpu->r[25] = cpu->r[4];
|
|
/* 028D27A4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D27A8 */ cpu->r[30] = cpu->r[6];
|
|
/* 028D27AC */ cpu->r[3] = cpu->r[25];
|
|
/* 028D27B0 */ cpu->r[5] = cpu->r[7];
|
|
/* 028D27B4 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D27B8 */ _t1 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D27B8 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D27BC */ cpu->r[29] = cpu->r[8];
|
|
/* 028D27C0 */ Gambit_fn_028E83F8(cpu);
|
|
/* 028D27C4 */ cpu->r[27] = cpu->r[3];
|
|
/* 028D27C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028D27C8 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D27C8 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028D27C8 */ if (_t3) goto L_028D27E4; else goto L_028D27CC;
|
|
L_028D27CC: ; // 0x28d27cc
|
|
/* 028D27CC */ _t4 = cpu->r[27] + 0x00000004u;
|
|
/* 028D27CC */ cpu->r[4] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D27D0 */ cpu->r[3] = cpu->r[25];
|
|
/* 028D27D4 */ cpu->r[28] = 0x00000000u;
|
|
/* 028D27D8 */ Gambit_fn_028E8458(cpu);
|
|
/* 028D27DC */ cpu->r[9] = cpu->r[3];
|
|
/* 028D27DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028D27E0 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D27E0 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D27E0 */ if (_t6) goto L_028D27E4; else goto L_028D27FC;
|
|
L_028D27E4: ; // 0x28d27e4
|
|
/* 028D27E4 */ /* nop */
|
|
/* 028D27E8 */ _t7 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D27E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D27EC */ cpu->lr = cpu->r[0];
|
|
/* 028D27F0 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 028D27F4 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D27F8 */ return;
|
|
L_028D27FC: ; // 0x28d27fc
|
|
/* 028D27FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D2800 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2800 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D2800 */ if (_t9) goto L_028D2804; else goto L_028D2820;
|
|
L_028D2804: ; // 0x28d2804
|
|
/* 028D2804 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2808 */ cpu->r[4] = cpu->r[29];
|
|
/* 028D280C */ Gambit_fn_028D248C(cpu);
|
|
/* 028D2810 */ _t10 = cpu->r[31] + 0x00000008u;
|
|
/* 028D2810 */ cpu->r[28] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D2814 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028D2818 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2818 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D2818 */ if (_t12) goto L_028D28E0; else goto L_028D281C;
|
|
L_028D281C: ; // 0x28d281c
|
|
/* 028D281C */ goto L_028D289C;
|
|
L_028D2820: ; // 0x28d2820
|
|
/* 028D2820 */ _t13 = cpu->r[9] + 0x00000000u;
|
|
/* 028D2820 */ cpu->r[4] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D2824 */ cpu->r[3] = cpu->r[25];
|
|
/* 028D2828 */ _t14 = cpu->r[9] + 0x00000004u;
|
|
/* 028D2828 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D282C */ Gambit_fn_028E83A4(cpu);
|
|
/* 028D2830 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D2834 */ cpu->r[5] = cpu->r[29];
|
|
/* 028D2838 */ cpu->r[11] = cpu->r[3];
|
|
/* 028D283C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D2840 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2844 */ cpu->r[0] = cpu->r[0] + 0xFFFFA6ACu;
|
|
/* 028D2848 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2848 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D2848 */ if (_t16) goto L_028D284C; else goto L_028D2870;
|
|
L_028D284C: ; // 0x28d284c
|
|
/* 028D284C */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D284C */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 028D2850 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D2854 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028D2854 */ rbrew_write32(cpu->mem, _t18, cpu->r[11]);
|
|
/* 028D2858 */ Gambit_fn_028D2508(cpu);
|
|
/* 028D285C */ cpu->r[4] = cpu->r[3];
|
|
/* 028D2860 */ cpu->r[5] = cpu->r[26];
|
|
/* 028D2864 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2868 */ Gambit_fn_028D26B4(cpu);
|
|
/* 028D286C */ goto L_028D2894;
|
|
L_028D2870: ; // 0x28d2870
|
|
/* 028D2870 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2870 */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 028D2874 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2878 */ _t20 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2878 */ rbrew_write32(cpu->mem, _t20, cpu->r[11]);
|
|
/* 028D287C */ Gambit_fn_028D23D4(cpu);
|
|
/* 028D2880 */ cpu->r[4] = cpu->r[3];
|
|
/* 028D2884 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2888 */ cpu->r[5] = cpu->r[26];
|
|
/* 028D288C */ cpu->r[28] = cpu->r[4];
|
|
/* 028D2890 */ Gambit_fn_028D26B4(cpu);
|
|
L_028D2894: ; // 0x28d2894
|
|
/* 028D2894 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028D2898 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2898 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028D2898 */ if (_t22) goto L_028D28E0; else goto L_028D289C;
|
|
L_028D289C: ; // 0x28d289c
|
|
/* 028D289C */ _t23 = cpu->r[27] + 0x00000008u;
|
|
/* 028D289C */ cpu->r[10] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D28A0 */ cpu->r[30] = 0x00000000u;
|
|
/* 028D28A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[10]);
|
|
/* 028D28A8 */ _t24 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D28A8 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D28A8 */ if (_t25) goto L_028D28AC; else goto L_028D28E0;
|
|
L_028D28AC: ; // 0x28d28ac
|
|
/* 028D28AC */ cpu->r[8] = cpu->r[29];
|
|
/* 028D28B0 */ cpu->r[7] = cpu->r[30];
|
|
/* 028D28B4 */ cpu->r[6] = cpu->r[27];
|
|
/* 028D28B8 */ cpu->r[5] = cpu->r[28];
|
|
/* 028D28BC */ cpu->r[4] = cpu->r[25];
|
|
/* 028D28C0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D28C4 */ Gambit_fn_028D2790(cpu);
|
|
/* 028D28C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D28CC */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D28CC */ _t27 = _t26 & 0x00000001u;
|
|
/* 028D28CC */ if (_t27) goto L_028D27E4; else goto L_028D28D0;
|
|
L_028D28D0: ; // 0x28d28d0
|
|
/* 028D28D0 */ _t28 = cpu->r[27] + 0x00000008u;
|
|
/* 028D28D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D28D4 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028D28D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028D28DC */ _t29 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D28DC */ _t30 = _t29 & 0x00000001u;
|
|
/* 028D28DC */ if (_t30) goto L_028D28AC; else goto L_028D28E0;
|
|
L_028D28E0: ; // 0x28d28e0
|
|
/* 028D28E0 */ /* nop */
|
|
/* 028D28E4 */ _t31 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D28E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028D28E8 */ cpu->lr = cpu->r[0];
|
|
/* 028D28EC */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 028D28F0 */ cpu->r[3] = 0x00000001u;
|
|
/* 028D28F4 */ return;
|
|
}
|
|
|
|
// fn_028D28F8 @ 0x28d28f8
|
|
void Gambit_fn_028D28F8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26;
|
|
|
|
L_028D28F8: ; // 0x28d28f8
|
|
/* 028D28F8 */ cpu->r[0] = cpu->lr;
|
|
/* 028D28FC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D28FC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D28FC */ cpu->r[1] = _t0;
|
|
/* 028D2900 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2900 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D2904 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2904 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D2908 */ cpu->r[31] = cpu->r[5];
|
|
/* 028D290C */ cpu->r[30] = cpu->r[4] + 0x0000005Cu;
|
|
/* 028D2910 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D2910 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D2914 */ _t4 = cpu->r[31] + 0x00000000u;
|
|
/* 028D2914 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028D2918 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D291C */ Gambit_fn_028BD330(cpu);
|
|
/* 028D2920 */ _t5 = cpu->r[31] + 0x00000004u;
|
|
/* 028D2920 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 028D2924 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D2928 */ Gambit_fn_028BD370(cpu);
|
|
/* 028D292C */ _t6 = cpu->r[31] + 0x00000008u;
|
|
/* 028D292C */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028D2930 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D2934 */ Gambit_fn_028BD388(cpu);
|
|
/* 028D2938 */ _t7 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D2938 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028D293C */ cpu->r[3] = cpu->r[30];
|
|
/* 028D2940 */ Gambit_fn_028BD390(cpu);
|
|
/* 028D2944 */ _t8 = cpu->r[31] + 0x00000014u;
|
|
/* 028D2944 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028D2948 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D294C */ _t9 = cpu->r[31] + 0x00000010u;
|
|
/* 028D294C */ cpu->r[4] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D2950 */ Gambit_fn_028BD3A8(cpu);
|
|
/* 028D2954 */ _t10 = cpu->r[31] + 0x00000018u;
|
|
/* 028D2954 */ cpu->r[4] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D2958 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D295C */ Gambit_fn_028BD3CC(cpu);
|
|
/* 028D2960 */ _t11 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028D2960 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028D2964 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D2968 */ Gambit_fn_028BD3D4(cpu);
|
|
/* 028D296C */ _t12 = cpu->r[31] + 0x00000020u;
|
|
/* 028D296C */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 028D2970 */ cpu->r[0] = 0x00000000u;
|
|
/* 028D2974 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D2978 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D297C */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028D297C */ rbrew_write32(cpu->mem, _t13, cpu->r[0]);
|
|
/* 028D2980 */ Gambit_fn_028BD348(cpu);
|
|
/* 028D2984 */ cpu->r[12] = 0x00000001u;
|
|
/* 028D2988 */ _t14 = cpu->r[31] + 0x00000024u;
|
|
/* 028D2988 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028D298C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D2990 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D2994 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028D2994 */ rbrew_write32(cpu->mem, _t15, cpu->r[12]);
|
|
/* 028D2998 */ Gambit_fn_028BD348(cpu);
|
|
/* 028D299C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D29A0 */ _t16 = cpu->r[31] + 0x00000028u;
|
|
/* 028D29A0 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028D29A4 */ cpu->r[0] = 0x00000002u;
|
|
/* 028D29A8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D29AC */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 028D29AC */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 028D29B0 */ Gambit_fn_028BD348(cpu);
|
|
/* 028D29B4 */ cpu->r[0] = 0x00000003u;
|
|
/* 028D29B8 */ _t18 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028D29B8 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t18);
|
|
/* 028D29BC */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D29C0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D29C4 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028D29C4 */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 028D29C8 */ Gambit_fn_028BD348(cpu);
|
|
/* 028D29CC */ cpu->r[9] = 0x00000004u;
|
|
/* 028D29D0 */ _t20 = cpu->r[31] + 0x00000030u;
|
|
/* 028D29D0 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t20);
|
|
/* 028D29D4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D29D8 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D29DC */ _t21 = cpu->r[1] + 0x00000008u;
|
|
/* 028D29DC */ rbrew_write32(cpu->mem, _t21, cpu->r[9]);
|
|
/* 028D29E0 */ Gambit_fn_028BD348(cpu);
|
|
/* 028D29E4 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D29E8 */ _t22 = cpu->r[31] + 0x00000034u;
|
|
/* 028D29E8 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 028D29EC */ cpu->r[10] = 0x00000005u;
|
|
/* 028D29F0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D29F4 */ _t23 = cpu->r[1] + 0x00000008u;
|
|
/* 028D29F4 */ rbrew_write32(cpu->mem, _t23, cpu->r[10]);
|
|
/* 028D29F8 */ Gambit_fn_028BD348(cpu);
|
|
/* 028D29FC */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D29FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D2A00 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2A00 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D2A04 */ cpu->lr = cpu->r[0];
|
|
/* 028D2A08 */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2A08 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D2A0C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D2A10 */ return;
|
|
}
|
|
|
|
// fn_028D28FC @ 0x28d28fc
|
|
void Gambit_fn_028D28FC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26;
|
|
|
|
L_028D28FC: ; // 0x28d28fc
|
|
/* 028D28FC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D28FC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D28FC */ cpu->r[1] = _t0;
|
|
/* 028D2900 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2900 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D2904 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2904 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D2908 */ cpu->r[31] = cpu->r[5];
|
|
/* 028D290C */ cpu->r[30] = cpu->r[4] + 0x0000005Cu;
|
|
/* 028D2910 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D2910 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D2914 */ _t4 = cpu->r[31] + 0x00000000u;
|
|
/* 028D2914 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028D2918 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D291C */ Gambit_fn_028BD330(cpu);
|
|
/* 028D2920 */ _t5 = cpu->r[31] + 0x00000004u;
|
|
/* 028D2920 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 028D2924 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D2928 */ Gambit_fn_028BD370(cpu);
|
|
/* 028D292C */ _t6 = cpu->r[31] + 0x00000008u;
|
|
/* 028D292C */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028D2930 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D2934 */ Gambit_fn_028BD388(cpu);
|
|
/* 028D2938 */ _t7 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D2938 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028D293C */ cpu->r[3] = cpu->r[30];
|
|
/* 028D2940 */ Gambit_fn_028BD390(cpu);
|
|
/* 028D2944 */ _t8 = cpu->r[31] + 0x00000014u;
|
|
/* 028D2944 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028D2948 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D294C */ _t9 = cpu->r[31] + 0x00000010u;
|
|
/* 028D294C */ cpu->r[4] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D2950 */ Gambit_fn_028BD3A8(cpu);
|
|
/* 028D2954 */ _t10 = cpu->r[31] + 0x00000018u;
|
|
/* 028D2954 */ cpu->r[4] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D2958 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D295C */ Gambit_fn_028BD3CC(cpu);
|
|
/* 028D2960 */ _t11 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028D2960 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028D2964 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D2968 */ Gambit_fn_028BD3D4(cpu);
|
|
/* 028D296C */ _t12 = cpu->r[31] + 0x00000020u;
|
|
/* 028D296C */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 028D2970 */ cpu->r[0] = 0x00000000u;
|
|
/* 028D2974 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D2978 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D297C */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028D297C */ rbrew_write32(cpu->mem, _t13, cpu->r[0]);
|
|
/* 028D2980 */ Gambit_fn_028BD348(cpu);
|
|
/* 028D2984 */ cpu->r[12] = 0x00000001u;
|
|
/* 028D2988 */ _t14 = cpu->r[31] + 0x00000024u;
|
|
/* 028D2988 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028D298C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D2990 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D2994 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028D2994 */ rbrew_write32(cpu->mem, _t15, cpu->r[12]);
|
|
/* 028D2998 */ Gambit_fn_028BD348(cpu);
|
|
/* 028D299C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D29A0 */ _t16 = cpu->r[31] + 0x00000028u;
|
|
/* 028D29A0 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028D29A4 */ cpu->r[0] = 0x00000002u;
|
|
/* 028D29A8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D29AC */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 028D29AC */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 028D29B0 */ Gambit_fn_028BD348(cpu);
|
|
/* 028D29B4 */ cpu->r[0] = 0x00000003u;
|
|
/* 028D29B8 */ _t18 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028D29B8 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t18);
|
|
/* 028D29BC */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D29C0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D29C4 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028D29C4 */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 028D29C8 */ Gambit_fn_028BD348(cpu);
|
|
/* 028D29CC */ cpu->r[9] = 0x00000004u;
|
|
/* 028D29D0 */ _t20 = cpu->r[31] + 0x00000030u;
|
|
/* 028D29D0 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t20);
|
|
/* 028D29D4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D29D8 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D29DC */ _t21 = cpu->r[1] + 0x00000008u;
|
|
/* 028D29DC */ rbrew_write32(cpu->mem, _t21, cpu->r[9]);
|
|
/* 028D29E0 */ Gambit_fn_028BD348(cpu);
|
|
/* 028D29E4 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D29E8 */ _t22 = cpu->r[31] + 0x00000034u;
|
|
/* 028D29E8 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 028D29EC */ cpu->r[10] = 0x00000005u;
|
|
/* 028D29F0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D29F4 */ _t23 = cpu->r[1] + 0x00000008u;
|
|
/* 028D29F4 */ rbrew_write32(cpu->mem, _t23, cpu->r[10]);
|
|
/* 028D29F8 */ Gambit_fn_028BD348(cpu);
|
|
/* 028D29FC */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D29FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D2A00 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2A00 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D2A04 */ cpu->lr = cpu->r[0];
|
|
/* 028D2A08 */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2A08 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D2A0C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D2A10 */ return;
|
|
}
|
|
|
|
// fn_028D2A14 @ 0x28d2a14
|
|
void Gambit_fn_028D2A14(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50;
|
|
|
|
L_028D2A14: ; // 0x28d2a14
|
|
/* 028D2A14 */ _t0 = cpu->r[1] + 0xFFFFFF90u;
|
|
/* 028D2A14 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D2A14 */ cpu->r[1] = _t0;
|
|
/* 028D2A18 */ /* nop */
|
|
/* 028D2A1C */ cpu->r[0] = cpu->lr;
|
|
/* 028D2A20 */ _t1 = cpu->r[1] + 0x00000060u;
|
|
/* 028D2A20 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028D2A24 */ _t2 = cpu->r[1] + 0x00000050u;
|
|
/* 028D2A24 */ rbrew_write_f64(cpu->mem, _t2, cpu->f[30]);
|
|
/* 028D2A28 */ /* nop */
|
|
/* 028D2A2C */ _t3 = cpu->r[1] + 0x00000068u;
|
|
/* 028D2A2C */ rbrew_write_f32(cpu->mem, _t3, cpu->f[31]);
|
|
/* 028D2A30 */ /* nop */
|
|
/* 028D2A34 */ _t4 = cpu->r[1] + 0x00000074u;
|
|
/* 028D2A34 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D2A38 */ _t5 = cpu->r[1] + 0x00000058u;
|
|
/* 028D2A38 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[30]);
|
|
/* 028D2A3C */ cpu->r[29] = cpu->r[6];
|
|
/* 028D2A40 */ cpu->r[28] = cpu->r[5];
|
|
/* 028D2A44 */ _t6 = cpu->r[28] + 0x00000000u;
|
|
/* 028D2A44 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028D2A48 */ _t7 = cpu->r[28] + 0x00000004u;
|
|
/* 028D2A48 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028D2A4C */ _t8 = cpu->r[1] + 0x00000020u;
|
|
/* 028D2A4C */ rbrew_write_f32(cpu->mem, _t8, cpu->f[13]);
|
|
/* 028D2A50 */ _t9 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D2A50 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028D2A54 */ _t10 = cpu->r[28] + 0x00000008u;
|
|
/* 028D2A54 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028D2A58 */ _t11 = cpu->r[4] + 0x00000058u;
|
|
/* 028D2A58 */ cpu->r[27] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D2A5C */ _t12 = cpu->r[1] + 0x00000028u;
|
|
/* 028D2A5C */ rbrew_write_f32(cpu->mem, _t12, cpu->f[12]);
|
|
/* 028D2A60 */ cpu->r[5] = cpu->r[7];
|
|
/* 028D2A64 */ _t13 = cpu->r[1] + 0x00000024u;
|
|
/* 028D2A64 */ rbrew_write_f32(cpu->mem, _t13, cpu->f[0]);
|
|
/* 028D2A68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028D2A6C */ _t14 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D2A6C */ rbrew_write_f32(cpu->mem, _t14, cpu->f[13]);
|
|
/* 028D2A70 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2A70 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D2A70 */ if (_t16) goto L_028D2B2C; else goto L_028D2A74;
|
|
L_028D2A74: ; // 0x28d2a74
|
|
/* 028D2A74 */ _t17 = cpu->r[27] + 0x00000000u;
|
|
/* 028D2A74 */ cpu->r[0] = rbrew_read8(cpu->mem, _t17);
|
|
/* 028D2A78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D2A7C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2A7C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D2A7C */ if (_t19) goto L_028D2A80; else goto L_028D2A8C;
|
|
L_028D2A80: ; // 0x28d2a80
|
|
/* 028D2A80 */ _t20 = cpu->r[28] + 0x00000010u;
|
|
/* 028D2A80 */ cpu->r[4] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D2A84 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D2A88 */ Gambit_fn_028D0F80(cpu);
|
|
L_028D2A8C: ; // 0x28d2a8c
|
|
/* 028D2A8C */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 028D2A90 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D2A94 */ Gambit_fn_028D105C(cpu);
|
|
/* 028D2A98 */ _t21 = cpu->r[28] + 0x00000010u;
|
|
/* 028D2A98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D2A9C */ cpu->r[30] = 0x00000000u;
|
|
/* 028D2AA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028D2AA4 */ _t22 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D2AA4 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028D2AA4 */ if (_t23) goto L_028D2AA8; else goto L_028D2B2C;
|
|
L_028D2AA8: ; // 0x28d2aa8
|
|
/* 028D2AA8 */ cpu->r[10] = 0x10140000u;
|
|
/* 028D2AAC */ cpu->r[9] = 0x10140000u;
|
|
/* 028D2AB0 */ cpu->r[25] = 0x00000000u;
|
|
/* 028D2AB4 */ _t24 = cpu->r[10] + 0xFFFFA704u;
|
|
/* 028D2AB4 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 028D2AB8 */ cpu->r[26] = 0x10140000u;
|
|
/* 028D2ABC */ cpu->r[31] = cpu->r[28];
|
|
/* 028D2AC0 */ _t25 = cpu->r[9] + 0xFFFFA708u;
|
|
/* 028D2AC0 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 028D2AC4 */ cpu->r[26] = cpu->r[26] + 0xFFFFA6ACu;
|
|
L_028D2AC8: ; // 0x28d2ac8
|
|
/* 028D2AC8 */ _t26 = cpu->r[31] + 0x00000014u;
|
|
/* 028D2AC8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D2AC8 */ cpu->r[31] = _t26;
|
|
/* 028D2ACC */ cpu->r[3] = cpu->r[29];
|
|
/* 028D2AD0 */ Gambit_fn_028E83A4(cpu);
|
|
/* 028D2AD4 */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2AD4 */ rbrew_write32(cpu->mem, _t27, cpu->r[25]);
|
|
/* 028D2AD8 */ _t28 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2AD8 */ rbrew_write_f32(cpu->mem, _t28, cpu->f[31]);
|
|
/* 028D2ADC */ _t29 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2ADC */ rbrew_write_f32(cpu->mem, _t29, cpu->f[31]);
|
|
/* 028D2AE0 */ _t30 = cpu->r[1] + 0x00000008u;
|
|
/* 028D2AE0 */ rbrew_write_f32(cpu->mem, _t30, cpu->f[30]);
|
|
/* 028D2AE4 */ _t31 = cpu->r[31] + 0x00000004u;
|
|
/* 028D2AE4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 028D2AE8 */ _t32 = cpu->r[1] + 0x00000008u;
|
|
/* 028D2AE8 */ rbrew_write_f32(cpu->mem, _t32, cpu->f[0]);
|
|
/* 028D2AEC */ _t33 = cpu->r[31] + 0x00000008u;
|
|
/* 028D2AEC */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t33);
|
|
/* 028D2AF0 */ _t34 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2AF0 */ rbrew_write_f32(cpu->mem, _t34, cpu->f[12]);
|
|
/* 028D2AF4 */ _t35 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D2AF4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t35);
|
|
/* 028D2AF8 */ _t36 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2AF8 */ rbrew_write_f32(cpu->mem, _t36, cpu->f[0]);
|
|
/* 028D2AFC */ _t37 = cpu->r[31] + 0x00000010u;
|
|
/* 028D2AFC */ cpu->r[11] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028D2B00 */ _t38 = cpu->r[1] + 0x00000018u;
|
|
/* 028D2B00 */ rbrew_write32(cpu->mem, _t38, cpu->r[3]);
|
|
/* 028D2B04 */ cpu->r[4] = cpu->r[1] + 0x00000018u;
|
|
/* 028D2B08 */ _t39 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2B08 */ rbrew_write32(cpu->mem, _t39, cpu->r[11]);
|
|
/* 028D2B0C */ cpu->r[3] = cpu->r[27];
|
|
/* 028D2B10 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028D2B14 */ _t40 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D2B14 */ rbrew_write32(cpu->mem, _t40, cpu->r[26]);
|
|
/* 028D2B18 */ Gambit_fn_028D193C(cpu);
|
|
/* 028D2B1C */ _t41 = cpu->r[28] + 0x00000010u;
|
|
/* 028D2B1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028D2B20 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028D2B24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028D2B28 */ _t42 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D2B28 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028D2B28 */ if (_t43) goto L_028D2AC8; else goto L_028D2B2C;
|
|
L_028D2B2C: ; // 0x28d2b2c
|
|
/* 028D2B2C */ /* nop */
|
|
/* 028D2B30 */ _t44 = cpu->r[1] + 0x00000058u;
|
|
/* 028D2B30 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t44);
|
|
/* 028D2B34 */ _t45 = cpu->r[1] + 0x00000068u;
|
|
/* 028D2B34 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t45);
|
|
/* 028D2B38 */ _t46 = cpu->r[1] + 0x00000050u;
|
|
/* 028D2B38 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t46);
|
|
/* 028D2B3C */ _t47 = cpu->r[1] + 0x00000060u;
|
|
/* 028D2B3C */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t47);
|
|
/* 028D2B40 */ _t48 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D2B40 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028D2B40 */ if (_t49) goto L_028D2B44; // else: addr-0 trap, fall-through
|
|
L_028D2B44: ; // 0x28d2b44
|
|
/* 028D2B44 */ _t50 = cpu->r[1] + 0x00000074u;
|
|
/* 028D2B44 */ cpu->r[0] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028D2B48 */ cpu->lr = cpu->r[0];
|
|
/* 028D2B4C */ cpu->r[1] = cpu->r[1] + 0x00000070u;
|
|
/* 028D2B50 */ return;
|
|
}
|
|
|
|
// fn_028D2B54 @ 0x28d2b54
|
|
void Gambit_fn_028D2B54(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028D2B54: ; // 0x28d2b54
|
|
/* 028D2B54 */ cpu->r[0] = cpu->lr;
|
|
/* 028D2B58 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D2B58 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D2B58 */ cpu->r[1] = _t0;
|
|
/* 028D2B5C */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2B5C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D2B60 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2B60 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D2B64 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D2B64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D2B68 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D2B68 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D2B6C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2B6C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D2B6C */ if (_t5) goto L_028D2B70; else goto L_028D2B8C;
|
|
L_028D2B70: ; // 0x28d2b70
|
|
/* 028D2B70 */ _t6 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D2B70 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D2B74 */ _t7 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2B74 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D2B78 */ cpu->lr = cpu->r[0];
|
|
/* 028D2B7C */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2B7C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D2B80 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D2B84 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D2B88 */ return;
|
|
L_028D2B8C: ; // 0x28d2b8c
|
|
/* 028D2B8C */ _t9 = cpu->r[4] + 0x00000000u;
|
|
/* 028D2B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D2B90 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028D2B94 */ cpu->r[4] = cpu->r[5];
|
|
/* 028D2B98 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028D2B98 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028D2B9C */ Gambit_fn_028D515C(cpu);
|
|
/* 028D2BA0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D2BA4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2BA8 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D2BAC */ Gambit_fn_028D36E0(cpu);
|
|
/* 028D2BB0 */ _t11 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D2BB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D2BB4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D2BB8 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2BB8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D2BBC */ cpu->lr = cpu->r[0];
|
|
/* 028D2BC0 */ _t13 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2BC0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D2BC4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D2BC8 */ return;
|
|
}
|
|
|
|
// fn_028D2B58 @ 0x28d2b58
|
|
void Gambit_fn_028D2B58(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028D2B58: ; // 0x28d2b58
|
|
/* 028D2B58 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D2B58 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D2B58 */ cpu->r[1] = _t0;
|
|
/* 028D2B5C */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2B5C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D2B60 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2B60 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D2B64 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D2B64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D2B68 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D2B68 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D2B6C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2B6C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D2B6C */ if (_t5) goto L_028D2B70; else goto L_028D2B8C;
|
|
L_028D2B70: ; // 0x28d2b70
|
|
/* 028D2B70 */ _t6 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D2B70 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D2B74 */ _t7 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2B74 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D2B78 */ cpu->lr = cpu->r[0];
|
|
/* 028D2B7C */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2B7C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D2B80 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D2B84 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D2B88 */ return;
|
|
L_028D2B8C: ; // 0x28d2b8c
|
|
/* 028D2B8C */ _t9 = cpu->r[4] + 0x00000000u;
|
|
/* 028D2B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D2B90 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028D2B94 */ cpu->r[4] = cpu->r[5];
|
|
/* 028D2B98 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028D2B98 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028D2B9C */ Gambit_fn_028D515C(cpu);
|
|
/* 028D2BA0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D2BA4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2BA8 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D2BAC */ Gambit_fn_028D36E0(cpu);
|
|
/* 028D2BB0 */ _t11 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D2BB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D2BB4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D2BB8 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2BB8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D2BBC */ cpu->lr = cpu->r[0];
|
|
/* 028D2BC0 */ _t13 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2BC0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D2BC4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D2BC8 */ return;
|
|
}
|
|
|
|
// fn_028D2BCC @ 0x28d2bcc
|
|
void Gambit_fn_028D2BCC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028D2BCC: ; // 0x28d2bcc
|
|
/* 028D2BCC */ cpu->r[0] = cpu->lr;
|
|
/* 028D2BD0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D2BD0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D2BD0 */ cpu->r[1] = _t0;
|
|
/* 028D2BD4 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D2BD4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D2BD8 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2BD8 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D2BDC */ cpu->r[30] = cpu->r[3];
|
|
/* 028D2BDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D2BE0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2BE0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D2BE4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2BE4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D2BE4 */ if (_t5) goto L_028D2C08; else goto L_028D2BE8;
|
|
L_028D2BE8: ; // 0x28d2be8
|
|
/* 028D2BE8 */ cpu->r[3] = 0x00000024u;
|
|
/* 028D2BEC */ cpu->r[5] = 0x00000004u;
|
|
/* 028D2BF0 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D2BF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D2BF8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2BF8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D2BF8 */ if (_t7) goto L_028D2C08; else goto L_028D2BFC;
|
|
L_028D2BFC: ; // 0x28d2bfc
|
|
/* 028D2BFC */ Gambit_fn_028D5344(cpu);
|
|
/* 028D2C00 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D2C00 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D2C04 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2C04 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D2C04 */ if (_t9) goto L_028D2C08; else goto L_028D2C24;
|
|
L_028D2C08: ; // 0x28d2c08
|
|
/* 028D2C08 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2C08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D2C0C */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028D2C0C */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D2C10 */ cpu->lr = cpu->r[0];
|
|
/* 028D2C14 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2C14 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D2C18 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2C1C */ cpu->r[3] = 0x00000000u;
|
|
/* 028D2C20 */ return;
|
|
L_028D2C24: ; // 0x28d2c24
|
|
/* 028D2C24 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D2C28 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D2C2C */ Gambit_fn_028D36E8(cpu);
|
|
/* 028D2C30 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2C30 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D2C34 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2C38 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2C38 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D2C3C */ cpu->lr = cpu->r[0];
|
|
/* 028D2C40 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028D2C40 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D2C44 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2C48 */ return;
|
|
}
|
|
|
|
// fn_028D2BD0 @ 0x28d2bd0
|
|
void Gambit_fn_028D2BD0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028D2BD0: ; // 0x28d2bd0
|
|
/* 028D2BD0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D2BD0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D2BD0 */ cpu->r[1] = _t0;
|
|
/* 028D2BD4 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D2BD4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D2BD8 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2BD8 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D2BDC */ cpu->r[30] = cpu->r[3];
|
|
/* 028D2BDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D2BE0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2BE0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D2BE4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2BE4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D2BE4 */ if (_t5) goto L_028D2C08; else goto L_028D2BE8;
|
|
L_028D2BE8: ; // 0x28d2be8
|
|
/* 028D2BE8 */ cpu->r[3] = 0x00000024u;
|
|
/* 028D2BEC */ cpu->r[5] = 0x00000004u;
|
|
/* 028D2BF0 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D2BF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D2BF8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2BF8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D2BF8 */ if (_t7) goto L_028D2C08; else goto L_028D2BFC;
|
|
L_028D2BFC: ; // 0x28d2bfc
|
|
/* 028D2BFC */ Gambit_fn_028D5344(cpu);
|
|
/* 028D2C00 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D2C00 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D2C04 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2C04 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D2C04 */ if (_t9) goto L_028D2C08; else goto L_028D2C24;
|
|
L_028D2C08: ; // 0x28d2c08
|
|
/* 028D2C08 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2C08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D2C0C */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028D2C0C */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D2C10 */ cpu->lr = cpu->r[0];
|
|
/* 028D2C14 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2C14 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D2C18 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2C1C */ cpu->r[3] = 0x00000000u;
|
|
/* 028D2C20 */ return;
|
|
L_028D2C24: ; // 0x28d2c24
|
|
/* 028D2C24 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D2C28 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D2C2C */ Gambit_fn_028D36E8(cpu);
|
|
/* 028D2C30 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2C30 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D2C34 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2C38 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2C38 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D2C3C */ cpu->lr = cpu->r[0];
|
|
/* 028D2C40 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028D2C40 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D2C44 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2C48 */ return;
|
|
}
|
|
|
|
// fn_028D2C4C @ 0x28d2c4c
|
|
void Gambit_fn_028D2C4C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32;
|
|
|
|
L_028D2C4C: ; // 0x28d2c4c
|
|
/* 028D2C4C */ cpu->r[0] = cpu->lr;
|
|
/* 028D2C50 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 028D2C50 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D2C50 */ cpu->r[1] = _t0;
|
|
/* 028D2C54 */ _t1 = cpu->r[1] + 0x00000030u;
|
|
/* 028D2C54 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D2C58 */ _t2 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D2C58 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028D2C5C */ cpu->r[30] = cpu->r[5];
|
|
/* 028D2C60 */ _t3 = cpu->r[1] + 0x00000034u;
|
|
/* 028D2C60 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D2C64 */ _t4 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D2C64 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D2C68 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D2C6C */ _t5 = cpu->r[30] + 0x00000000u;
|
|
/* 028D2C6C */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 028D2C70 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D2C74 */ cpu->r[31] = cpu->r[6];
|
|
/* 028D2C78 */ Gambit_fn_028D36F0(cpu);
|
|
/* 028D2C7C */ _t6 = cpu->r[30] + 0x00000004u;
|
|
/* 028D2C7C */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D2C80 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D2C84 */ cpu->r[5] = cpu->r[31];
|
|
/* 028D2C88 */ cpu->r[4] = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2C8C */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2C8C */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 028D2C90 */ Gambit_fn_028D2B54(cpu);
|
|
/* 028D2C94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D2C98 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2C98 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D2C98 */ if (_t9) goto L_028D2CB4; else goto L_028D2C9C;
|
|
L_028D2C9C: ; // 0x28d2c9c
|
|
/* 028D2C9C */ _t10 = cpu->r[30] + 0x00000008u;
|
|
/* 028D2C9C */ cpu->r[7] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D2CA0 */ cpu->r[0] = cpu->r[7] + 0xFFFFFFFFu;
|
|
/* 028D2CA4 */ cpu->r[0] = cpu->r[7] - cpu->r[0];
|
|
/* 028D2CA8 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D2CAC */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028D2CAC */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[0]);
|
|
/* 028D2CB0 */ Gambit_fn_028D49C4(cpu);
|
|
L_028D2CB4: ; // 0x28d2cb4
|
|
/* 028D2CB4 */ _t12 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028D2CB4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D2CB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D2CBC */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2CBC */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D2CBC */ if (_t14) goto L_028D2D0C; else goto L_028D2CC0;
|
|
L_028D2CC0: ; // 0x28d2cc0
|
|
/* 028D2CC0 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D2CC4 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D2CC8 */ Gambit_fn_028D2BCC(cpu);
|
|
/* 028D2CCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D2CD0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2CD0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D2CD0 */ if (_t16) goto L_028D2D0C; else goto L_028D2CD4;
|
|
L_028D2CD4: ; // 0x28d2cd4
|
|
/* 028D2CD4 */ _t17 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028D2CD4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028D2CD8 */ _t18 = cpu->r[30] + 0x00000010u;
|
|
/* 028D2CD8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D2CDC */ _t19 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D2CDC */ rbrew_write_f32(cpu->mem, _t19, cpu->f[0]);
|
|
/* 028D2CE0 */ _t20 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2CE0 */ rbrew_write32(cpu->mem, _t20, cpu->r[10]);
|
|
/* 028D2CE4 */ _t21 = cpu->r[30] + 0x00000014u;
|
|
/* 028D2CE4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D2CE8 */ _t22 = cpu->r[30] + 0x00000020u;
|
|
/* 028D2CE8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 028D2CEC */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2CEC */ rbrew_write32(cpu->mem, _t23, cpu->r[11]);
|
|
/* 028D2CF0 */ _t24 = cpu->r[1] + 0x00000020u;
|
|
/* 028D2CF0 */ rbrew_write_f32(cpu->mem, _t24, cpu->f[13]);
|
|
/* 028D2CF4 */ _t25 = cpu->r[30] + 0x00000018u;
|
|
/* 028D2CF4 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 028D2CF8 */ _t26 = cpu->r[30] + 0x00000024u;
|
|
/* 028D2CF8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028D2CFC */ _t27 = cpu->r[1] + 0x00000018u;
|
|
/* 028D2CFC */ rbrew_write_f32(cpu->mem, _t27, cpu->f[12]);
|
|
/* 028D2D00 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2D04 */ _t28 = cpu->r[1] + 0x00000024u;
|
|
/* 028D2D04 */ rbrew_write_f32(cpu->mem, _t28, cpu->f[0]);
|
|
/* 028D2D08 */ Gambit_fn_028D53E4(cpu);
|
|
L_028D2D0C: ; // 0x28d2d0c
|
|
/* 028D2D0C */ _t29 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D2D0C */ cpu->r[29] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028D2D10 */ _t30 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D2D10 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028D2D14 */ _t31 = cpu->r[1] + 0x00000030u;
|
|
/* 028D2D14 */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028D2D18 */ cpu->lr = cpu->r[0];
|
|
/* 028D2D1C */ _t32 = cpu->r[1] + 0x00000034u;
|
|
/* 028D2D1C */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028D2D20 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 028D2D24 */ return;
|
|
}
|
|
|
|
// fn_028D2C50 @ 0x28d2c50
|
|
void Gambit_fn_028D2C50(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32;
|
|
|
|
L_028D2C50: ; // 0x28d2c50
|
|
/* 028D2C50 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 028D2C50 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D2C50 */ cpu->r[1] = _t0;
|
|
/* 028D2C54 */ _t1 = cpu->r[1] + 0x00000030u;
|
|
/* 028D2C54 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D2C58 */ _t2 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D2C58 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028D2C5C */ cpu->r[30] = cpu->r[5];
|
|
/* 028D2C60 */ _t3 = cpu->r[1] + 0x00000034u;
|
|
/* 028D2C60 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D2C64 */ _t4 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D2C64 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D2C68 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D2C6C */ _t5 = cpu->r[30] + 0x00000000u;
|
|
/* 028D2C6C */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 028D2C70 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D2C74 */ cpu->r[31] = cpu->r[6];
|
|
/* 028D2C78 */ Gambit_fn_028D36F0(cpu);
|
|
/* 028D2C7C */ _t6 = cpu->r[30] + 0x00000004u;
|
|
/* 028D2C7C */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D2C80 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D2C84 */ cpu->r[5] = cpu->r[31];
|
|
/* 028D2C88 */ cpu->r[4] = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2C8C */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2C8C */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 028D2C90 */ Gambit_fn_028D2B54(cpu);
|
|
/* 028D2C94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D2C98 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2C98 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D2C98 */ if (_t9) goto L_028D2CB4; else goto L_028D2C9C;
|
|
L_028D2C9C: ; // 0x28d2c9c
|
|
/* 028D2C9C */ _t10 = cpu->r[30] + 0x00000008u;
|
|
/* 028D2C9C */ cpu->r[7] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D2CA0 */ cpu->r[0] = cpu->r[7] + 0xFFFFFFFFu;
|
|
/* 028D2CA4 */ cpu->r[0] = cpu->r[7] - cpu->r[0];
|
|
/* 028D2CA8 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D2CAC */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028D2CAC */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[0]);
|
|
/* 028D2CB0 */ Gambit_fn_028D49C4(cpu);
|
|
L_028D2CB4: ; // 0x28d2cb4
|
|
/* 028D2CB4 */ _t12 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028D2CB4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D2CB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D2CBC */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2CBC */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D2CBC */ if (_t14) goto L_028D2D0C; else goto L_028D2CC0;
|
|
L_028D2CC0: ; // 0x28d2cc0
|
|
/* 028D2CC0 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D2CC4 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D2CC8 */ Gambit_fn_028D2BCC(cpu);
|
|
/* 028D2CCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D2CD0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2CD0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D2CD0 */ if (_t16) goto L_028D2D0C; else goto L_028D2CD4;
|
|
L_028D2CD4: ; // 0x28d2cd4
|
|
/* 028D2CD4 */ _t17 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028D2CD4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028D2CD8 */ _t18 = cpu->r[30] + 0x00000010u;
|
|
/* 028D2CD8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D2CDC */ _t19 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D2CDC */ rbrew_write_f32(cpu->mem, _t19, cpu->f[0]);
|
|
/* 028D2CE0 */ _t20 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2CE0 */ rbrew_write32(cpu->mem, _t20, cpu->r[10]);
|
|
/* 028D2CE4 */ _t21 = cpu->r[30] + 0x00000014u;
|
|
/* 028D2CE4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D2CE8 */ _t22 = cpu->r[30] + 0x00000020u;
|
|
/* 028D2CE8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 028D2CEC */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2CEC */ rbrew_write32(cpu->mem, _t23, cpu->r[11]);
|
|
/* 028D2CF0 */ _t24 = cpu->r[1] + 0x00000020u;
|
|
/* 028D2CF0 */ rbrew_write_f32(cpu->mem, _t24, cpu->f[13]);
|
|
/* 028D2CF4 */ _t25 = cpu->r[30] + 0x00000018u;
|
|
/* 028D2CF4 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 028D2CF8 */ _t26 = cpu->r[30] + 0x00000024u;
|
|
/* 028D2CF8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028D2CFC */ _t27 = cpu->r[1] + 0x00000018u;
|
|
/* 028D2CFC */ rbrew_write_f32(cpu->mem, _t27, cpu->f[12]);
|
|
/* 028D2D00 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2D04 */ _t28 = cpu->r[1] + 0x00000024u;
|
|
/* 028D2D04 */ rbrew_write_f32(cpu->mem, _t28, cpu->f[0]);
|
|
/* 028D2D08 */ Gambit_fn_028D53E4(cpu);
|
|
L_028D2D0C: ; // 0x28d2d0c
|
|
/* 028D2D0C */ _t29 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D2D0C */ cpu->r[29] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028D2D10 */ _t30 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D2D10 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028D2D14 */ _t31 = cpu->r[1] + 0x00000030u;
|
|
/* 028D2D14 */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028D2D18 */ cpu->lr = cpu->r[0];
|
|
/* 028D2D1C */ _t32 = cpu->r[1] + 0x00000034u;
|
|
/* 028D2D1C */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028D2D20 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 028D2D24 */ return;
|
|
}
|
|
|
|
// fn_028D2D28 @ 0x28d2d28
|
|
void Gambit_fn_028D2D28(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28;
|
|
|
|
L_028D2D28: ; // 0x28d2d28
|
|
/* 028D2D28 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 028D2D28 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D2D28 */ cpu->r[1] = _t0;
|
|
/* 028D2D2C */ /* nop */
|
|
/* 028D2D30 */ cpu->r[24] = cpu->r[4];
|
|
/* 028D2D34 */ cpu->r[4] = cpu->r[5];
|
|
/* 028D2D38 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D2D3C */ cpu->r[25] = cpu->r[7];
|
|
/* 028D2D40 */ cpu->r[3] = cpu->r[24];
|
|
/* 028D2D44 */ cpu->r[5] = cpu->r[6];
|
|
/* 028D2D48 */ cpu->r[0] = cpu->lr;
|
|
/* 028D2D4C */ _t1 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D2D4C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D2D50 */ Gambit_fn_028E83F8(cpu);
|
|
/* 028D2D54 */ cpu->r[26] = cpu->r[3];
|
|
/* 028D2D58 */ _t2 = cpu->r[26] + 0x00000004u;
|
|
/* 028D2D58 */ cpu->r[4] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028D2D5C */ cpu->r[3] = cpu->r[24];
|
|
/* 028D2D60 */ Gambit_fn_028E8458(cpu);
|
|
/* 028D2D64 */ cpu->r[27] = cpu->r[3];
|
|
/* 028D2D68 */ _t3 = cpu->r[27] + 0x00000000u;
|
|
/* 028D2D68 */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D2D6C */ cpu->r[3] = cpu->r[24];
|
|
/* 028D2D70 */ Gambit_fn_028E83A4(cpu);
|
|
/* 028D2D74 */ cpu->r[30] = 0x10140000u;
|
|
/* 028D2D78 */ cpu->r[28] = cpu->r[3];
|
|
/* 028D2D7C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2D80 */ cpu->r[30] = cpu->r[30] + 0xFFFFA6ACu;
|
|
/* 028D2D84 */ _t4 = cpu->r[1] + 0x00000008u;
|
|
/* 028D2D84 */ rbrew_write32(cpu->mem, _t4, cpu->r[28]);
|
|
/* 028D2D88 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D2D8C */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2D8C */ rbrew_write32(cpu->mem, _t5, cpu->r[30]);
|
|
/* 028D2D90 */ Gambit_fn_028D2200(cpu);
|
|
/* 028D2D94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D2D98 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D2D9C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2D9C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D2D9C */ if (_t7) goto L_028D2E14; else goto L_028D2DA0;
|
|
L_028D2DA0: ; // 0x28d2da0
|
|
/* 028D2DA0 */ _t8 = cpu->r[27] + 0x00000008u;
|
|
/* 028D2DA0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D2DA4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2DA8 */ _t9 = cpu->r[29] + 0x00000144u;
|
|
/* 028D2DA8 */ rbrew_write32(cpu->mem, _t9, cpu->r[8]);
|
|
/* 028D2DAC */ _t10 = cpu->r[27] + 0x00000010u;
|
|
/* 028D2DAC */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D2DB0 */ cpu->r[4] = cpu->r[29];
|
|
/* 028D2DB4 */ cpu->r[5] = cpu->r[27] + 0x00000014u;
|
|
/* 028D2DB8 */ _t11 = cpu->r[29] + 0x0000014Cu;
|
|
/* 028D2DB8 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028D2DBC */ Gambit_fn_028D28F8(cpu);
|
|
/* 028D2DC0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2DC4 */ cpu->r[4] = cpu->r[29];
|
|
/* 028D2DC8 */ cpu->r[5] = cpu->r[27] + 0x00000084u;
|
|
/* 028D2DCC */ cpu->r[6] = cpu->r[24];
|
|
/* 028D2DD0 */ cpu->r[7] = cpu->r[25];
|
|
/* 028D2DD4 */ Gambit_fn_028D2A14(cpu);
|
|
/* 028D2DD8 */ _t12 = cpu->r[27] + 0x00000004u;
|
|
/* 028D2DD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D2DDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D2DE0 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2DE0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D2DE0 */ if (_t14) goto L_028D2DE4; else goto L_028D2E18;
|
|
L_028D2DE4: ; // 0x28d2de4
|
|
/* 028D2DE4 */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2DE4 */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
/* 028D2DE8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2DEC */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2DF0 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2DF0 */ rbrew_write32(cpu->mem, _t16, cpu->r[28]);
|
|
/* 028D2DF4 */ Gambit_fn_028D2310(cpu);
|
|
/* 028D2DF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D2DFC */ cpu->r[4] = cpu->r[3];
|
|
/* 028D2E00 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2E00 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D2E00 */ if (_t18) goto L_028D2E14; else goto L_028D2E04;
|
|
L_028D2E04: ; // 0x28d2e04
|
|
/* 028D2E04 */ cpu->r[6] = cpu->r[25];
|
|
/* 028D2E08 */ cpu->r[5] = cpu->r[27] + 0x0000005Cu;
|
|
/* 028D2E0C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2E10 */ Gambit_fn_028D2C4C(cpu);
|
|
L_028D2E14: ; // 0x28d2e14
|
|
/* 028D2E14 */ _t19 = cpu->r[27] + 0x00000004u;
|
|
/* 028D2E14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
L_028D2E18: ; // 0x28d2e18
|
|
/* 028D2E18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000001u);
|
|
/* 028D2E1C */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2E1C */ _t21 = _t20 & 0x00000001u;
|
|
/* 028D2E1C */ if (_t21) goto L_028D2E20; else goto L_028D2E58;
|
|
L_028D2E20: ; // 0x28d2e20
|
|
/* 028D2E20 */ _t22 = cpu->r[26] + 0x00000008u;
|
|
/* 028D2E20 */ cpu->r[10] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D2E24 */ cpu->r[30] = 0x00000000u;
|
|
/* 028D2E28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[10]);
|
|
/* 028D2E2C */ _t23 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D2E2C */ _t24 = _t23 & 0x00000001u;
|
|
/* 028D2E2C */ if (_t24) goto L_028D2E30; else goto L_028D2E58;
|
|
L_028D2E30: ; // 0x28d2e30
|
|
/* 028D2E30 */ cpu->r[7] = cpu->r[25];
|
|
/* 028D2E34 */ cpu->r[6] = cpu->r[30];
|
|
/* 028D2E38 */ cpu->r[5] = cpu->r[26];
|
|
/* 028D2E3C */ cpu->r[4] = cpu->r[24];
|
|
/* 028D2E40 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2E44 */ Gambit_fn_028D2D28(cpu);
|
|
/* 028D2E48 */ _t25 = cpu->r[26] + 0x00000008u;
|
|
/* 028D2E48 */ cpu->r[11] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D2E4C */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028D2E50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[11]);
|
|
/* 028D2E54 */ _t26 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D2E54 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028D2E54 */ if (_t27) goto L_028D2E30; else goto L_028D2E58;
|
|
L_028D2E58: ; // 0x28d2e58
|
|
/* 028D2E58 */ /* nop */
|
|
/* 028D2E5C */ _t28 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D2E5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D2E60 */ cpu->lr = cpu->r[0];
|
|
/* 028D2E64 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 028D2E68 */ return;
|
|
}
|
|
|
|
// fn_028D2E6C @ 0x28d2e6c
|
|
void Gambit_fn_028D2E6C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21;
|
|
|
|
L_028D2E6C: ; // 0x28d2e6c
|
|
/* 028D2E6C */ cpu->r[0] = cpu->lr;
|
|
/* 028D2E70 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028D2E70 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D2E70 */ cpu->r[1] = _t0;
|
|
/* 028D2E74 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028D2E74 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D2E78 */ _t2 = cpu->r[1] + 0x00000020u;
|
|
/* 028D2E78 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D2E7C */ cpu->r[30] = cpu->r[5];
|
|
/* 028D2E80 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D2E84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028D2E88 */ _t3 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D2E88 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D2E8C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2E8C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D2E8C */ if (_t5) goto L_028D2F0C; else goto L_028D2E90;
|
|
L_028D2E90: ; // 0x28d2e90
|
|
/* 028D2E90 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2E94 */ Gambit_fn_028E8298(cpu);
|
|
/* 028D2E98 */ _t6 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2E98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D2E9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D2EA0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2EA0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D2EA0 */ if (_t8) goto L_028D2F0C; else goto L_028D2EA4;
|
|
L_028D2EA4: ; // 0x28d2ea4
|
|
/* 028D2EA4 */ cpu->r[5] = 0x00000000u;
|
|
/* 028D2EA8 */ cpu->r[8] = cpu->r[30];
|
|
/* 028D2EAC */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2EB0 */ cpu->r[6] = cpu->r[5];
|
|
/* 028D2EB4 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2EB8 */ cpu->r[7] = cpu->r[5];
|
|
/* 028D2EBC */ Gambit_fn_028D2790(cpu);
|
|
/* 028D2EC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D2EC4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2EC4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D2EC4 */ if (_t10) goto L_028D2F0C; else goto L_028D2EC8;
|
|
L_028D2EC8: ; // 0x28d2ec8
|
|
/* 028D2EC8 */ cpu->r[5] = 0x00000000u;
|
|
/* 028D2ECC */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2ED0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2ED4 */ cpu->r[6] = cpu->r[5];
|
|
/* 028D2ED8 */ cpu->r[7] = cpu->r[30];
|
|
/* 028D2EDC */ Gambit_fn_028D2D28(cpu);
|
|
/* 028D2EE0 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2EE4 */ Gambit_fn_028E83BC(cpu);
|
|
/* 028D2EE8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D2EEC */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028D2EEC */ rbrew_write32(cpu->mem, _t11, cpu->r[3]);
|
|
/* 028D2EF0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2EF4 */ cpu->r[12] = cpu->r[12] + 0xFFFFA6ACu;
|
|
/* 028D2EF8 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D2EFC */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2EFC */ rbrew_write32(cpu->mem, _t12, cpu->r[12]);
|
|
/* 028D2F00 */ Gambit_fn_028D2310(cpu);
|
|
/* 028D2F04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D2F08 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2F08 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D2F08 */ if (_t14) goto L_028D2F0C; else goto L_028D2F28;
|
|
L_028D2F0C: ; // 0x28d2f0c
|
|
/* 028D2F0C */ _t15 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D2F0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D2F10 */ _t16 = cpu->r[1] + 0x00000020u;
|
|
/* 028D2F10 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D2F14 */ cpu->lr = cpu->r[0];
|
|
/* 028D2F18 */ _t17 = cpu->r[1] + 0x00000024u;
|
|
/* 028D2F18 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D2F1C */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D2F20 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D2F24 */ return;
|
|
L_028D2F28: ; // 0x28d2f28
|
|
/* 028D2F28 */ _t18 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D2F28 */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
/* 028D2F2C */ _t19 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D2F2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D2F30 */ _t20 = cpu->r[1] + 0x00000020u;
|
|
/* 028D2F30 */ cpu->r[30] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D2F34 */ cpu->lr = cpu->r[0];
|
|
/* 028D2F38 */ _t21 = cpu->r[1] + 0x00000024u;
|
|
/* 028D2F38 */ cpu->r[31] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D2F3C */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D2F40 */ cpu->r[3] = 0x00000001u;
|
|
/* 028D2F44 */ return;
|
|
}
|
|
|
|
// fn_028D2E70 @ 0x28d2e70
|
|
void Gambit_fn_028D2E70(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21;
|
|
|
|
L_028D2E70: ; // 0x28d2e70
|
|
/* 028D2E70 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028D2E70 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D2E70 */ cpu->r[1] = _t0;
|
|
/* 028D2E74 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028D2E74 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D2E78 */ _t2 = cpu->r[1] + 0x00000020u;
|
|
/* 028D2E78 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D2E7C */ cpu->r[30] = cpu->r[5];
|
|
/* 028D2E80 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D2E84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028D2E88 */ _t3 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D2E88 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D2E8C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2E8C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D2E8C */ if (_t5) goto L_028D2F0C; else goto L_028D2E90;
|
|
L_028D2E90: ; // 0x28d2e90
|
|
/* 028D2E90 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2E94 */ Gambit_fn_028E8298(cpu);
|
|
/* 028D2E98 */ _t6 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2E98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D2E9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D2EA0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2EA0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D2EA0 */ if (_t8) goto L_028D2F0C; else goto L_028D2EA4;
|
|
L_028D2EA4: ; // 0x28d2ea4
|
|
/* 028D2EA4 */ cpu->r[5] = 0x00000000u;
|
|
/* 028D2EA8 */ cpu->r[8] = cpu->r[30];
|
|
/* 028D2EAC */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2EB0 */ cpu->r[6] = cpu->r[5];
|
|
/* 028D2EB4 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2EB8 */ cpu->r[7] = cpu->r[5];
|
|
/* 028D2EBC */ Gambit_fn_028D2790(cpu);
|
|
/* 028D2EC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D2EC4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2EC4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D2EC4 */ if (_t10) goto L_028D2F0C; else goto L_028D2EC8;
|
|
L_028D2EC8: ; // 0x28d2ec8
|
|
/* 028D2EC8 */ cpu->r[5] = 0x00000000u;
|
|
/* 028D2ECC */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2ED0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2ED4 */ cpu->r[6] = cpu->r[5];
|
|
/* 028D2ED8 */ cpu->r[7] = cpu->r[30];
|
|
/* 028D2EDC */ Gambit_fn_028D2D28(cpu);
|
|
/* 028D2EE0 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2EE4 */ Gambit_fn_028E83BC(cpu);
|
|
/* 028D2EE8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D2EEC */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028D2EEC */ rbrew_write32(cpu->mem, _t11, cpu->r[3]);
|
|
/* 028D2EF0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2EF4 */ cpu->r[12] = cpu->r[12] + 0xFFFFA6ACu;
|
|
/* 028D2EF8 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D2EFC */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2EFC */ rbrew_write32(cpu->mem, _t12, cpu->r[12]);
|
|
/* 028D2F00 */ Gambit_fn_028D2310(cpu);
|
|
/* 028D2F04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D2F08 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2F08 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D2F08 */ if (_t14) goto L_028D2F0C; else goto L_028D2F28;
|
|
L_028D2F0C: ; // 0x28d2f0c
|
|
/* 028D2F0C */ _t15 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D2F0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D2F10 */ _t16 = cpu->r[1] + 0x00000020u;
|
|
/* 028D2F10 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D2F14 */ cpu->lr = cpu->r[0];
|
|
/* 028D2F18 */ _t17 = cpu->r[1] + 0x00000024u;
|
|
/* 028D2F18 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D2F1C */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D2F20 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D2F24 */ return;
|
|
L_028D2F28: ; // 0x28d2f28
|
|
/* 028D2F28 */ _t18 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D2F28 */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
/* 028D2F2C */ _t19 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D2F2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D2F30 */ _t20 = cpu->r[1] + 0x00000020u;
|
|
/* 028D2F30 */ cpu->r[30] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D2F34 */ cpu->lr = cpu->r[0];
|
|
/* 028D2F38 */ _t21 = cpu->r[1] + 0x00000024u;
|
|
/* 028D2F38 */ cpu->r[31] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D2F3C */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D2F40 */ cpu->r[3] = 0x00000001u;
|
|
/* 028D2F44 */ return;
|
|
}
|
|
|
|
// fn_028D2F48 @ 0x28d2f48
|
|
void Gambit_fn_028D2F48(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22;
|
|
|
|
L_028D2F48: ; // 0x28d2f48
|
|
/* 028D2F48 */ cpu->r[0] = cpu->lr;
|
|
/* 028D2F4C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D2F4C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D2F4C */ cpu->r[1] = _t0;
|
|
/* 028D2F50 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2F50 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D2F54 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D2F58 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2F58 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D2F5C */ _t3 = cpu->r[31] + 0x00000005u;
|
|
/* 028D2F5C */ cpu->r[0] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028D2F60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D2F64 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2F64 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D2F64 */ if (_t5) goto L_028D2F68; else goto L_028D2FD8;
|
|
L_028D2F68: ; // 0x28d2f68
|
|
/* 028D2F68 */ _t6 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D2F68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D2F6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D2F70 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2F70 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D2F70 */ if (_t8) goto L_028D2F74; else goto L_028D2FD8;
|
|
L_028D2F74: ; // 0x28d2f74
|
|
/* 028D2F74 */ cpu->r[5] = cpu->r[4];
|
|
/* 028D2F78 */ cpu->r[4] = 0x101F0000u;
|
|
/* 028D2F7C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2F80 */ cpu->r[4] = cpu->r[4] + 0x000071C4u;
|
|
/* 028D2F84 */ Gambit_fn_028D2508(cpu);
|
|
/* 028D2F88 */ cpu->r[4] = cpu->r[3];
|
|
/* 028D2F88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028D2F8C */ _t9 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D2F8C */ rbrew_write32(cpu->mem, _t9, cpu->r[4]);
|
|
/* 028D2F90 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2F90 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D2F90 */ if (_t11) goto L_028D2FD8; else goto L_028D2F94;
|
|
L_028D2F94: ; // 0x28d2f94
|
|
/* 028D2F94 */ _t12 = cpu->r[31] + 0x00000008u;
|
|
/* 028D2F94 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D2F98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D2F9C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2F9C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D2F9C */ if (_t14) goto L_028D2FD8; else goto L_028D2FA0;
|
|
L_028D2FA0: ; // 0x28d2fa0
|
|
/* 028D2FA0 */ _t15 = cpu->r[3] + 0x00000008u;
|
|
/* 028D2FA0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D2FA4 */ _t16 = cpu->r[11] + 0x0000009Cu;
|
|
/* 028D2FA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D2FA8 */ cpu->ctr = cpu->r[0];
|
|
/* 028D2FAC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D2FB0 */ _t17 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D2FB0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D2FB4 */ cpu->r[3] = cpu->r[31] + 0x00000010u;
|
|
/* 028D2FB8 */ _t18 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028D2FB8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D2FBC */ cpu->r[4] = cpu->r[12] + cpu->r[10];
|
|
/* 028D2FC0 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028D2FC4 */ _t19 = cpu->r[31] + 0x00000018u;
|
|
/* 028D2FC4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D2FC8 */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028D2FCC */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2FD0 */ _t20 = cpu->r[31] + 0x00000018u;
|
|
/* 028D2FD0 */ rbrew_write32(cpu->mem, _t20, cpu->r[12]);
|
|
/* 028D2FD4 */ Gambit_fn_028D2658(cpu);
|
|
L_028D2FD8: ; // 0x28d2fd8
|
|
/* 028D2FD8 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2FD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D2FDC */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2FDC */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D2FE0 */ cpu->lr = cpu->r[0];
|
|
/* 028D2FE4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2FE8 */ return;
|
|
}
|
|
|
|
// fn_028D2F4C @ 0x28d2f4c
|
|
void Gambit_fn_028D2F4C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22;
|
|
|
|
L_028D2F4C: ; // 0x28d2f4c
|
|
/* 028D2F4C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D2F4C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D2F4C */ cpu->r[1] = _t0;
|
|
/* 028D2F50 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2F50 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D2F54 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D2F58 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2F58 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D2F5C */ _t3 = cpu->r[31] + 0x00000005u;
|
|
/* 028D2F5C */ cpu->r[0] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028D2F60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D2F64 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2F64 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D2F64 */ if (_t5) goto L_028D2F68; else goto L_028D2FD8;
|
|
L_028D2F68: ; // 0x28d2f68
|
|
/* 028D2F68 */ _t6 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D2F68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D2F6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D2F70 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2F70 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D2F70 */ if (_t8) goto L_028D2F74; else goto L_028D2FD8;
|
|
L_028D2F74: ; // 0x28d2f74
|
|
/* 028D2F74 */ cpu->r[5] = cpu->r[4];
|
|
/* 028D2F78 */ cpu->r[4] = 0x101F0000u;
|
|
/* 028D2F7C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2F80 */ cpu->r[4] = cpu->r[4] + 0x000071C4u;
|
|
/* 028D2F84 */ Gambit_fn_028D2508(cpu);
|
|
/* 028D2F88 */ cpu->r[4] = cpu->r[3];
|
|
/* 028D2F88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028D2F8C */ _t9 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D2F8C */ rbrew_write32(cpu->mem, _t9, cpu->r[4]);
|
|
/* 028D2F90 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2F90 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D2F90 */ if (_t11) goto L_028D2FD8; else goto L_028D2F94;
|
|
L_028D2F94: ; // 0x28d2f94
|
|
/* 028D2F94 */ _t12 = cpu->r[31] + 0x00000008u;
|
|
/* 028D2F94 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D2F98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D2F9C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D2F9C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D2F9C */ if (_t14) goto L_028D2FD8; else goto L_028D2FA0;
|
|
L_028D2FA0: ; // 0x28d2fa0
|
|
/* 028D2FA0 */ _t15 = cpu->r[3] + 0x00000008u;
|
|
/* 028D2FA0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D2FA4 */ _t16 = cpu->r[11] + 0x0000009Cu;
|
|
/* 028D2FA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D2FA8 */ cpu->ctr = cpu->r[0];
|
|
/* 028D2FAC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D2FB0 */ _t17 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D2FB0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D2FB4 */ cpu->r[3] = cpu->r[31] + 0x00000010u;
|
|
/* 028D2FB8 */ _t18 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028D2FB8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D2FBC */ cpu->r[4] = cpu->r[12] + cpu->r[10];
|
|
/* 028D2FC0 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028D2FC4 */ _t19 = cpu->r[31] + 0x00000018u;
|
|
/* 028D2FC4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D2FC8 */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028D2FCC */ cpu->r[3] = cpu->r[31];
|
|
/* 028D2FD0 */ _t20 = cpu->r[31] + 0x00000018u;
|
|
/* 028D2FD0 */ rbrew_write32(cpu->mem, _t20, cpu->r[12]);
|
|
/* 028D2FD4 */ Gambit_fn_028D2658(cpu);
|
|
L_028D2FD8: ; // 0x28d2fd8
|
|
/* 028D2FD8 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2FD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D2FDC */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2FDC */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D2FE0 */ cpu->lr = cpu->r[0];
|
|
/* 028D2FE4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D2FE8 */ return;
|
|
}
|
|
|
|
// fn_028D2FEC @ 0x28d2fec
|
|
void Gambit_fn_028D2FEC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028D2FEC: ; // 0x28d2fec
|
|
/* 028D2FEC */ cpu->r[0] = cpu->lr;
|
|
/* 028D2FF0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D2FF0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D2FF0 */ cpu->r[1] = _t0;
|
|
/* 028D2FF4 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2FF4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D2FF8 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2FF8 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028D2FFC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2FFC */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D3000 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D3000 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D3004 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D3008 */ _t5 = cpu->r[29] + 0x00000005u;
|
|
/* 028D3008 */ cpu->r[0] = rbrew_read8(cpu->mem, _t5);
|
|
/* 028D300C */ cpu->r[31] = cpu->r[5];
|
|
/* 028D3010 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D3014 */ cpu->r[30] = cpu->r[4];
|
|
/* 028D3018 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3018 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D3018 */ if (_t7) goto L_028D302C; else goto L_028D301C;
|
|
L_028D301C: ; // 0x28d301c
|
|
/* 028D301C */ cpu->r[3] = cpu->r[29];
|
|
/* 028D3020 */ Gambit_fn_028D1FD0(cpu);
|
|
/* 028D3024 */ cpu->r[0] = 0x00000000u;
|
|
/* 028D3028 */ _t8 = cpu->r[29] + 0x00000005u;
|
|
/* 028D3028 */ rbrew_write8(cpu->mem, _t8, (uint8_t)cpu->r[0]);
|
|
L_028D302C: ; // 0x28d302c
|
|
/* 028D302C */ cpu->r[5] = cpu->r[31];
|
|
/* 028D3030 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D3034 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D3038 */ Gambit_fn_028D2E6C(cpu);
|
|
/* 028D303C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3040 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3040 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D3040 */ if (_t10) goto L_028D3044; else goto L_028D3064;
|
|
L_028D3044: ; // 0x28d3044
|
|
/* 028D3044 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D3048 */ Gambit_fn_028D1FD0(cpu);
|
|
/* 028D304C */ cpu->r[3] = cpu->r[29];
|
|
/* 028D3050 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D3054 */ Gambit_fn_028D248C(cpu);
|
|
/* 028D3058 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D305C */ cpu->r[4] = cpu->r[31];
|
|
/* 028D3060 */ Gambit_fn_028D2F48(cpu);
|
|
L_028D3064: ; // 0x28d3064
|
|
/* 028D3064 */ cpu->r[11] = 0x00000001u;
|
|
/* 028D3068 */ _t11 = cpu->r[29] + 0x00000005u;
|
|
/* 028D3068 */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[11]);
|
|
/* 028D306C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D306C */ cpu->r[29] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D3070 */ _t13 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D3070 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D3074 */ _t14 = cpu->r[1] + 0x00000010u;
|
|
/* 028D3074 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D3078 */ cpu->lr = cpu->r[0];
|
|
/* 028D307C */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 028D307C */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D3080 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D3084 */ return;
|
|
}
|
|
|
|
// fn_028D2FF0 @ 0x28d2ff0
|
|
void Gambit_fn_028D2FF0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028D2FF0: ; // 0x28d2ff0
|
|
/* 028D2FF0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D2FF0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D2FF0 */ cpu->r[1] = _t0;
|
|
/* 028D2FF4 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028D2FF4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D2FF8 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D2FF8 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028D2FFC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D2FFC */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D3000 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D3000 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D3004 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D3008 */ _t5 = cpu->r[29] + 0x00000005u;
|
|
/* 028D3008 */ cpu->r[0] = rbrew_read8(cpu->mem, _t5);
|
|
/* 028D300C */ cpu->r[31] = cpu->r[5];
|
|
/* 028D3010 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D3014 */ cpu->r[30] = cpu->r[4];
|
|
/* 028D3018 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3018 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D3018 */ if (_t7) goto L_028D302C; else goto L_028D301C;
|
|
L_028D301C: ; // 0x28d301c
|
|
/* 028D301C */ cpu->r[3] = cpu->r[29];
|
|
/* 028D3020 */ Gambit_fn_028D1FD0(cpu);
|
|
/* 028D3024 */ cpu->r[0] = 0x00000000u;
|
|
/* 028D3028 */ _t8 = cpu->r[29] + 0x00000005u;
|
|
/* 028D3028 */ rbrew_write8(cpu->mem, _t8, (uint8_t)cpu->r[0]);
|
|
L_028D302C: ; // 0x28d302c
|
|
/* 028D302C */ cpu->r[5] = cpu->r[31];
|
|
/* 028D3030 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D3034 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D3038 */ Gambit_fn_028D2E6C(cpu);
|
|
/* 028D303C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3040 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3040 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D3040 */ if (_t10) goto L_028D3044; else goto L_028D3064;
|
|
L_028D3044: ; // 0x28d3044
|
|
/* 028D3044 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D3048 */ Gambit_fn_028D1FD0(cpu);
|
|
/* 028D304C */ cpu->r[3] = cpu->r[29];
|
|
/* 028D3050 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D3054 */ Gambit_fn_028D248C(cpu);
|
|
/* 028D3058 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D305C */ cpu->r[4] = cpu->r[31];
|
|
/* 028D3060 */ Gambit_fn_028D2F48(cpu);
|
|
L_028D3064: ; // 0x28d3064
|
|
/* 028D3064 */ cpu->r[11] = 0x00000001u;
|
|
/* 028D3068 */ _t11 = cpu->r[29] + 0x00000005u;
|
|
/* 028D3068 */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[11]);
|
|
/* 028D306C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D306C */ cpu->r[29] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D3070 */ _t13 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D3070 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D3074 */ _t14 = cpu->r[1] + 0x00000010u;
|
|
/* 028D3074 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D3078 */ cpu->lr = cpu->r[0];
|
|
/* 028D307C */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 028D307C */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D3080 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D3084 */ return;
|
|
}
|
|
|
|
// fn_028D3088 @ 0x28d3088
|
|
void Gambit_fn_028D3088(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64;
|
|
|
|
L_028D3088: ; // 0x28d3088
|
|
/* 028D3088 */ _t0 = cpu->r[1] + 0xFFFFFF90u;
|
|
/* 028D3088 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D3088 */ cpu->r[1] = _t0;
|
|
/* 028D308C */ /* nop */
|
|
/* 028D3090 */ cpu->r[0] = cpu->lr;
|
|
/* 028D3094 */ _t1 = cpu->r[1] + 0x00000074u;
|
|
/* 028D3094 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D3098 */ cpu->r[27] = cpu->r[3];
|
|
/* 028D309C */ _t2 = cpu->r[27] + 0x00000004u;
|
|
/* 028D309C */ cpu->r[12] = rbrew_read8(cpu->mem, _t2);
|
|
/* 028D30A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D30A4 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D30A4 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D30A4 */ if (_t4) goto L_028D3234; else goto L_028D30A8;
|
|
L_028D30A8: ; // 0x28d30a8
|
|
/* 028D30A8 */ _t5 = cpu->r[27] + 0x0000001Cu;
|
|
/* 028D30A8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D30AC */ cpu->r[28] = cpu->r[27] + 0x00000010u;
|
|
/* 028D30B0 */ _t6 = cpu->r[27] + 0x00000014u;
|
|
/* 028D30B0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D30B4 */ cpu->r[29] = cpu->r[28] - cpu->r[31];
|
|
/* 028D30B8 */ cpu->r[30] = cpu->r[10] - cpu->r[31];
|
|
/* 028D30BC */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D30BC */ rbrew_write32(cpu->mem, _t7, cpu->r[31]);
|
|
/* 028D30C0 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028D30C0 */ rbrew_write32(cpu->mem, _t8, cpu->r[30]);
|
|
/* 028D30C4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028D30C8 */ _t9 = cpu->r[1] + 0x00000030u;
|
|
/* 028D30C8 */ rbrew_write32(cpu->mem, _t9, cpu->r[29]);
|
|
/* 028D30CC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D30CC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D30CC */ if (_t11) goto L_028D3108; else goto L_028D30D0;
|
|
L_028D30D0: ; // 0x28d30d0
|
|
/* 028D30D0 */ _t12 = cpu->r[30] + 0x00000008u;
|
|
/* 028D30D0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D30D4 */ _t13 = cpu->r[5] + 0x000000ACu;
|
|
/* 028D30D4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D30D8 */ cpu->ctr = cpu->r[7];
|
|
/* 028D30DC */ cpu->r[3] = cpu->r[30];
|
|
/* 028D30E0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D30E4 */ cpu->r[11] = cpu->r[30] + cpu->r[31];
|
|
/* 028D30E8 */ _t14 = cpu->r[11] + 0x00000004u;
|
|
/* 028D30E8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D30EC */ cpu->r[30] = cpu->r[8] - cpu->r[31];
|
|
/* 028D30F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028D30F4 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D30F4 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D30F4 */ if (_t16) goto L_028D30F8; else goto L_028D30D0;
|
|
L_028D30F8: ; // 0x28d30f8
|
|
/* 028D30F8 */ _t17 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D30F8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D30FC */ _t18 = cpu->r[28] + 0x00000004u;
|
|
/* 028D30FC */ cpu->r[10] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D3100 */ cpu->r[29] = cpu->r[28] - cpu->r[31];
|
|
/* 028D3104 */ cpu->r[30] = cpu->r[10] - cpu->r[31];
|
|
L_028D3108: ; // 0x28d3108
|
|
/* 028D3108 */ _t19 = cpu->r[1] + 0x00000038u;
|
|
/* 028D3108 */ rbrew_write32(cpu->mem, _t19, cpu->r[29]);
|
|
/* 028D310C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028D3110 */ _t20 = cpu->r[1] + 0x00000010u;
|
|
/* 028D3110 */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
/* 028D3114 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3114 */ rbrew_write32(cpu->mem, _t21, cpu->r[31]);
|
|
/* 028D3118 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3118 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028D3118 */ if (_t23) goto L_028D3138; else goto L_028D311C;
|
|
L_028D311C: ; // 0x28d311c
|
|
/* 028D311C */ cpu->r[3] = cpu->r[30];
|
|
/* 028D3120 */ Gambit_fn_028D0A14(cpu);
|
|
/* 028D3124 */ cpu->r[11] = cpu->r[30] + cpu->r[31];
|
|
/* 028D3128 */ _t24 = cpu->r[11] + 0x00000004u;
|
|
/* 028D3128 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D312C */ cpu->r[30] = cpu->r[0] - cpu->r[31];
|
|
/* 028D3130 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028D3134 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3134 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028D3134 */ if (_t26) goto L_028D3138; else goto L_028D311C;
|
|
L_028D3138: ; // 0x28d3138
|
|
/* 028D3138 */ _t27 = cpu->r[27] + 0x00000008u;
|
|
/* 028D3138 */ cpu->r[3] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D313C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3140 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3140 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028D3140 */ if (_t29) goto L_028D3150; else goto L_028D3144;
|
|
L_028D3144: ; // 0x28d3144
|
|
/* 028D3144 */ cpu->r[4] = 0x80000000u;
|
|
/* 028D3148 */ cpu->r[4] = cpu->r[4] + 0xFFFFFFFFu;
|
|
/* 028D314C */ Gambit_fn_028D0A8C(cpu);
|
|
L_028D3150: ; // 0x28d3150
|
|
/* 028D3150 */ _t30 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D3150 */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028D3154 */ _t31 = cpu->r[28] + 0x00000004u;
|
|
/* 028D3154 */ cpu->r[10] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028D3158 */ cpu->r[29] = cpu->r[28] - cpu->r[31];
|
|
/* 028D315C */ cpu->r[30] = cpu->r[10] - cpu->r[31];
|
|
/* 028D3160 */ _t32 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D3160 */ rbrew_write32(cpu->mem, _t32, cpu->r[31]);
|
|
/* 028D3164 */ _t33 = cpu->r[1] + 0x00000018u;
|
|
/* 028D3164 */ rbrew_write32(cpu->mem, _t33, cpu->r[30]);
|
|
/* 028D3168 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028D316C */ _t34 = cpu->r[1] + 0x00000040u;
|
|
/* 028D316C */ rbrew_write32(cpu->mem, _t34, cpu->r[29]);
|
|
/* 028D3170 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3170 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028D3170 */ if (_t36) goto L_028D31A0; else goto L_028D3174;
|
|
L_028D3174: ; // 0x28d3174
|
|
/* 028D3174 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D3178 */ Gambit_fn_028D0B54(cpu);
|
|
/* 028D317C */ cpu->r[9] = cpu->r[30] + cpu->r[31];
|
|
/* 028D3180 */ _t37 = cpu->r[9] + 0x00000004u;
|
|
/* 028D3180 */ cpu->r[0] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028D3184 */ cpu->r[30] = cpu->r[0] - cpu->r[31];
|
|
/* 028D3188 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028D318C */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D318C */ _t39 = _t38 & 0x00000001u;
|
|
/* 028D318C */ if (_t39) goto L_028D3190; else goto L_028D3174;
|
|
L_028D3190: ; // 0x28d3190
|
|
/* 028D3190 */ _t40 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D3190 */ cpu->r[31] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028D3194 */ _t41 = cpu->r[28] + 0x00000004u;
|
|
/* 028D3194 */ cpu->r[10] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028D3198 */ cpu->r[29] = cpu->r[28] - cpu->r[31];
|
|
/* 028D319C */ cpu->r[30] = cpu->r[10] - cpu->r[31];
|
|
L_028D31A0: ; // 0x28d31a0
|
|
/* 028D31A0 */ _t42 = cpu->r[1] + 0x00000048u;
|
|
/* 028D31A0 */ rbrew_write32(cpu->mem, _t42, cpu->r[29]);
|
|
/* 028D31A4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028D31A8 */ _t43 = cpu->r[1] + 0x00000020u;
|
|
/* 028D31A8 */ rbrew_write32(cpu->mem, _t43, cpu->r[30]);
|
|
/* 028D31AC */ _t44 = cpu->r[1] + 0x00000024u;
|
|
/* 028D31AC */ rbrew_write32(cpu->mem, _t44, cpu->r[31]);
|
|
/* 028D31B0 */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D31B0 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028D31B0 */ if (_t46) goto L_028D31F8; else goto L_028D31B4;
|
|
L_028D31B4: ; // 0x28d31b4
|
|
/* 028D31B4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D31B8 */ Gambit_fn_028D0B64(cpu);
|
|
/* 028D31BC */ Gambit_fn_028C2A3C(cpu);
|
|
/* 028D31C0 */ cpu->r[0] = cpu->r[3];
|
|
/* 028D31C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D31C4 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D31C4 */ _t48 = _t47 & 0x00000001u;
|
|
/* 028D31C4 */ if (_t48) goto L_028D31D4; else goto L_028D31C8;
|
|
L_028D31C8: ; // 0x28d31c8
|
|
/* 028D31C8 */ cpu->r[3] = cpu->r[0];
|
|
/* 028D31CC */ cpu->r[4] = cpu->r[30];
|
|
/* 028D31D0 */ Gambit_fn_028CDE28(cpu);
|
|
L_028D31D4: ; // 0x28d31d4
|
|
/* 028D31D4 */ cpu->r[6] = cpu->r[30] + cpu->r[31];
|
|
/* 028D31D8 */ _t49 = cpu->r[6] + 0x00000004u;
|
|
/* 028D31D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028D31DC */ cpu->r[30] = cpu->r[0] - cpu->r[31];
|
|
/* 028D31E0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028D31E4 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D31E4 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028D31E4 */ if (_t51) goto L_028D31E8; else goto L_028D31B4;
|
|
L_028D31E8: ; // 0x28d31e8
|
|
/* 028D31E8 */ _t52 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D31E8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028D31EC */ _t53 = cpu->r[28] + 0x00000004u;
|
|
/* 028D31EC */ cpu->r[10] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028D31F0 */ cpu->r[29] = cpu->r[28] - cpu->r[31];
|
|
/* 028D31F4 */ cpu->r[30] = cpu->r[10] - cpu->r[31];
|
|
L_028D31F8: ; // 0x28d31f8
|
|
/* 028D31F8 */ _t54 = cpu->r[1] + 0x00000050u;
|
|
/* 028D31F8 */ rbrew_write32(cpu->mem, _t54, cpu->r[29]);
|
|
/* 028D31FC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028D3200 */ _t55 = cpu->r[1] + 0x00000028u;
|
|
/* 028D3200 */ rbrew_write32(cpu->mem, _t55, cpu->r[30]);
|
|
/* 028D3204 */ _t56 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D3204 */ rbrew_write32(cpu->mem, _t56, cpu->r[31]);
|
|
/* 028D3208 */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3208 */ _t58 = _t57 & 0x00000001u;
|
|
/* 028D3208 */ if (_t58) goto L_028D3234; else goto L_028D320C;
|
|
L_028D320C: ; // 0x28d320c
|
|
/* 028D320C */ _t59 = cpu->r[30] + 0x00000008u;
|
|
/* 028D320C */ cpu->r[5] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028D3210 */ _t60 = cpu->r[5] + 0x000000B4u;
|
|
/* 028D3210 */ cpu->r[6] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028D3214 */ cpu->ctr = cpu->r[6];
|
|
/* 028D3218 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D321C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3220 */ cpu->r[8] = cpu->r[30] + cpu->r[31];
|
|
/* 028D3224 */ _t61 = cpu->r[8] + 0x00000004u;
|
|
/* 028D3224 */ cpu->r[7] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028D3228 */ cpu->r[30] = cpu->r[7] - cpu->r[31];
|
|
/* 028D322C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028D3230 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3230 */ _t63 = _t62 & 0x00000001u;
|
|
/* 028D3230 */ if (_t63) goto L_028D3234; else goto L_028D320C;
|
|
L_028D3234: ; // 0x28d3234
|
|
/* 028D3234 */ /* nop */
|
|
/* 028D3238 */ _t64 = cpu->r[1] + 0x00000074u;
|
|
/* 028D3238 */ cpu->r[0] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028D323C */ cpu->lr = cpu->r[0];
|
|
/* 028D3240 */ cpu->r[1] = cpu->r[1] + 0x00000070u;
|
|
/* 028D3244 */ return;
|
|
}
|
|
|
|
// fn_028D3248 @ 0x28d3248
|
|
void Gambit_fn_028D3248(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028D3248: ; // 0x28d3248
|
|
/* 028D3248 */ _t0 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028D3248 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028D324C */ cpu->r[10] = cpu->r[3] + 0x00000010u;
|
|
/* 028D3250 */ _t1 = cpu->r[3] + 0x00000014u;
|
|
/* 028D3250 */ cpu->r[9] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028D3254 */ cpu->r[0] = cpu->r[10] - cpu->r[12];
|
|
/* 028D3258 */ cpu->r[11] = cpu->r[9] - cpu->r[12];
|
|
/* 028D325C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[0]);
|
|
/* 028D3260 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3260 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028D3260 */ if (_t3) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D3260 */ goto L_028D3264;
|
|
L_028D3264: ; // 0x28d3264
|
|
/* 028D3264 */ cpu->r[9] = 0x10140000u;
|
|
/* 028D3268 */ _t4 = cpu->r[9] + 0xFFFFA708u;
|
|
/* 028D3268 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t4);
|
|
L_028D326C: ; // 0x28d326c
|
|
/* 028D326C */ cpu->r[10] = cpu->r[11] + cpu->r[12];
|
|
/* 028D3270 */ _t5 = cpu->r[11] + 0x00000140u;
|
|
/* 028D3270 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[0]);
|
|
/* 028D3274 */ _t6 = cpu->r[10] + 0x00000004u;
|
|
/* 028D3274 */ cpu->r[9] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D3278 */ cpu->r[11] = cpu->r[9] - cpu->r[12];
|
|
/* 028D327C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[0]);
|
|
/* 028D3280 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3280 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D3280 */ if (_t8) goto L_028D3284; else goto L_028D326C;
|
|
L_028D3284: ; // 0x28d3284
|
|
/* 028D3284 */ return;
|
|
}
|
|
|
|
// fn_028D3288 @ 0x28d3288
|
|
void Gambit_fn_028D3288(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028D3288: ; // 0x28d3288
|
|
/* 028D3288 */ cpu->r[0] = cpu->lr;
|
|
/* 028D328C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D328C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D328C */ cpu->r[1] = _t0;
|
|
/* 028D3290 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3290 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D3294 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3294 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D3298 */ _t3 = cpu->r[3] + 0x00000004u;
|
|
/* 028D3298 */ cpu->r[10] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028D329C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028D32A0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D32A0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D32A0 */ if (_t5) goto L_028D32F8; else goto L_028D32A4;
|
|
L_028D32A4: ; // 0x28d32a4
|
|
/* 028D32A4 */ Gambit_fn_028D2200(cpu);
|
|
/* 028D32A8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D32A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D32AC */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D32AC */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D32AC */ if (_t7) goto L_028D32F8; else goto L_028D32B0;
|
|
L_028D32B0: ; // 0x28d32b0
|
|
/* 028D32B0 */ cpu->r[7] = 0x101D0000u;
|
|
/* 028D32B4 */ _t8 = cpu->r[7] + 0xFFFFF93Cu;
|
|
/* 028D32B4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D32B4 */ cpu->r[7] = _t8;
|
|
/* 028D32B8 */ cpu->r[4] = 0x101D0000u;
|
|
/* 028D32BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028D32C0 */ cpu->r[4] = cpu->r[4] + 0x000019FCu;
|
|
/* 028D32C4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D32C4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D32C4 */ if (_t10) goto L_028D32C8; else goto L_028D32DC;
|
|
L_028D32C8: ; // 0x28d32c8
|
|
/* 028D32C8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D32CC */ cpu->r[9] = 0x00000001u;
|
|
/* 028D32D0 */ cpu->r[0] = cpu->r[0] + 0xFFFFA6F4u;
|
|
/* 028D32D4 */ _t11 = cpu->r[7] + 0x00000000u;
|
|
/* 028D32D4 */ rbrew_write32(cpu->mem, _t11, cpu->r[9]);
|
|
/* 028D32D8 */ _t12 = cpu->r[4] + 0x00000000u;
|
|
/* 028D32D8 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
L_028D32DC: ; // 0x28d32dc
|
|
/* 028D32DC */ _t13 = cpu->r[31] + 0x00000008u;
|
|
/* 028D32DC */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D32E0 */ _t14 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028D32E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D32E4 */ cpu->ctr = cpu->r[0];
|
|
/* 028D32E8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D32EC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D32F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D32F4 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D32F4 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D32F4 */ if (_t16) goto L_028D32F8; else goto L_028D32FC;
|
|
L_028D32F8: ; // 0x28d32f8
|
|
/* 028D32F8 */ cpu->r[31] = 0x00000000u;
|
|
L_028D32FC: ; // 0x28d32fc
|
|
/* 028D32FC */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028D32FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D3300 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D3304 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3304 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D3308 */ cpu->lr = cpu->r[0];
|
|
/* 028D330C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D3310 */ return;
|
|
}
|
|
|
|
// fn_028D328C @ 0x28d328c
|
|
void Gambit_fn_028D328C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028D328C: ; // 0x28d328c
|
|
/* 028D328C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D328C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D328C */ cpu->r[1] = _t0;
|
|
/* 028D3290 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3290 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D3294 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3294 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D3298 */ _t3 = cpu->r[3] + 0x00000004u;
|
|
/* 028D3298 */ cpu->r[10] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028D329C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028D32A0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D32A0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D32A0 */ if (_t5) goto L_028D32F8; else goto L_028D32A4;
|
|
L_028D32A4: ; // 0x28d32a4
|
|
/* 028D32A4 */ Gambit_fn_028D2200(cpu);
|
|
/* 028D32A8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D32A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D32AC */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D32AC */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D32AC */ if (_t7) goto L_028D32F8; else goto L_028D32B0;
|
|
L_028D32B0: ; // 0x28d32b0
|
|
/* 028D32B0 */ cpu->r[7] = 0x101D0000u;
|
|
/* 028D32B4 */ _t8 = cpu->r[7] + 0xFFFFF93Cu;
|
|
/* 028D32B4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D32B4 */ cpu->r[7] = _t8;
|
|
/* 028D32B8 */ cpu->r[4] = 0x101D0000u;
|
|
/* 028D32BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028D32C0 */ cpu->r[4] = cpu->r[4] + 0x000019FCu;
|
|
/* 028D32C4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D32C4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D32C4 */ if (_t10) goto L_028D32C8; else goto L_028D32DC;
|
|
L_028D32C8: ; // 0x28d32c8
|
|
/* 028D32C8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D32CC */ cpu->r[9] = 0x00000001u;
|
|
/* 028D32D0 */ cpu->r[0] = cpu->r[0] + 0xFFFFA6F4u;
|
|
/* 028D32D4 */ _t11 = cpu->r[7] + 0x00000000u;
|
|
/* 028D32D4 */ rbrew_write32(cpu->mem, _t11, cpu->r[9]);
|
|
/* 028D32D8 */ _t12 = cpu->r[4] + 0x00000000u;
|
|
/* 028D32D8 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
L_028D32DC: ; // 0x28d32dc
|
|
/* 028D32DC */ _t13 = cpu->r[31] + 0x00000008u;
|
|
/* 028D32DC */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D32E0 */ _t14 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028D32E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D32E4 */ cpu->ctr = cpu->r[0];
|
|
/* 028D32E8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D32EC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D32F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D32F4 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D32F4 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D32F4 */ if (_t16) goto L_028D32F8; else goto L_028D32FC;
|
|
L_028D32F8: ; // 0x28d32f8
|
|
/* 028D32F8 */ cpu->r[31] = 0x00000000u;
|
|
L_028D32FC: ; // 0x28d32fc
|
|
/* 028D32FC */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028D32FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D3300 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D3304 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3304 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D3308 */ cpu->lr = cpu->r[0];
|
|
/* 028D330C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D3310 */ return;
|
|
}
|
|
|
|
// fn_028D3314 @ 0x28d3314
|
|
void Gambit_fn_028D3314(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028D3314: ; // 0x28d3314
|
|
/* 028D3314 */ cpu->r[0] = cpu->lr;
|
|
/* 028D3318 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D3318 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D3318 */ cpu->r[1] = _t0;
|
|
/* 028D331C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D331C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D3320 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D3324 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[31]);
|
|
/* 028D3328 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3328 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D332C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D332C */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D332C */ if (_t4) goto L_028D3330; else goto L_028D3348;
|
|
L_028D3330: ; // 0x28d3330
|
|
/* 028D3330 */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3330 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D3334 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3334 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D3338 */ cpu->lr = cpu->r[0];
|
|
/* 028D333C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D3340 */ cpu->r[3] = 0x00000001u;
|
|
/* 028D3344 */ return;
|
|
L_028D3348: ; // 0x28d3348
|
|
/* 028D3348 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D334C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D334C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D334C */ if (_t8) goto L_028D337C; else goto L_028D3350;
|
|
L_028D3350: ; // 0x28d3350
|
|
/* 028D3350 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D3354 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3354 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D3354 */ if (_t10) goto L_028D337C; else goto L_028D3358;
|
|
L_028D3358: ; // 0x28d3358
|
|
/* 028D3358 */ Gambit_fn_028D0780(cpu);
|
|
/* 028D335C */ cpu->r[0] = cpu->r[3];
|
|
/* 028D335C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D3360 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3360 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D3360 */ if (_t12) goto L_028D337C; else goto L_028D3364;
|
|
L_028D3364: ; // 0x28d3364
|
|
/* 028D3364 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[31]);
|
|
/* 028D3368 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3368 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D3368 */ if (_t14) goto L_028D3330; else goto L_028D336C;
|
|
L_028D336C: ; // 0x28d336c
|
|
/* 028D336C */ cpu->r[3] = cpu->r[0];
|
|
/* 028D3370 */ Gambit_fn_028D0780(cpu);
|
|
/* 028D3374 */ cpu->r[0] = cpu->r[3];
|
|
/* 028D3374 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D3378 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3378 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D3378 */ if (_t16) goto L_028D337C; else goto L_028D3364;
|
|
L_028D337C: ; // 0x28d337c
|
|
/* 028D337C */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028D337C */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D3380 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3380 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D3384 */ cpu->lr = cpu->r[0];
|
|
/* 028D3388 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D338C */ cpu->r[3] = 0x00000000u;
|
|
/* 028D3390 */ return;
|
|
}
|
|
|
|
// fn_028D3318 @ 0x28d3318
|
|
void Gambit_fn_028D3318(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028D3318: ; // 0x28d3318
|
|
/* 028D3318 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D3318 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D3318 */ cpu->r[1] = _t0;
|
|
/* 028D331C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D331C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D3320 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D3324 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[31]);
|
|
/* 028D3328 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3328 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D332C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D332C */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D332C */ if (_t4) goto L_028D3330; else goto L_028D3348;
|
|
L_028D3330: ; // 0x28d3330
|
|
/* 028D3330 */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3330 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D3334 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3334 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D3338 */ cpu->lr = cpu->r[0];
|
|
/* 028D333C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D3340 */ cpu->r[3] = 0x00000001u;
|
|
/* 028D3344 */ return;
|
|
L_028D3348: ; // 0x28d3348
|
|
/* 028D3348 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D334C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D334C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D334C */ if (_t8) goto L_028D337C; else goto L_028D3350;
|
|
L_028D3350: ; // 0x28d3350
|
|
/* 028D3350 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D3354 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3354 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D3354 */ if (_t10) goto L_028D337C; else goto L_028D3358;
|
|
L_028D3358: ; // 0x28d3358
|
|
/* 028D3358 */ Gambit_fn_028D0780(cpu);
|
|
/* 028D335C */ cpu->r[0] = cpu->r[3];
|
|
/* 028D335C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D3360 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3360 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D3360 */ if (_t12) goto L_028D337C; else goto L_028D3364;
|
|
L_028D3364: ; // 0x28d3364
|
|
/* 028D3364 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[31]);
|
|
/* 028D3368 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3368 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D3368 */ if (_t14) goto L_028D3330; else goto L_028D336C;
|
|
L_028D336C: ; // 0x28d336c
|
|
/* 028D336C */ cpu->r[3] = cpu->r[0];
|
|
/* 028D3370 */ Gambit_fn_028D0780(cpu);
|
|
/* 028D3374 */ cpu->r[0] = cpu->r[3];
|
|
/* 028D3374 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D3378 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3378 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D3378 */ if (_t16) goto L_028D337C; else goto L_028D3364;
|
|
L_028D337C: ; // 0x28d337c
|
|
/* 028D337C */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028D337C */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D3380 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3380 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D3384 */ cpu->lr = cpu->r[0];
|
|
/* 028D3388 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D338C */ cpu->r[3] = 0x00000000u;
|
|
/* 028D3390 */ return;
|
|
}
|
|
|
|
// fn_028D3394 @ 0x28d3394
|
|
void Gambit_fn_028D3394(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028D3394: ; // 0x28d3394
|
|
/* 028D3394 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028D3398 */ cpu->r[8] = 0x10140000u;
|
|
/* 028D339C */ cpu->r[0] = 0x10140000u;
|
|
/* 028D33A0 */ cpu->r[12] = cpu->r[12] + 0x000071BCu;
|
|
/* 028D33A4 */ cpu->r[8] = cpu->r[8] + 0xFFFFA6ACu;
|
|
/* 028D33A8 */ cpu->r[0] = cpu->r[0] + 0xFFFFA714u;
|
|
/* 028D33AC */ _t0 = cpu->r[12] + 0x00000004u;
|
|
/* 028D33AC */ rbrew_write32(cpu->mem, _t0, cpu->r[8]);
|
|
/* 028D33B0 */ cpu->r[11] = 0x101F0000u;
|
|
/* 028D33B4 */ _t1 = cpu->r[12] + 0x00000000u;
|
|
/* 028D33B4 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D33B8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D33BC */ cpu->r[11] = cpu->r[11] + 0x000071C4u;
|
|
/* 028D33C0 */ cpu->r[9] = 0x10140000u;
|
|
/* 028D33C4 */ cpu->r[0] = cpu->r[0] + 0xFFFFA70Cu;
|
|
/* 028D33C8 */ _t2 = cpu->r[11] + 0x00000004u;
|
|
/* 028D33C8 */ rbrew_write32(cpu->mem, _t2, cpu->r[8]);
|
|
/* 028D33CC */ cpu->r[9] = cpu->r[9] + 0xFFFFA71Cu;
|
|
/* 028D33D0 */ cpu->r[10] = 0x101F0000u;
|
|
/* 028D33D4 */ _t3 = cpu->r[11] + 0x00000000u;
|
|
/* 028D33D4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D33D8 */ _t4 = cpu->r[10] + 0x000071CCu;
|
|
/* 028D33D8 */ rbrew_write32(cpu->mem, _t4, cpu->r[9]);
|
|
/* 028D33D8 */ cpu->r[10] = _t4;
|
|
/* 028D33DC */ _t5 = cpu->r[10] + 0x00000004u;
|
|
/* 028D33DC */ rbrew_write32(cpu->mem, _t5, cpu->r[8]);
|
|
/* 028D33E0 */ return;
|
|
}
|
|
|
|
// fn_028D33E4 @ 0x28d33e4
|
|
void Gambit_fn_028D33E4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D33E4: ; // 0x28d33e4
|
|
/* 028D33E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D33E8 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D33E8 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D33E8 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D33E8 */ goto L_028D33EC;
|
|
L_028D33EC: ; // 0x28d33ec
|
|
/* 028D33EC */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D33EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D33F0 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D33F0 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D33F0 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D33F0 */ goto L_028D33F4;
|
|
L_028D33F4: ; // 0x28d33f4
|
|
/* 028D33F4 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D33F8 @ 0x28d33f8
|
|
void Gambit_fn_028D33F8(CPUState* cpu) {
|
|
L_028D33F8: ; // 0x28d33f8
|
|
/* 028D33F8 */ return;
|
|
}
|
|
|
|
// fn_028D33FC @ 0x28d33fc
|
|
void Gambit_fn_028D33FC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30;
|
|
|
|
L_028D33FC: ; // 0x28d33fc
|
|
/* 028D33FC */ cpu->r[0] = cpu->lr;
|
|
/* 028D3400 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D3400 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D3400 */ cpu->r[1] = _t0;
|
|
/* 028D3404 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3404 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D3408 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D3408 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D340C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D3410 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3410 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D3414 */ _t4 = cpu->r[31] + 0x00000054u;
|
|
/* 028D3414 */ cpu->r[0] = rbrew_read8(cpu->mem, _t4);
|
|
/* 028D3418 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D341C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D341C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D341C */ if (_t6) goto L_028D34A8; else goto L_028D3420;
|
|
L_028D3420: ; // 0x28d3420
|
|
/* 028D3420 */ _t7 = cpu->r[31] + 0x00000158u;
|
|
/* 028D3420 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D3424 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3428 */ cpu->r[30] = 0x00000000u;
|
|
/* 028D342C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D342C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D342C */ if (_t9) goto L_028D3458; else goto L_028D3430;
|
|
L_028D3430: ; // 0x28d3430
|
|
/* 028D3430 */ Gambit_fn_028CA7E8(cpu);
|
|
/* 028D3434 */ _t10 = cpu->r[31] + 0x00000158u;
|
|
/* 028D3434 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D3438 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D343C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D343C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D343C */ if (_t12) goto L_028D3454; else goto L_028D3440;
|
|
L_028D3440: ; // 0x28d3440
|
|
/* 028D3440 */ _t13 = cpu->r[3] + 0x00000010u;
|
|
/* 028D3440 */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D3444 */ _t14 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028D3444 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D3448 */ cpu->ctr = cpu->r[0];
|
|
/* 028D344C */ cpu->r[4] = 0x00000003u;
|
|
/* 028D3450 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D3454: ; // 0x28d3454
|
|
/* 028D3454 */ _t15 = cpu->r[31] + 0x00000158u;
|
|
/* 028D3454 */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
L_028D3458: ; // 0x28d3458
|
|
/* 028D3458 */ _t16 = cpu->r[31] + 0x0000015Cu;
|
|
/* 028D3458 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D345C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3460 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3460 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D3460 */ if (_t18) goto L_028D347C; else goto L_028D3464;
|
|
L_028D3464: ; // 0x28d3464
|
|
/* 028D3464 */ _t19 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3464 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D3468 */ _t20 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028D3468 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D346C */ cpu->ctr = cpu->r[0];
|
|
/* 028D3470 */ cpu->r[4] = 0x00000003u;
|
|
/* 028D3474 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3478 */ _t21 = cpu->r[31] + 0x0000015Cu;
|
|
/* 028D3478 */ rbrew_write32(cpu->mem, _t21, cpu->r[30]);
|
|
L_028D347C: ; // 0x28d347c
|
|
/* 028D347C */ _t22 = cpu->r[31] + 0x00000170u;
|
|
/* 028D347C */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D3480 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3484 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3484 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028D3484 */ if (_t24) goto L_028D34A0; else goto L_028D3488;
|
|
L_028D3488: ; // 0x28d3488
|
|
/* 028D3488 */ _t25 = cpu->r[3] + 0x00000010u;
|
|
/* 028D3488 */ cpu->r[12] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D348C */ _t26 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028D348C */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D3490 */ cpu->ctr = cpu->r[0];
|
|
/* 028D3494 */ cpu->r[4] = 0x00000003u;
|
|
/* 028D3498 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D349C */ _t27 = cpu->r[31] + 0x00000170u;
|
|
/* 028D349C */ rbrew_write32(cpu->mem, _t27, cpu->r[30]);
|
|
L_028D34A0: ; // 0x28d34a0
|
|
/* 028D34A0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D34A4 */ Gambit_fn_028D068C(cpu);
|
|
L_028D34A8: ; // 0x28d34a8
|
|
/* 028D34A8 */ _t28 = cpu->r[1] + 0x00000014u;
|
|
/* 028D34A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D34AC */ _t29 = cpu->r[1] + 0x00000008u;
|
|
/* 028D34AC */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028D34B0 */ cpu->lr = cpu->r[0];
|
|
/* 028D34B4 */ _t30 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D34B4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028D34B8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D34BC */ return;
|
|
}
|
|
|
|
// fn_028D3400 @ 0x28d3400
|
|
void Gambit_fn_028D3400(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30;
|
|
|
|
L_028D3400: ; // 0x28d3400
|
|
/* 028D3400 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D3400 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D3400 */ cpu->r[1] = _t0;
|
|
/* 028D3404 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3404 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D3408 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D3408 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D340C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D3410 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3410 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D3414 */ _t4 = cpu->r[31] + 0x00000054u;
|
|
/* 028D3414 */ cpu->r[0] = rbrew_read8(cpu->mem, _t4);
|
|
/* 028D3418 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D341C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D341C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D341C */ if (_t6) goto L_028D34A8; else goto L_028D3420;
|
|
L_028D3420: ; // 0x28d3420
|
|
/* 028D3420 */ _t7 = cpu->r[31] + 0x00000158u;
|
|
/* 028D3420 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D3424 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3428 */ cpu->r[30] = 0x00000000u;
|
|
/* 028D342C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D342C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D342C */ if (_t9) goto L_028D3458; else goto L_028D3430;
|
|
L_028D3430: ; // 0x28d3430
|
|
/* 028D3430 */ Gambit_fn_028CA7E8(cpu);
|
|
/* 028D3434 */ _t10 = cpu->r[31] + 0x00000158u;
|
|
/* 028D3434 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D3438 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D343C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D343C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D343C */ if (_t12) goto L_028D3454; else goto L_028D3440;
|
|
L_028D3440: ; // 0x28d3440
|
|
/* 028D3440 */ _t13 = cpu->r[3] + 0x00000010u;
|
|
/* 028D3440 */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D3444 */ _t14 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028D3444 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D3448 */ cpu->ctr = cpu->r[0];
|
|
/* 028D344C */ cpu->r[4] = 0x00000003u;
|
|
/* 028D3450 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D3454: ; // 0x28d3454
|
|
/* 028D3454 */ _t15 = cpu->r[31] + 0x00000158u;
|
|
/* 028D3454 */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
L_028D3458: ; // 0x28d3458
|
|
/* 028D3458 */ _t16 = cpu->r[31] + 0x0000015Cu;
|
|
/* 028D3458 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D345C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3460 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3460 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D3460 */ if (_t18) goto L_028D347C; else goto L_028D3464;
|
|
L_028D3464: ; // 0x28d3464
|
|
/* 028D3464 */ _t19 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3464 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D3468 */ _t20 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028D3468 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D346C */ cpu->ctr = cpu->r[0];
|
|
/* 028D3470 */ cpu->r[4] = 0x00000003u;
|
|
/* 028D3474 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3478 */ _t21 = cpu->r[31] + 0x0000015Cu;
|
|
/* 028D3478 */ rbrew_write32(cpu->mem, _t21, cpu->r[30]);
|
|
L_028D347C: ; // 0x28d347c
|
|
/* 028D347C */ _t22 = cpu->r[31] + 0x00000170u;
|
|
/* 028D347C */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D3480 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3484 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3484 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028D3484 */ if (_t24) goto L_028D34A0; else goto L_028D3488;
|
|
L_028D3488: ; // 0x28d3488
|
|
/* 028D3488 */ _t25 = cpu->r[3] + 0x00000010u;
|
|
/* 028D3488 */ cpu->r[12] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D348C */ _t26 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028D348C */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D3490 */ cpu->ctr = cpu->r[0];
|
|
/* 028D3494 */ cpu->r[4] = 0x00000003u;
|
|
/* 028D3498 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D349C */ _t27 = cpu->r[31] + 0x00000170u;
|
|
/* 028D349C */ rbrew_write32(cpu->mem, _t27, cpu->r[30]);
|
|
L_028D34A0: ; // 0x28d34a0
|
|
/* 028D34A0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D34A4 */ Gambit_fn_028D068C(cpu);
|
|
L_028D34A8: ; // 0x28d34a8
|
|
/* 028D34A8 */ _t28 = cpu->r[1] + 0x00000014u;
|
|
/* 028D34A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D34AC */ _t29 = cpu->r[1] + 0x00000008u;
|
|
/* 028D34AC */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028D34B0 */ cpu->lr = cpu->r[0];
|
|
/* 028D34B4 */ _t30 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D34B4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028D34B8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D34BC */ return;
|
|
}
|
|
|
|
// fn_028D34C0 @ 0x28d34c0
|
|
void Gambit_fn_028D34C0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028D34C0: ; // 0x28d34c0
|
|
/* 028D34C0 */ cpu->r[0] = cpu->lr;
|
|
/* 028D34C4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D34C4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D34C4 */ cpu->r[1] = _t0;
|
|
/* 028D34C8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D34C8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D34CC */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D34CC */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D34D0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D34D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D34D4 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D34D8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D34D8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D34DC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D34DC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D34DC */ if (_t5) goto L_028D3528; else goto L_028D34E0;
|
|
L_028D34E0: ; // 0x28d34e0
|
|
/* 028D34E0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D34E4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D34E8 */ cpu->r[0] = cpu->r[0] + 0xFFFFA7A0u;
|
|
/* 028D34EC */ cpu->r[12] = cpu->r[12] + 0xFFFFA890u;
|
|
/* 028D34F0 */ _t6 = cpu->r[30] + 0x00000008u;
|
|
/* 028D34F0 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028D34F4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D34F8 */ _t7 = cpu->r[30] + 0x00000050u;
|
|
/* 028D34F8 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 028D34FC */ cpu->r[0] = cpu->r[0] + 0xFFFFA870u;
|
|
/* 028D3500 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D3504 */ _t8 = cpu->r[30] + 0x00000038u;
|
|
/* 028D3504 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028D3508 */ Gambit_fn_028D33FC(cpu);
|
|
/* 028D350C */ cpu->r[4] = 0x00000000u;
|
|
/* 028D3510 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D3514 */ Gambit_fn_028D0704(cpu);
|
|
/* 028D3518 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D3518 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D351C */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D351C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D351C */ if (_t10) goto L_028D3528; else goto L_028D3520;
|
|
L_028D3520: ; // 0x28d3520
|
|
/* 028D3520 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D3524 */ Gambit_fn_02801BB0(cpu);
|
|
L_028D3528: ; // 0x28d3528
|
|
/* 028D3528 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3528 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D352C */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 028D352C */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D3530 */ cpu->lr = cpu->r[0];
|
|
/* 028D3534 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3534 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D3538 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D353C */ return;
|
|
}
|
|
|
|
// fn_028D34C4 @ 0x28d34c4
|
|
void Gambit_fn_028D34C4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028D34C4: ; // 0x28d34c4
|
|
/* 028D34C4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D34C4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D34C4 */ cpu->r[1] = _t0;
|
|
/* 028D34C8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D34C8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D34CC */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D34CC */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D34D0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D34D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D34D4 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D34D8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D34D8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D34DC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D34DC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D34DC */ if (_t5) goto L_028D3528; else goto L_028D34E0;
|
|
L_028D34E0: ; // 0x28d34e0
|
|
/* 028D34E0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D34E4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D34E8 */ cpu->r[0] = cpu->r[0] + 0xFFFFA7A0u;
|
|
/* 028D34EC */ cpu->r[12] = cpu->r[12] + 0xFFFFA890u;
|
|
/* 028D34F0 */ _t6 = cpu->r[30] + 0x00000008u;
|
|
/* 028D34F0 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028D34F4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D34F8 */ _t7 = cpu->r[30] + 0x00000050u;
|
|
/* 028D34F8 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 028D34FC */ cpu->r[0] = cpu->r[0] + 0xFFFFA870u;
|
|
/* 028D3500 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D3504 */ _t8 = cpu->r[30] + 0x00000038u;
|
|
/* 028D3504 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028D3508 */ Gambit_fn_028D33FC(cpu);
|
|
/* 028D350C */ cpu->r[4] = 0x00000000u;
|
|
/* 028D3510 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D3514 */ Gambit_fn_028D0704(cpu);
|
|
/* 028D3518 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D3518 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D351C */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D351C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D351C */ if (_t10) goto L_028D3528; else goto L_028D3520;
|
|
L_028D3520: ; // 0x28d3520
|
|
/* 028D3520 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D3524 */ Gambit_fn_02801BB0(cpu);
|
|
L_028D3528: ; // 0x28d3528
|
|
/* 028D3528 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3528 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D352C */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 028D352C */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D3530 */ cpu->lr = cpu->r[0];
|
|
/* 028D3534 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3534 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D3538 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D353C */ return;
|
|
}
|
|
|
|
// fn_028D3540 @ 0x28d3540
|
|
void Gambit_fn_028D3540(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028D3540: ; // 0x28d3540
|
|
/* 028D3540 */ cpu->r[3] = cpu->r[3] + 0xFFFFFFC8u;
|
|
/* 028D3544 */ goto L_028D420C;
|
|
L_028D420C: ; // 0x28d420c
|
|
/* 028D420C */ _t0 = cpu->r[3] + 0x00000148u;
|
|
/* 028D420C */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028D4210 */ cpu->r[0] = (uint32_t)(-(int32_t)cpu->r[12]);
|
|
/* 028D4214 */ _t1 = ~cpu->r[12];
|
|
/* 028D4214 */ cpu->r[0] = cpu->r[0] & _t1;
|
|
/* 028D4218 */ cpu->r[3] = rbrew_rlwinm(cpu->r[0], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D421C */ return;
|
|
}
|
|
|
|
// fn_028D3548 @ 0x28d3548
|
|
void Gambit_fn_028D3548(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53;
|
|
|
|
L_028D3548: ; // 0x28d3548
|
|
/* 028D3548 */ cpu->r[0] = cpu->lr;
|
|
/* 028D354C */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 028D354C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D354C */ cpu->r[1] = _t0;
|
|
/* 028D3550 */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028D3550 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[30]);
|
|
/* 028D3554 */ /* nop */
|
|
/* 028D3558 */ _t2 = cpu->r[1] + 0x00000028u;
|
|
/* 028D3558 */ rbrew_write_f64(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028D355C */ /* nop */
|
|
/* 028D3560 */ _t3 = cpu->r[1] + 0x00000020u;
|
|
/* 028D3560 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[30]);
|
|
/* 028D3564 */ _t4 = cpu->r[1] + 0x00000030u;
|
|
/* 028D3564 */ rbrew_write_f32(cpu->mem, _t4, cpu->f[31]);
|
|
/* 028D3568 */ _t5 = cpu->r[1] + 0x00000008u;
|
|
/* 028D3568 */ rbrew_write32(cpu->mem, _t5, cpu->r[28]);
|
|
/* 028D356C */ _t6 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D356C */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028D3570 */ _t7 = cpu->r[1] + 0x00000010u;
|
|
/* 028D3570 */ rbrew_write32(cpu->mem, _t7, cpu->r[30]);
|
|
/* 028D3574 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3574 */ rbrew_write32(cpu->mem, _t8, cpu->r[31]);
|
|
/* 028D3578 */ cpu->r[28] = cpu->r[3];
|
|
/* 028D357C */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D357C */ rbrew_write32(cpu->mem, _t9, cpu->r[29]);
|
|
/* 028D3580 */ _t10 = cpu->r[28] + 0x0000015Cu;
|
|
/* 028D3580 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D3584 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3588 */ cpu->f[30] = cpu->f[1];
|
|
/* 028D358C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D358C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D358C */ if (_t12) goto L_028D3660; else goto L_028D3590;
|
|
L_028D3590: ; // 0x28d3590
|
|
/* 028D3590 */ _t13 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3590 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D3594 */ _t14 = cpu->r[10] + 0x0000007Cu;
|
|
/* 028D3594 */ cpu->r[9] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D3598 */ cpu->ctr = cpu->r[9];
|
|
/* 028D359C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D35A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D35A4 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D35A4 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D35A4 */ if (_t16) goto L_028D35A8; else goto L_028D3660;
|
|
L_028D35A8: ; // 0x28d35a8
|
|
/* 028D35A8 */ _t17 = cpu->r[28] + 0x0000015Cu;
|
|
/* 028D35A8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D35AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D35B0 */ cpu->r[29] = cpu->r[31];
|
|
/* 028D35B4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D35B4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D35B4 */ if (_t19) goto L_028D35E0; else goto L_028D35B8;
|
|
L_028D35B8: ; // 0x28d35b8
|
|
/* 028D35B8 */ _t20 = cpu->r[29] + 0x00000000u;
|
|
/* 028D35B8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D35BC */ _t21 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D35BC */ cpu->r[10] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D35C0 */ cpu->ctr = cpu->r[10];
|
|
/* 028D35C4 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D35C8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D35CC */ _t22 = cpu->r[3] + 0x00000000u;
|
|
/* 028D35CC */ cpu->r[8] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D35D0 */ _t23 = cpu->r[8] + 0x00000014u;
|
|
/* 028D35D0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D35D4 */ cpu->ctr = cpu->r[10];
|
|
/* 028D35D8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D35DC */ _t24 = cpu->r[28] + 0x0000015Cu;
|
|
/* 028D35DC */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
L_028D35E0: ; // 0x28d35e0
|
|
/* 028D35E0 */ _t25 = cpu->r[31] + 0x00000000u;
|
|
/* 028D35E0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D35E4 */ _t26 = cpu->r[11] + 0x00000044u;
|
|
/* 028D35E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D35E8 */ cpu->ctr = cpu->r[0];
|
|
/* 028D35EC */ cpu->r[3] = cpu->r[31];
|
|
/* 028D35F0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D35F4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D35F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D35F8 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D35F8 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028D35F8 */ if (_t28) goto L_028D3634; else goto L_028D35FC;
|
|
L_028D35FC: ; // 0x28d35fc
|
|
/* 028D35FC */ cpu->r[12] = 0x10140000u;
|
|
/* 028D3600 */ _t29 = cpu->r[12] + 0xFFFFA798u;
|
|
/* 028D3600 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t29);
|
|
L_028D3604: ; // 0x28d3604
|
|
/* 028D3604 */ cpu->f[2] = cpu->f[31];
|
|
/* 028D3608 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D360C */ cpu->f[1] = cpu->f[30];
|
|
/* 028D3610 */ Gambit_fn_028BDC2C(cpu);
|
|
/* 028D3614 */ _t30 = cpu->r[31] + 0x00000000u;
|
|
/* 028D3614 */ cpu->r[9] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028D3618 */ _t31 = cpu->r[9] + 0x0000005Cu;
|
|
/* 028D3618 */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028D361C */ cpu->ctr = cpu->r[0];
|
|
/* 028D3620 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D3624 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D3628 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D362C */ cpu->r[30] = cpu->r[3];
|
|
/* 028D362C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D3630 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3630 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028D3630 */ if (_t33) goto L_028D3634; else goto L_028D3604;
|
|
L_028D3634: ; // 0x28d3634
|
|
/* 028D3634 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D3638 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3638 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028D3638 */ if (_t35) goto L_028D3660; else goto L_028D363C;
|
|
L_028D363C: ; // 0x28d363c
|
|
/* 028D363C */ _t36 = cpu->r[29] + 0x00000000u;
|
|
/* 028D363C */ cpu->r[8] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028D3640 */ _t37 = cpu->r[8] + 0x0000008Cu;
|
|
/* 028D3640 */ cpu->r[0] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028D3644 */ cpu->ctr = cpu->r[0];
|
|
/* 028D3648 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D364C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3650 */ _t38 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3650 */ cpu->r[12] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028D3654 */ _t39 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028D3654 */ cpu->r[9] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028D3658 */ cpu->ctr = cpu->r[9];
|
|
/* 028D365C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D3660: ; // 0x28d3660
|
|
/* 028D3660 */ _t40 = cpu->r[28] + 0x00000158u;
|
|
/* 028D3660 */ cpu->r[3] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028D3664 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3668 */ _t41 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3668 */ _t42 = _t41 & 0x00000001u;
|
|
/* 028D3668 */ if (_t42) goto L_028D3674; else goto L_028D366C;
|
|
L_028D366C: ; // 0x28d366c
|
|
/* 028D366C */ cpu->f[1] = cpu->f[30];
|
|
/* 028D3670 */ Gambit_fn_028CB8DC(cpu);
|
|
L_028D3674: ; // 0x28d3674
|
|
/* 028D3674 */ _t43 = cpu->r[1] + 0x00000008u;
|
|
/* 028D3674 */ cpu->r[28] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028D3678 */ _t44 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3678 */ cpu->r[29] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028D367C */ _t45 = cpu->r[1] + 0x00000030u;
|
|
/* 028D367C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t45);
|
|
/* 028D3680 */ _t46 = cpu->r[1] + 0x00000020u;
|
|
/* 028D3680 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t46);
|
|
/* 028D3684 */ _t47 = cpu->r[1] + 0x00000028u;
|
|
/* 028D3684 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t47);
|
|
/* 028D3688 */ _t48 = cpu->r[1] + 0x00000018u;
|
|
/* 028D3688 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t48);
|
|
/* 028D368C */ _t49 = cpu->r[1] + 0x00000014u;
|
|
/* 028D368C */ cpu->r[31] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028D3690 */ _t50 = cpu->r[1] + 0x00000010u;
|
|
/* 028D3690 */ cpu->r[30] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028D3694 */ _t51 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D3694 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028D3694 */ if (_t52) goto L_028D3698; // else: addr-0 trap, fall-through
|
|
L_028D3698: ; // 0x28d3698
|
|
/* 028D3698 */ _t53 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D3698 */ cpu->r[0] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028D369C */ cpu->lr = cpu->r[0];
|
|
/* 028D36A0 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 028D36A4 */ return;
|
|
}
|
|
|
|
// fn_028D354C @ 0x28d354c
|
|
void Gambit_fn_028D354C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53;
|
|
|
|
L_028D354C: ; // 0x28d354c
|
|
/* 028D354C */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 028D354C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D354C */ cpu->r[1] = _t0;
|
|
/* 028D3550 */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028D3550 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[30]);
|
|
/* 028D3554 */ /* nop */
|
|
/* 028D3558 */ _t2 = cpu->r[1] + 0x00000028u;
|
|
/* 028D3558 */ rbrew_write_f64(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028D355C */ /* nop */
|
|
/* 028D3560 */ _t3 = cpu->r[1] + 0x00000020u;
|
|
/* 028D3560 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[30]);
|
|
/* 028D3564 */ _t4 = cpu->r[1] + 0x00000030u;
|
|
/* 028D3564 */ rbrew_write_f32(cpu->mem, _t4, cpu->f[31]);
|
|
/* 028D3568 */ _t5 = cpu->r[1] + 0x00000008u;
|
|
/* 028D3568 */ rbrew_write32(cpu->mem, _t5, cpu->r[28]);
|
|
/* 028D356C */ _t6 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D356C */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028D3570 */ _t7 = cpu->r[1] + 0x00000010u;
|
|
/* 028D3570 */ rbrew_write32(cpu->mem, _t7, cpu->r[30]);
|
|
/* 028D3574 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3574 */ rbrew_write32(cpu->mem, _t8, cpu->r[31]);
|
|
/* 028D3578 */ cpu->r[28] = cpu->r[3];
|
|
/* 028D357C */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D357C */ rbrew_write32(cpu->mem, _t9, cpu->r[29]);
|
|
/* 028D3580 */ _t10 = cpu->r[28] + 0x0000015Cu;
|
|
/* 028D3580 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D3584 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3588 */ cpu->f[30] = cpu->f[1];
|
|
/* 028D358C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D358C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D358C */ if (_t12) goto L_028D3660; else goto L_028D3590;
|
|
L_028D3590: ; // 0x28d3590
|
|
/* 028D3590 */ _t13 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3590 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D3594 */ _t14 = cpu->r[10] + 0x0000007Cu;
|
|
/* 028D3594 */ cpu->r[9] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D3598 */ cpu->ctr = cpu->r[9];
|
|
/* 028D359C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D35A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D35A4 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D35A4 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D35A4 */ if (_t16) goto L_028D35A8; else goto L_028D3660;
|
|
L_028D35A8: ; // 0x28d35a8
|
|
/* 028D35A8 */ _t17 = cpu->r[28] + 0x0000015Cu;
|
|
/* 028D35A8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D35AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D35B0 */ cpu->r[29] = cpu->r[31];
|
|
/* 028D35B4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D35B4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D35B4 */ if (_t19) goto L_028D35E0; else goto L_028D35B8;
|
|
L_028D35B8: ; // 0x28d35b8
|
|
/* 028D35B8 */ _t20 = cpu->r[29] + 0x00000000u;
|
|
/* 028D35B8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D35BC */ _t21 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D35BC */ cpu->r[10] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D35C0 */ cpu->ctr = cpu->r[10];
|
|
/* 028D35C4 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D35C8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D35CC */ _t22 = cpu->r[3] + 0x00000000u;
|
|
/* 028D35CC */ cpu->r[8] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D35D0 */ _t23 = cpu->r[8] + 0x00000014u;
|
|
/* 028D35D0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D35D4 */ cpu->ctr = cpu->r[10];
|
|
/* 028D35D8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D35DC */ _t24 = cpu->r[28] + 0x0000015Cu;
|
|
/* 028D35DC */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
L_028D35E0: ; // 0x28d35e0
|
|
/* 028D35E0 */ _t25 = cpu->r[31] + 0x00000000u;
|
|
/* 028D35E0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D35E4 */ _t26 = cpu->r[11] + 0x00000044u;
|
|
/* 028D35E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D35E8 */ cpu->ctr = cpu->r[0];
|
|
/* 028D35EC */ cpu->r[3] = cpu->r[31];
|
|
/* 028D35F0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D35F4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D35F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D35F8 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D35F8 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028D35F8 */ if (_t28) goto L_028D3634; else goto L_028D35FC;
|
|
L_028D35FC: ; // 0x28d35fc
|
|
/* 028D35FC */ cpu->r[12] = 0x10140000u;
|
|
/* 028D3600 */ _t29 = cpu->r[12] + 0xFFFFA798u;
|
|
/* 028D3600 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t29);
|
|
L_028D3604: ; // 0x28d3604
|
|
/* 028D3604 */ cpu->f[2] = cpu->f[31];
|
|
/* 028D3608 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D360C */ cpu->f[1] = cpu->f[30];
|
|
/* 028D3610 */ Gambit_fn_028BDC2C(cpu);
|
|
/* 028D3614 */ _t30 = cpu->r[31] + 0x00000000u;
|
|
/* 028D3614 */ cpu->r[9] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028D3618 */ _t31 = cpu->r[9] + 0x0000005Cu;
|
|
/* 028D3618 */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028D361C */ cpu->ctr = cpu->r[0];
|
|
/* 028D3620 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D3624 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D3628 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D362C */ cpu->r[30] = cpu->r[3];
|
|
/* 028D362C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D3630 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3630 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028D3630 */ if (_t33) goto L_028D3634; else goto L_028D3604;
|
|
L_028D3634: ; // 0x28d3634
|
|
/* 028D3634 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D3638 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3638 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028D3638 */ if (_t35) goto L_028D3660; else goto L_028D363C;
|
|
L_028D363C: ; // 0x28d363c
|
|
/* 028D363C */ _t36 = cpu->r[29] + 0x00000000u;
|
|
/* 028D363C */ cpu->r[8] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028D3640 */ _t37 = cpu->r[8] + 0x0000008Cu;
|
|
/* 028D3640 */ cpu->r[0] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028D3644 */ cpu->ctr = cpu->r[0];
|
|
/* 028D3648 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D364C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3650 */ _t38 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3650 */ cpu->r[12] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028D3654 */ _t39 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028D3654 */ cpu->r[9] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028D3658 */ cpu->ctr = cpu->r[9];
|
|
/* 028D365C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D3660: ; // 0x28d3660
|
|
/* 028D3660 */ _t40 = cpu->r[28] + 0x00000158u;
|
|
/* 028D3660 */ cpu->r[3] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028D3664 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3668 */ _t41 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3668 */ _t42 = _t41 & 0x00000001u;
|
|
/* 028D3668 */ if (_t42) goto L_028D3674; else goto L_028D366C;
|
|
L_028D366C: ; // 0x28d366c
|
|
/* 028D366C */ cpu->f[1] = cpu->f[30];
|
|
/* 028D3670 */ Gambit_fn_028CB8DC(cpu);
|
|
L_028D3674: ; // 0x28d3674
|
|
/* 028D3674 */ _t43 = cpu->r[1] + 0x00000008u;
|
|
/* 028D3674 */ cpu->r[28] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028D3678 */ _t44 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3678 */ cpu->r[29] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028D367C */ _t45 = cpu->r[1] + 0x00000030u;
|
|
/* 028D367C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t45);
|
|
/* 028D3680 */ _t46 = cpu->r[1] + 0x00000020u;
|
|
/* 028D3680 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t46);
|
|
/* 028D3684 */ _t47 = cpu->r[1] + 0x00000028u;
|
|
/* 028D3684 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t47);
|
|
/* 028D3688 */ _t48 = cpu->r[1] + 0x00000018u;
|
|
/* 028D3688 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t48);
|
|
/* 028D368C */ _t49 = cpu->r[1] + 0x00000014u;
|
|
/* 028D368C */ cpu->r[31] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028D3690 */ _t50 = cpu->r[1] + 0x00000010u;
|
|
/* 028D3690 */ cpu->r[30] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028D3694 */ _t51 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D3694 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028D3694 */ if (_t52) goto L_028D3698; // else: addr-0 trap, fall-through
|
|
L_028D3698: ; // 0x28d3698
|
|
/* 028D3698 */ _t53 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D3698 */ cpu->r[0] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028D369C */ cpu->lr = cpu->r[0];
|
|
/* 028D36A0 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 028D36A4 */ return;
|
|
}
|
|
|
|
// fn_028D36A8 @ 0x28d36a8
|
|
void Gambit_fn_028D36A8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_028D36A8: ; // 0x28d36a8
|
|
/* 028D36A8 */ cpu->r[0] = cpu->lr;
|
|
/* 028D36AC */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028D36AC */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028D36B0 */ _t1 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D36B0 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028D36B0 */ cpu->r[1] = _t1;
|
|
/* 028D36B4 */ _t2 = cpu->r[3] + 0x00000158u;
|
|
/* 028D36B4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028D36B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D36BC */ _t3 = cpu->r[4] + 0x00000000u;
|
|
/* 028D36BC */ cpu->r[0] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028D36C0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D36C0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D36C0 */ if (_t5) goto L_028D36D0; else goto L_028D36C4;
|
|
L_028D36C4: ; // 0x28d36c4
|
|
/* 028D36C4 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D36C8 */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 028D36C8 */ rbrew_write8(cpu->mem, _t6, (uint8_t)cpu->r[0]);
|
|
/* 028D36CC */ Gambit_fn_028CBB64(cpu);
|
|
L_028D36D0: ; // 0x28d36d0
|
|
/* 028D36D0 */ _t7 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D36D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D36D4 */ cpu->lr = cpu->r[0];
|
|
/* 028D36D8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D36DC */ return;
|
|
}
|
|
|
|
// fn_028D36B0 @ 0x28d36b0
|
|
void Gambit_fn_028D36B0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028D36B0: ; // 0x28d36b0
|
|
/* 028D36B0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D36B0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D36B0 */ cpu->r[1] = _t0;
|
|
/* 028D36B4 */ _t1 = cpu->r[3] + 0x00000158u;
|
|
/* 028D36B4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028D36B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D36BC */ _t2 = cpu->r[4] + 0x00000000u;
|
|
/* 028D36BC */ cpu->r[0] = rbrew_read8(cpu->mem, _t2);
|
|
/* 028D36C0 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D36C0 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D36C0 */ if (_t4) goto L_028D36D0; else goto L_028D36C4;
|
|
L_028D36C4: ; // 0x28d36c4
|
|
/* 028D36C4 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D36C8 */ _t5 = cpu->r[1] + 0x00000008u;
|
|
/* 028D36C8 */ rbrew_write8(cpu->mem, _t5, (uint8_t)cpu->r[0]);
|
|
/* 028D36CC */ Gambit_fn_028CBB64(cpu);
|
|
L_028D36D0: ; // 0x28d36d0
|
|
/* 028D36D0 */ _t6 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D36D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D36D4 */ cpu->lr = cpu->r[0];
|
|
/* 028D36D8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D36DC */ return;
|
|
}
|
|
|
|
// fn_028D36E0 @ 0x28d36e0
|
|
void Gambit_fn_028D36E0(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028D36E0: ; // 0x28d36e0
|
|
/* 028D36E0 */ _t0 = cpu->r[3] + 0x00000164u;
|
|
/* 028D36E0 */ rbrew_write32(cpu->mem, _t0, cpu->r[4]);
|
|
/* 028D36E4 */ return;
|
|
}
|
|
|
|
// fn_028D36E8 @ 0x28d36e8
|
|
void Gambit_fn_028D36E8(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028D36E8: ; // 0x28d36e8
|
|
/* 028D36E8 */ _t0 = cpu->r[3] + 0x00000160u;
|
|
/* 028D36E8 */ rbrew_write32(cpu->mem, _t0, cpu->r[4]);
|
|
/* 028D36EC */ return;
|
|
}
|
|
|
|
// fn_028D36F0 @ 0x28d36f0
|
|
void Gambit_fn_028D36F0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028D36F0: ; // 0x28d36f0
|
|
/* 028D36F0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D36F4 */ _t0 = cpu->r[12] + 0xFFFFA798u;
|
|
/* 028D36F4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028D36F8 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[1]);
|
|
/* 028D36FC */ _t1 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D36FC */ _t2 = _t1 & 0x00000001u;
|
|
/* 028D36FC */ if (_t2) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D36FC */ goto L_028D3700;
|
|
L_028D3700: ; // 0x28d3700
|
|
/* 028D3700 */ _t3 = cpu->r[3] + 0x00000168u;
|
|
/* 028D3700 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[1]);
|
|
/* 028D3704 */ return;
|
|
}
|
|
|
|
// fn_028D3708 @ 0x28d3708
|
|
void Gambit_fn_028D3708(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_028CBD24: ; // 0x28cbd24
|
|
/* 028CBD24 */ _t0 = cpu->r[3] + 0x00000004u;
|
|
/* 028CBD24 */ cpu->r[3] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028CBD28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028CBD2C */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028CBD2C */ _t2 = _t1 & 0x00000001u;
|
|
/* 028CBD2C */ if (_t2) goto L_028CBD30; else goto L_028CBD38;
|
|
L_028CBD30: ; // 0x28cbd30
|
|
/* 028CBD30 */ cpu->r[3] = 0x00000000u;
|
|
/* 028CBD34 */ return;
|
|
L_028CBD38: ; // 0x28cbd38
|
|
/* 028CBD38 */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 028CBD38 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028CBD3C */ _t4 = cpu->r[12] + 0x00000074u;
|
|
/* 028CBD3C */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028CBD40 */ cpu->ctr = cpu->r[0];
|
|
/* 028CBD44 */ rbrew_dispatch(cpu, cpu->ctr); return;
|
|
L_028D3708: ; // 0x28d3708
|
|
/* 028D3708 */ _t5 = cpu->r[3] + 0x00000158u;
|
|
/* 028D3708 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D370C */ cpu->r[3] = 0x00000000u;
|
|
/* 028D3710 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D3714 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3714 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D3714 */ if (_t7) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D3714 */ goto L_028D3718;
|
|
L_028D3718: ; // 0x28d3718
|
|
/* 028D3718 */ cpu->r[3] = cpu->r[0];
|
|
/* 028D371C */ goto L_028CBD24;
|
|
}
|
|
|
|
// fn_028D3720 @ 0x28d3720
|
|
void Gambit_fn_028D3720(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34;
|
|
|
|
L_028D3720: ; // 0x28d3720
|
|
/* 028D3720 */ cpu->r[0] = cpu->lr;
|
|
/* 028D3724 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D3724 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D3724 */ cpu->r[1] = _t0;
|
|
/* 028D3728 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3728 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028D372C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028D372C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D3730 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3730 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D3734 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D3738 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D3738 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D373C */ _t5 = cpu->r[30] + 0x0000015Cu;
|
|
/* 028D373C */ cpu->r[3] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D3740 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3744 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D3748 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3748 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D3748 */ if (_t7) goto L_028D37E0; else goto L_028D374C;
|
|
L_028D374C: ; // 0x28d374c
|
|
/* 028D374C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3750 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D3754 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3754 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D3754 */ if (_t9) goto L_028D3780; else goto L_028D3758;
|
|
L_028D3758: ; // 0x28d3758
|
|
/* 028D3758 */ _t10 = cpu->r[29] + 0x00000000u;
|
|
/* 028D3758 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D375C */ _t11 = cpu->r[9] + 0x0000008Cu;
|
|
/* 028D375C */ cpu->r[6] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D3760 */ cpu->ctr = cpu->r[6];
|
|
/* 028D3764 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D3768 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D376C */ _t12 = cpu->r[3] + 0x00000000u;
|
|
/* 028D376C */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D3770 */ _t13 = cpu->r[12] + 0x00000014u;
|
|
/* 028D3770 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D3774 */ cpu->ctr = cpu->r[0];
|
|
/* 028D3778 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D377C */ _t14 = cpu->r[30] + 0x0000015Cu;
|
|
/* 028D377C */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
L_028D3780: ; // 0x28d3780
|
|
/* 028D3780 */ _t15 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3780 */ cpu->r[8] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D3784 */ _t16 = cpu->r[8] + 0x00000064u;
|
|
/* 028D3784 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D3788 */ cpu->ctr = cpu->r[0];
|
|
/* 028D378C */ cpu->r[4] = cpu->r[31];
|
|
/* 028D3790 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3794 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3798 */ _t17 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D3798 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D3798 */ if (_t18) goto L_028D37B4; else goto L_028D379C;
|
|
L_028D379C: ; // 0x28d379c
|
|
/* 028D379C */ _t19 = cpu->r[30] + 0x0000015Cu;
|
|
/* 028D379C */ cpu->r[3] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D37A0 */ _t20 = cpu->r[3] + 0x00000000u;
|
|
/* 028D37A0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D37A4 */ _t21 = cpu->r[10] + 0x00000034u;
|
|
/* 028D37A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D37A8 */ cpu->ctr = cpu->r[0];
|
|
/* 028D37AC */ cpu->r[4] = cpu->r[31];
|
|
/* 028D37B0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D37B4: ; // 0x28d37b4
|
|
/* 028D37B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D37B8 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D37B8 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028D37B8 */ if (_t23) goto L_028D37E0; else goto L_028D37BC;
|
|
L_028D37BC: ; // 0x28d37bc
|
|
/* 028D37BC */ _t24 = cpu->r[29] + 0x00000000u;
|
|
/* 028D37BC */ cpu->r[12] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D37C0 */ _t25 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D37C0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D37C4 */ cpu->ctr = cpu->r[8];
|
|
/* 028D37C8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D37CC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D37D0 */ _t26 = cpu->r[3] + 0x00000000u;
|
|
/* 028D37D0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D37D4 */ _t27 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028D37D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D37D8 */ cpu->ctr = cpu->r[0];
|
|
/* 028D37DC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D37E0: ; // 0x28d37e0
|
|
/* 028D37E0 */ _t28 = cpu->r[30] + 0x00000158u;
|
|
/* 028D37E0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D37E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D37E8 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D37E8 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028D37E8 */ if (_t30) goto L_028D37F4; else goto L_028D37EC;
|
|
L_028D37EC: ; // 0x28d37ec
|
|
/* 028D37EC */ cpu->r[4] = cpu->r[31];
|
|
/* 028D37F0 */ Gambit_fn_028CB3B4(cpu);
|
|
L_028D37F4: ; // 0x28d37f4
|
|
/* 028D37F4 */ _t31 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D37F4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028D37F8 */ _t32 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D37F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028D37FC */ _t33 = cpu->r[1] + 0x00000010u;
|
|
/* 028D37FC */ cpu->r[30] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028D3800 */ cpu->lr = cpu->r[0];
|
|
/* 028D3804 */ _t34 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3804 */ cpu->r[31] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028D3808 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D380C */ return;
|
|
}
|
|
|
|
// fn_028D3724 @ 0x28d3724
|
|
void Gambit_fn_028D3724(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34;
|
|
|
|
L_028D3724: ; // 0x28d3724
|
|
/* 028D3724 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D3724 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D3724 */ cpu->r[1] = _t0;
|
|
/* 028D3728 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3728 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028D372C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028D372C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D3730 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3730 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D3734 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D3738 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D3738 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D373C */ _t5 = cpu->r[30] + 0x0000015Cu;
|
|
/* 028D373C */ cpu->r[3] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D3740 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3744 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D3748 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3748 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D3748 */ if (_t7) goto L_028D37E0; else goto L_028D374C;
|
|
L_028D374C: ; // 0x28d374c
|
|
/* 028D374C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3750 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D3754 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3754 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D3754 */ if (_t9) goto L_028D3780; else goto L_028D3758;
|
|
L_028D3758: ; // 0x28d3758
|
|
/* 028D3758 */ _t10 = cpu->r[29] + 0x00000000u;
|
|
/* 028D3758 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D375C */ _t11 = cpu->r[9] + 0x0000008Cu;
|
|
/* 028D375C */ cpu->r[6] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D3760 */ cpu->ctr = cpu->r[6];
|
|
/* 028D3764 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D3768 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D376C */ _t12 = cpu->r[3] + 0x00000000u;
|
|
/* 028D376C */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D3770 */ _t13 = cpu->r[12] + 0x00000014u;
|
|
/* 028D3770 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D3774 */ cpu->ctr = cpu->r[0];
|
|
/* 028D3778 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D377C */ _t14 = cpu->r[30] + 0x0000015Cu;
|
|
/* 028D377C */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
L_028D3780: ; // 0x28d3780
|
|
/* 028D3780 */ _t15 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3780 */ cpu->r[8] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D3784 */ _t16 = cpu->r[8] + 0x00000064u;
|
|
/* 028D3784 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D3788 */ cpu->ctr = cpu->r[0];
|
|
/* 028D378C */ cpu->r[4] = cpu->r[31];
|
|
/* 028D3790 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3794 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3798 */ _t17 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D3798 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D3798 */ if (_t18) goto L_028D37B4; else goto L_028D379C;
|
|
L_028D379C: ; // 0x28d379c
|
|
/* 028D379C */ _t19 = cpu->r[30] + 0x0000015Cu;
|
|
/* 028D379C */ cpu->r[3] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D37A0 */ _t20 = cpu->r[3] + 0x00000000u;
|
|
/* 028D37A0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D37A4 */ _t21 = cpu->r[10] + 0x00000034u;
|
|
/* 028D37A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D37A8 */ cpu->ctr = cpu->r[0];
|
|
/* 028D37AC */ cpu->r[4] = cpu->r[31];
|
|
/* 028D37B0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D37B4: ; // 0x28d37b4
|
|
/* 028D37B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D37B8 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D37B8 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028D37B8 */ if (_t23) goto L_028D37E0; else goto L_028D37BC;
|
|
L_028D37BC: ; // 0x28d37bc
|
|
/* 028D37BC */ _t24 = cpu->r[29] + 0x00000000u;
|
|
/* 028D37BC */ cpu->r[12] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D37C0 */ _t25 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D37C0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D37C4 */ cpu->ctr = cpu->r[8];
|
|
/* 028D37C8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D37CC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D37D0 */ _t26 = cpu->r[3] + 0x00000000u;
|
|
/* 028D37D0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D37D4 */ _t27 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028D37D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D37D8 */ cpu->ctr = cpu->r[0];
|
|
/* 028D37DC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D37E0: ; // 0x28d37e0
|
|
/* 028D37E0 */ _t28 = cpu->r[30] + 0x00000158u;
|
|
/* 028D37E0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D37E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D37E8 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D37E8 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028D37E8 */ if (_t30) goto L_028D37F4; else goto L_028D37EC;
|
|
L_028D37EC: ; // 0x28d37ec
|
|
/* 028D37EC */ cpu->r[4] = cpu->r[31];
|
|
/* 028D37F0 */ Gambit_fn_028CB3B4(cpu);
|
|
L_028D37F4: ; // 0x28d37f4
|
|
/* 028D37F4 */ _t31 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D37F4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028D37F8 */ _t32 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D37F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028D37FC */ _t33 = cpu->r[1] + 0x00000010u;
|
|
/* 028D37FC */ cpu->r[30] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028D3800 */ cpu->lr = cpu->r[0];
|
|
/* 028D3804 */ _t34 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3804 */ cpu->r[31] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028D3808 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D380C */ return;
|
|
}
|
|
|
|
// fn_028D3810 @ 0x28d3810
|
|
void Gambit_fn_028D3810(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47;
|
|
|
|
L_028D3810: ; // 0x28d3810
|
|
/* 028D3810 */ cpu->r[0] = cpu->lr;
|
|
/* 028D3814 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D3814 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D3814 */ cpu->r[1] = _t0;
|
|
/* 028D3818 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028D3818 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D381C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D381C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D3820 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D3820 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D3824 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D3828 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3828 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028D382C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D382C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D3830 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3830 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D3830 */ if (_t6) goto L_028D393C; else goto L_028D3834;
|
|
L_028D3834: ; // 0x28d3834
|
|
/* 028D3834 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D3838 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D383C */ Gambit_fn_028D3720(cpu);
|
|
/* 028D3840 */ _t7 = cpu->r[31] + 0x00000194u;
|
|
/* 028D3840 */ cpu->r[11] = rbrew_read16(cpu->mem, _t7);
|
|
/* 028D3844 */ cpu->r[6] = rbrew_rlwinm(cpu->r[11], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D3844 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028D3848 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3848 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D3848 */ if (_t9) goto L_028D384C; else goto L_028D3908;
|
|
L_028D384C: ; // 0x28d384c
|
|
/* 028D384C */ _t10 = cpu->r[31] + 0x00000004u;
|
|
/* 028D384C */ cpu->r[8] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D3850 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000002u);
|
|
/* 028D3854 */ _t11 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D3854 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D3854 */ if (_t12) goto L_028D3908; else goto L_028D3858;
|
|
L_028D3858: ; // 0x28d3858
|
|
/* 028D3858 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D385C */ Gambit_fn_028BEFE8(cpu);
|
|
/* 028D3860 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3864 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3864 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D3864 */ if (_t14) goto L_028D3868; else goto L_028D3908;
|
|
L_028D3868: ; // 0x28d3868
|
|
/* 028D3868 */ _t15 = cpu->r[30] + 0x0000015Cu;
|
|
/* 028D3868 */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D386C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3870 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3870 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D3870 */ if (_t17) goto L_028D393C; else goto L_028D3874;
|
|
L_028D3874: ; // 0x28d3874
|
|
/* 028D3874 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3878 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D387C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D387C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D387C */ if (_t19) goto L_028D38A8; else goto L_028D3880;
|
|
L_028D3880: ; // 0x28d3880
|
|
/* 028D3880 */ _t20 = cpu->r[29] + 0x00000000u;
|
|
/* 028D3880 */ cpu->r[10] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D3884 */ _t21 = cpu->r[10] + 0x0000008Cu;
|
|
/* 028D3884 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D3888 */ cpu->ctr = cpu->r[0];
|
|
/* 028D388C */ cpu->r[3] = cpu->r[29];
|
|
/* 028D3890 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3894 */ _t22 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3894 */ cpu->r[12] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D3898 */ _t23 = cpu->r[12] + 0x00000014u;
|
|
/* 028D3898 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D389C */ cpu->ctr = cpu->r[0];
|
|
/* 028D38A0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D38A4 */ _t24 = cpu->r[30] + 0x0000015Cu;
|
|
/* 028D38A4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t24);
|
|
L_028D38A8: ; // 0x28d38a8
|
|
/* 028D38A8 */ _t25 = cpu->r[3] + 0x00000000u;
|
|
/* 028D38A8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D38AC */ _t26 = cpu->r[9] + 0x00000014u;
|
|
/* 028D38AC */ cpu->r[10] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D38B0 */ cpu->ctr = cpu->r[10];
|
|
/* 028D38B4 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D38B8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D38BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D38C0 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D38C0 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028D38C0 */ if (_t28) goto L_028D38E8; else goto L_028D38C4;
|
|
L_028D38C4: ; // 0x28d38c4
|
|
/* 028D38C4 */ _t29 = cpu->r[29] + 0x00000000u;
|
|
/* 028D38C4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028D38C8 */ _t30 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D38C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028D38CC */ cpu->ctr = cpu->r[0];
|
|
/* 028D38D0 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D38D4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D38D8 */ _t31 = cpu->r[3] + 0x00000000u;
|
|
/* 028D38D8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028D38DC */ _t32 = cpu->r[7] + 0x0000001Cu;
|
|
/* 028D38DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028D38E0 */ cpu->ctr = cpu->r[0];
|
|
/* 028D38E4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D38E8: ; // 0x28d38e8
|
|
/* 028D38E8 */ _t33 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D38E8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028D38EC */ _t34 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D38EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028D38F0 */ _t35 = cpu->r[1] + 0x00000010u;
|
|
/* 028D38F0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028D38F4 */ cpu->lr = cpu->r[0];
|
|
/* 028D38F8 */ _t36 = cpu->r[1] + 0x00000014u;
|
|
/* 028D38F8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028D38FC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D3900 */ cpu->r[3] = 0x00000001u;
|
|
/* 028D3904 */ return;
|
|
L_028D3908: ; // 0x28d3908
|
|
/* 028D3908 */ _t37 = cpu->r[30] + 0x00000158u;
|
|
/* 028D3908 */ cpu->r[3] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028D390C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3910 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3910 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028D3910 */ if (_t39) goto L_028D393C; else goto L_028D3914;
|
|
L_028D3914: ; // 0x28d3914
|
|
/* 028D3914 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D3918 */ Gambit_fn_028CB154(cpu);
|
|
/* 028D391C */ _t40 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D391C */ cpu->r[29] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028D3920 */ _t41 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D3920 */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028D3924 */ _t42 = cpu->r[1] + 0x00000010u;
|
|
/* 028D3924 */ cpu->r[30] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028D3928 */ cpu->lr = cpu->r[0];
|
|
/* 028D392C */ _t43 = cpu->r[1] + 0x00000014u;
|
|
/* 028D392C */ cpu->r[31] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028D3930 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D3934 */ cpu->r[3] = 0x00000001u;
|
|
/* 028D3938 */ return;
|
|
L_028D393C: ; // 0x28d393c
|
|
/* 028D393C */ _t44 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D393C */ cpu->r[29] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028D3940 */ _t45 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D3940 */ cpu->r[0] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028D3944 */ _t46 = cpu->r[1] + 0x00000010u;
|
|
/* 028D3944 */ cpu->r[30] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028D3948 */ cpu->lr = cpu->r[0];
|
|
/* 028D394C */ _t47 = cpu->r[1] + 0x00000014u;
|
|
/* 028D394C */ cpu->r[31] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028D3950 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D3954 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D3958 */ return;
|
|
}
|
|
|
|
// fn_028D3814 @ 0x28d3814
|
|
void Gambit_fn_028D3814(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47;
|
|
|
|
L_028D3814: ; // 0x28d3814
|
|
/* 028D3814 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D3814 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D3814 */ cpu->r[1] = _t0;
|
|
/* 028D3818 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028D3818 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D381C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D381C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D3820 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D3820 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D3824 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D3828 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3828 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028D382C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D382C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D3830 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3830 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D3830 */ if (_t6) goto L_028D393C; else goto L_028D3834;
|
|
L_028D3834: ; // 0x28d3834
|
|
/* 028D3834 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D3838 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D383C */ Gambit_fn_028D3720(cpu);
|
|
/* 028D3840 */ _t7 = cpu->r[31] + 0x00000194u;
|
|
/* 028D3840 */ cpu->r[11] = rbrew_read16(cpu->mem, _t7);
|
|
/* 028D3844 */ cpu->r[6] = rbrew_rlwinm(cpu->r[11], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D3844 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028D3848 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3848 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D3848 */ if (_t9) goto L_028D384C; else goto L_028D3908;
|
|
L_028D384C: ; // 0x28d384c
|
|
/* 028D384C */ _t10 = cpu->r[31] + 0x00000004u;
|
|
/* 028D384C */ cpu->r[8] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D3850 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000002u);
|
|
/* 028D3854 */ _t11 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D3854 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D3854 */ if (_t12) goto L_028D3908; else goto L_028D3858;
|
|
L_028D3858: ; // 0x28d3858
|
|
/* 028D3858 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D385C */ Gambit_fn_028BEFE8(cpu);
|
|
/* 028D3860 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3864 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3864 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D3864 */ if (_t14) goto L_028D3868; else goto L_028D3908;
|
|
L_028D3868: ; // 0x28d3868
|
|
/* 028D3868 */ _t15 = cpu->r[30] + 0x0000015Cu;
|
|
/* 028D3868 */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D386C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3870 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3870 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D3870 */ if (_t17) goto L_028D393C; else goto L_028D3874;
|
|
L_028D3874: ; // 0x28d3874
|
|
/* 028D3874 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3878 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D387C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D387C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D387C */ if (_t19) goto L_028D38A8; else goto L_028D3880;
|
|
L_028D3880: ; // 0x28d3880
|
|
/* 028D3880 */ _t20 = cpu->r[29] + 0x00000000u;
|
|
/* 028D3880 */ cpu->r[10] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D3884 */ _t21 = cpu->r[10] + 0x0000008Cu;
|
|
/* 028D3884 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D3888 */ cpu->ctr = cpu->r[0];
|
|
/* 028D388C */ cpu->r[3] = cpu->r[29];
|
|
/* 028D3890 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3894 */ _t22 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3894 */ cpu->r[12] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D3898 */ _t23 = cpu->r[12] + 0x00000014u;
|
|
/* 028D3898 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D389C */ cpu->ctr = cpu->r[0];
|
|
/* 028D38A0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D38A4 */ _t24 = cpu->r[30] + 0x0000015Cu;
|
|
/* 028D38A4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t24);
|
|
L_028D38A8: ; // 0x28d38a8
|
|
/* 028D38A8 */ _t25 = cpu->r[3] + 0x00000000u;
|
|
/* 028D38A8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D38AC */ _t26 = cpu->r[9] + 0x00000014u;
|
|
/* 028D38AC */ cpu->r[10] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D38B0 */ cpu->ctr = cpu->r[10];
|
|
/* 028D38B4 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D38B8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D38BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D38C0 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D38C0 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028D38C0 */ if (_t28) goto L_028D38E8; else goto L_028D38C4;
|
|
L_028D38C4: ; // 0x28d38c4
|
|
/* 028D38C4 */ _t29 = cpu->r[29] + 0x00000000u;
|
|
/* 028D38C4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028D38C8 */ _t30 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D38C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028D38CC */ cpu->ctr = cpu->r[0];
|
|
/* 028D38D0 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D38D4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D38D8 */ _t31 = cpu->r[3] + 0x00000000u;
|
|
/* 028D38D8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028D38DC */ _t32 = cpu->r[7] + 0x0000001Cu;
|
|
/* 028D38DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028D38E0 */ cpu->ctr = cpu->r[0];
|
|
/* 028D38E4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D38E8: ; // 0x28d38e8
|
|
/* 028D38E8 */ _t33 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D38E8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028D38EC */ _t34 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D38EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028D38F0 */ _t35 = cpu->r[1] + 0x00000010u;
|
|
/* 028D38F0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028D38F4 */ cpu->lr = cpu->r[0];
|
|
/* 028D38F8 */ _t36 = cpu->r[1] + 0x00000014u;
|
|
/* 028D38F8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028D38FC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D3900 */ cpu->r[3] = 0x00000001u;
|
|
/* 028D3904 */ return;
|
|
L_028D3908: ; // 0x28d3908
|
|
/* 028D3908 */ _t37 = cpu->r[30] + 0x00000158u;
|
|
/* 028D3908 */ cpu->r[3] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028D390C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3910 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3910 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028D3910 */ if (_t39) goto L_028D393C; else goto L_028D3914;
|
|
L_028D3914: ; // 0x28d3914
|
|
/* 028D3914 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D3918 */ Gambit_fn_028CB154(cpu);
|
|
/* 028D391C */ _t40 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D391C */ cpu->r[29] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028D3920 */ _t41 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D3920 */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028D3924 */ _t42 = cpu->r[1] + 0x00000010u;
|
|
/* 028D3924 */ cpu->r[30] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028D3928 */ cpu->lr = cpu->r[0];
|
|
/* 028D392C */ _t43 = cpu->r[1] + 0x00000014u;
|
|
/* 028D392C */ cpu->r[31] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028D3930 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D3934 */ cpu->r[3] = 0x00000001u;
|
|
/* 028D3938 */ return;
|
|
L_028D393C: ; // 0x28d393c
|
|
/* 028D393C */ _t44 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D393C */ cpu->r[29] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028D3940 */ _t45 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D3940 */ cpu->r[0] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028D3944 */ _t46 = cpu->r[1] + 0x00000010u;
|
|
/* 028D3944 */ cpu->r[30] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028D3948 */ cpu->lr = cpu->r[0];
|
|
/* 028D394C */ _t47 = cpu->r[1] + 0x00000014u;
|
|
/* 028D394C */ cpu->r[31] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028D3950 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D3954 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D3958 */ return;
|
|
}
|
|
|
|
// fn_028D395C @ 0x28d395c
|
|
void Gambit_fn_028D395C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25;
|
|
|
|
L_028D395C: ; // 0x28d395c
|
|
/* 028D395C */ cpu->r[0] = cpu->lr;
|
|
/* 028D3960 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D3960 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D3960 */ cpu->r[1] = _t0;
|
|
/* 028D3964 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3964 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D3968 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D3968 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D396C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D396C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D3970 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3970 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D3974 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3974 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D3974 */ if (_t5) goto L_028D3978; else goto L_028D3988;
|
|
L_028D3978: ; // 0x28d3978
|
|
/* 028D3978 */ cpu->r[3] = 0x00000174u;
|
|
/* 028D397C */ Gambit_fn_02801A78(cpu);
|
|
/* 028D3980 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D3980 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D3984 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3984 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D3984 */ if (_t7) goto L_028D39F8; else goto L_028D3988;
|
|
L_028D3988: ; // 0x28d3988
|
|
/* 028D3988 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D398C */ Gambit_fn_028D07B8(cpu);
|
|
/* 028D3990 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D3994 */ cpu->r[30] = 0x00000000u;
|
|
/* 028D3998 */ _t8 = cpu->r[12] + 0xFFFFA798u;
|
|
/* 028D3998 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028D399C */ cpu->r[9] = 0x10140000u;
|
|
/* 028D39A0 */ _t9 = cpu->r[31] + 0x00000164u;
|
|
/* 028D39A0 */ rbrew_write32(cpu->mem, _t9, cpu->r[30]);
|
|
/* 028D39A4 */ cpu->r[9] = cpu->r[9] + 0xFFFFA7A0u;
|
|
/* 028D39A8 */ _t10 = cpu->r[31] + 0x00000168u;
|
|
/* 028D39A8 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 028D39AC */ cpu->r[0] = 0x10140000u;
|
|
/* 028D39B0 */ _t11 = cpu->r[31] + 0x00000008u;
|
|
/* 028D39B0 */ rbrew_write32(cpu->mem, _t11, cpu->r[9]);
|
|
/* 028D39B4 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D39B8 */ _t12 = cpu->r[31] + 0x00000160u;
|
|
/* 028D39B8 */ rbrew_write32(cpu->mem, _t12, cpu->r[30]);
|
|
/* 028D39BC */ cpu->r[11] = cpu->r[11] + 0xFFFFA890u;
|
|
/* 028D39C0 */ _t13 = cpu->r[31] + 0x00000158u;
|
|
/* 028D39C0 */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 028D39C4 */ cpu->r[0] = cpu->r[0] + 0xFFFFA870u;
|
|
/* 028D39C8 */ _t14 = cpu->r[31] + 0x00000050u;
|
|
/* 028D39C8 */ rbrew_write32(cpu->mem, _t14, cpu->r[11]);
|
|
/* 028D39CC */ _t15 = cpu->r[31] + 0x00000038u;
|
|
/* 028D39CC */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028D39D0 */ cpu->r[3] = cpu->r[31] + 0x0000016Cu;
|
|
/* 028D39D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D39D4 */ _t16 = cpu->r[31] + 0x0000015Cu;
|
|
/* 028D39D4 */ rbrew_write32(cpu->mem, _t16, cpu->r[30]);
|
|
/* 028D39D8 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D39D8 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D39D8 */ if (_t18) goto L_028D39DC; else goto L_028D39EC;
|
|
L_028D39DC: ; // 0x28d39dc
|
|
/* 028D39DC */ cpu->r[3] = 0x00000001u;
|
|
/* 028D39E0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D39E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D39E8 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D39E8 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028D39E8 */ if (_t20) goto L_028D39F4; else goto L_028D39EC;
|
|
L_028D39EC: ; // 0x28d39ec
|
|
/* 028D39EC */ cpu->r[0] = 0x000000FFu;
|
|
/* 028D39F0 */ _t21 = cpu->r[3] + 0x00000000u;
|
|
/* 028D39F0 */ rbrew_write8(cpu->mem, _t21, (uint8_t)cpu->r[0]);
|
|
L_028D39F4: ; // 0x28d39f4
|
|
/* 028D39F4 */ _t22 = cpu->r[31] + 0x00000170u;
|
|
/* 028D39F4 */ rbrew_write32(cpu->mem, _t22, cpu->r[30]);
|
|
L_028D39F8: ; // 0x28d39f8
|
|
/* 028D39F8 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028D39F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D39FC */ cpu->r[3] = cpu->r[31];
|
|
/* 028D3A00 */ _t24 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3A00 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D3A04 */ cpu->lr = cpu->r[0];
|
|
/* 028D3A08 */ _t25 = cpu->r[1] + 0x00000008u;
|
|
/* 028D3A08 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D3A0C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D3A10 */ return;
|
|
}
|
|
|
|
// fn_028D3960 @ 0x28d3960
|
|
void Gambit_fn_028D3960(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25;
|
|
|
|
L_028D3960: ; // 0x28d3960
|
|
/* 028D3960 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D3960 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D3960 */ cpu->r[1] = _t0;
|
|
/* 028D3964 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3964 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D3968 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D3968 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D396C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D396C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D3970 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3970 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D3974 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3974 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D3974 */ if (_t5) goto L_028D3978; else goto L_028D3988;
|
|
L_028D3978: ; // 0x28d3978
|
|
/* 028D3978 */ cpu->r[3] = 0x00000174u;
|
|
/* 028D397C */ Gambit_fn_02801A78(cpu);
|
|
/* 028D3980 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D3980 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D3984 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3984 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D3984 */ if (_t7) goto L_028D39F8; else goto L_028D3988;
|
|
L_028D3988: ; // 0x28d3988
|
|
/* 028D3988 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D398C */ Gambit_fn_028D07B8(cpu);
|
|
/* 028D3990 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D3994 */ cpu->r[30] = 0x00000000u;
|
|
/* 028D3998 */ _t8 = cpu->r[12] + 0xFFFFA798u;
|
|
/* 028D3998 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028D399C */ cpu->r[9] = 0x10140000u;
|
|
/* 028D39A0 */ _t9 = cpu->r[31] + 0x00000164u;
|
|
/* 028D39A0 */ rbrew_write32(cpu->mem, _t9, cpu->r[30]);
|
|
/* 028D39A4 */ cpu->r[9] = cpu->r[9] + 0xFFFFA7A0u;
|
|
/* 028D39A8 */ _t10 = cpu->r[31] + 0x00000168u;
|
|
/* 028D39A8 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 028D39AC */ cpu->r[0] = 0x10140000u;
|
|
/* 028D39B0 */ _t11 = cpu->r[31] + 0x00000008u;
|
|
/* 028D39B0 */ rbrew_write32(cpu->mem, _t11, cpu->r[9]);
|
|
/* 028D39B4 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D39B8 */ _t12 = cpu->r[31] + 0x00000160u;
|
|
/* 028D39B8 */ rbrew_write32(cpu->mem, _t12, cpu->r[30]);
|
|
/* 028D39BC */ cpu->r[11] = cpu->r[11] + 0xFFFFA890u;
|
|
/* 028D39C0 */ _t13 = cpu->r[31] + 0x00000158u;
|
|
/* 028D39C0 */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 028D39C4 */ cpu->r[0] = cpu->r[0] + 0xFFFFA870u;
|
|
/* 028D39C8 */ _t14 = cpu->r[31] + 0x00000050u;
|
|
/* 028D39C8 */ rbrew_write32(cpu->mem, _t14, cpu->r[11]);
|
|
/* 028D39CC */ _t15 = cpu->r[31] + 0x00000038u;
|
|
/* 028D39CC */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028D39D0 */ cpu->r[3] = cpu->r[31] + 0x0000016Cu;
|
|
/* 028D39D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D39D4 */ _t16 = cpu->r[31] + 0x0000015Cu;
|
|
/* 028D39D4 */ rbrew_write32(cpu->mem, _t16, cpu->r[30]);
|
|
/* 028D39D8 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D39D8 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D39D8 */ if (_t18) goto L_028D39DC; else goto L_028D39EC;
|
|
L_028D39DC: ; // 0x28d39dc
|
|
/* 028D39DC */ cpu->r[3] = 0x00000001u;
|
|
/* 028D39E0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D39E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D39E8 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D39E8 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028D39E8 */ if (_t20) goto L_028D39F4; else goto L_028D39EC;
|
|
L_028D39EC: ; // 0x28d39ec
|
|
/* 028D39EC */ cpu->r[0] = 0x000000FFu;
|
|
/* 028D39F0 */ _t21 = cpu->r[3] + 0x00000000u;
|
|
/* 028D39F0 */ rbrew_write8(cpu->mem, _t21, (uint8_t)cpu->r[0]);
|
|
L_028D39F4: ; // 0x28d39f4
|
|
/* 028D39F4 */ _t22 = cpu->r[31] + 0x00000170u;
|
|
/* 028D39F4 */ rbrew_write32(cpu->mem, _t22, cpu->r[30]);
|
|
L_028D39F8: ; // 0x28d39f8
|
|
/* 028D39F8 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028D39F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D39FC */ cpu->r[3] = cpu->r[31];
|
|
/* 028D3A00 */ _t24 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3A00 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D3A04 */ cpu->lr = cpu->r[0];
|
|
/* 028D3A08 */ _t25 = cpu->r[1] + 0x00000008u;
|
|
/* 028D3A08 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D3A0C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D3A10 */ return;
|
|
}
|
|
|
|
// fn_028D3A14 @ 0x28d3a14
|
|
void Gambit_fn_028D3A14(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46;
|
|
|
|
L_028D3A14: ; // 0x28d3a14
|
|
/* 028D3A14 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 028D3A14 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D3A14 */ cpu->r[1] = _t0;
|
|
/* 028D3A18 */ /* nop */
|
|
/* 028D3A1C */ cpu->r[0] = cpu->lr;
|
|
/* 028D3A20 */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 028D3A20 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028D3A24 */ /* nop */
|
|
/* 028D3A28 */ _t2 = cpu->r[1] + 0x00000028u;
|
|
/* 028D3A28 */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028D3A2C */ _t3 = cpu->r[1] + 0x00000034u;
|
|
/* 028D3A2C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D3A30 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D3A34 */ cpu->r[28] = cpu->r[3];
|
|
/* 028D3A38 */ cpu->r[30] = cpu->r[5];
|
|
/* 028D3A3C */ _t4 = cpu->r[28] + 0x00000054u;
|
|
/* 028D3A3C */ cpu->r[5] = rbrew_read8(cpu->mem, _t4);
|
|
/* 028D3A40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028D3A44 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3A44 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D3A44 */ if (_t6) goto L_028D3A48; else goto L_028D3B8C;
|
|
L_028D3A48: ; // 0x28d3a48
|
|
/* 028D3A48 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D3A4C */ cpu->r[3] = 0x00000014u;
|
|
/* 028D3A50 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D3A54 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D3A58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3A5C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3A5C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D3A5C */ if (_t8) goto L_028D3A64; else goto L_028D3A60;
|
|
L_028D3A60: ; // 0x28d3a60
|
|
/* 028D3A60 */ Gambit_fn_028CA5E0(cpu);
|
|
L_028D3A64: ; // 0x28d3a64
|
|
/* 028D3A64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3A68 */ _t9 = cpu->r[28] + 0x00000158u;
|
|
/* 028D3A68 */ rbrew_write32(cpu->mem, _t9, cpu->r[3]);
|
|
/* 028D3A6C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3A6C */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D3A6C */ if (_t11) goto L_028D3A7C; else goto L_028D3A70;
|
|
L_028D3A70: ; // 0x28d3a70
|
|
/* 028D3A70 */ cpu->r[4] = 0x000001C4u;
|
|
/* 028D3A74 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D3A78 */ Gambit_fn_028CA8FC(cpu);
|
|
L_028D3A7C: ; // 0x28d3a7c
|
|
/* 028D3A7C */ cpu->r[4] = cpu->r[30];
|
|
/* 028D3A80 */ cpu->r[3] = 0x00000054u;
|
|
/* 028D3A84 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D3A88 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D3A8C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D3A8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D3A90 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3A90 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D3A90 */ if (_t13) goto L_028D3B20; else goto L_028D3A94;
|
|
L_028D3A94: ; // 0x28d3a94
|
|
/* 028D3A94 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D3A98 */ cpu->r[4] = 0x00000054u;
|
|
/* 028D3A9C */ Gambit_fn_02C89380(cpu);
|
|
/* 028D3AA0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D3AA4 */ cpu->r[0] = cpu->r[0] + 0xFFFF9D44u;
|
|
/* 028D3AA8 */ cpu->r[27] = cpu->r[31] + 0x00000004u;
|
|
/* 028D3AA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028D3AAC */ _t14 = cpu->r[31] + 0x00000000u;
|
|
/* 028D3AAC */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
/* 028D3AB0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3AB0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D3AB0 */ if (_t16) goto L_028D3AB4; else goto L_028D3AC4;
|
|
L_028D3AB4: ; // 0x28d3ab4
|
|
/* 028D3AB4 */ cpu->r[3] = 0x00000010u;
|
|
/* 028D3AB8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D3ABC */ cpu->r[27] = cpu->r[3];
|
|
/* 028D3ABC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028D3AC0 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3AC0 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D3AC0 */ if (_t18) goto L_028D3AF4; else goto L_028D3AC4;
|
|
L_028D3AC4: ; // 0x28d3ac4
|
|
/* 028D3AC4 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D3AC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3AC8 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3AC8 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028D3AC8 */ if (_t20) goto L_028D3ACC; else goto L_028D3ADC;
|
|
L_028D3ACC: ; // 0x28d3acc
|
|
/* 028D3ACC */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028D3AD0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D3AD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3AD8 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3AD8 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028D3AD8 */ if (_t22) goto L_028D3AEC; else goto L_028D3ADC;
|
|
L_028D3ADC: ; // 0x28d3adc
|
|
/* 028D3ADC */ _t23 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3ADC */ rbrew_write32(cpu->mem, _t23, cpu->r[3]);
|
|
/* 028D3AE0 */ cpu->r[9] = 0x00000000u;
|
|
/* 028D3AE4 */ _t24 = cpu->r[3] + 0x00000004u;
|
|
/* 028D3AE4 */ rbrew_write32(cpu->mem, _t24, cpu->r[3]);
|
|
/* 028D3AE8 */ _t25 = cpu->r[3] + 0x00000008u;
|
|
/* 028D3AE8 */ rbrew_write32(cpu->mem, _t25, cpu->r[9]);
|
|
L_028D3AEC: ; // 0x28d3aec
|
|
/* 028D3AEC */ cpu->r[10] = 0xFFFFFFFFu;
|
|
/* 028D3AF0 */ _t26 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028D3AF0 */ rbrew_write32(cpu->mem, _t26, cpu->r[10]);
|
|
L_028D3AF4: ; // 0x28d3af4
|
|
/* 028D3AF4 */ cpu->r[12] = cpu->r[31] + 0x00000014u;
|
|
/* 028D3AF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D3AF8 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3AF8 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028D3AF8 */ if (_t28) goto L_028D3AFC; else goto L_028D3B0C;
|
|
L_028D3AFC: ; // 0x28d3afc
|
|
/* 028D3AFC */ cpu->r[3] = 0x00000040u;
|
|
/* 028D3B00 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D3B04 */ cpu->r[12] = cpu->r[3];
|
|
/* 028D3B04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D3B08 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3B08 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028D3B08 */ if (_t30) goto L_028D3B20; else goto L_028D3B0C;
|
|
L_028D3B0C: ; // 0x28d3b0c
|
|
/* 028D3B0C */ cpu->r[0] = 0x10140000u;
|
|
/* 028D3B10 */ cpu->r[0] = cpu->r[0] + 0xFFFFA778u;
|
|
/* 028D3B14 */ cpu->r[3] = cpu->r[12] + 0x00000004u;
|
|
/* 028D3B18 */ _t31 = cpu->r[12] + 0x00000000u;
|
|
/* 028D3B18 */ rbrew_write32(cpu->mem, _t31, cpu->r[0]);
|
|
/* 028D3B1C */ Gambit_fn_02836EBC(cpu);
|
|
L_028D3B20: ; // 0x28d3b20
|
|
/* 028D3B20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D3B24 */ _t32 = cpu->r[28] + 0x0000015Cu;
|
|
/* 028D3B24 */ rbrew_write32(cpu->mem, _t32, cpu->r[31]);
|
|
/* 028D3B28 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3B28 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028D3B28 */ if (_t34) goto L_028D3B38; else goto L_028D3B2C;
|
|
L_028D3B2C: ; // 0x28d3b2c
|
|
/* 028D3B2C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D3B30 */ cpu->r[4] = 0x000001C4u;
|
|
/* 028D3B34 */ Gambit_fn_028CBDF0(cpu);
|
|
L_028D3B38: ; // 0x28d3b38
|
|
/* 028D3B38 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D3B3C */ cpu->r[3] = 0x00000014u;
|
|
/* 028D3B40 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D3B44 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D3B48 */ cpu->r[7] = 0x10140000u;
|
|
/* 028D3B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3B50 */ _t35 = cpu->r[7] + 0xFFFFA79Cu;
|
|
/* 028D3B50 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t35);
|
|
/* 028D3B54 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3B54 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028D3B54 */ if (_t37) goto L_028D3B60; else goto L_028D3B58;
|
|
L_028D3B58: ; // 0x28d3b58
|
|
/* 028D3B58 */ cpu->f[1] = cpu->f[31];
|
|
/* 028D3B5C */ Gambit_fn_028CA0E4(cpu);
|
|
L_028D3B60: ; // 0x28d3b60
|
|
/* 028D3B60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3B64 */ _t38 = cpu->r[28] + 0x00000170u;
|
|
/* 028D3B64 */ rbrew_write32(cpu->mem, _t38, cpu->r[3]);
|
|
/* 028D3B68 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3B68 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028D3B68 */ if (_t40) goto L_028D3B7C; else goto L_028D3B6C;
|
|
L_028D3B6C: ; // 0x28d3b6c
|
|
/* 028D3B6C */ cpu->r[6] = 0x10140000u;
|
|
/* 028D3B70 */ cpu->f[1] = cpu->f[31];
|
|
/* 028D3B74 */ _t41 = cpu->r[6] + 0xFFFFA798u;
|
|
/* 028D3B74 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t41);
|
|
/* 028D3B78 */ Gambit_fn_028CA1D8(cpu);
|
|
L_028D3B7C: ; // 0x28d3b7c
|
|
/* 028D3B7C */ cpu->r[5] = cpu->r[30];
|
|
/* 028D3B80 */ cpu->r[4] = cpu->r[29];
|
|
/* 028D3B84 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D3B88 */ Gambit_fn_028D0994(cpu);
|
|
L_028D3B8C: ; // 0x28d3b8c
|
|
/* 028D3B8C */ /* nop */
|
|
/* 028D3B90 */ _t42 = cpu->r[1] + 0x00000028u;
|
|
/* 028D3B90 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t42);
|
|
/* 028D3B94 */ _t43 = cpu->r[1] + 0x00000020u;
|
|
/* 028D3B94 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t43);
|
|
/* 028D3B98 */ _t44 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D3B98 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028D3B98 */ if (_t45) goto L_028D3B9C; // else: addr-0 trap, fall-through
|
|
L_028D3B9C: ; // 0x28d3b9c
|
|
/* 028D3B9C */ _t46 = cpu->r[1] + 0x00000034u;
|
|
/* 028D3B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028D3BA0 */ cpu->lr = cpu->r[0];
|
|
/* 028D3BA4 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 028D3BA8 */ return;
|
|
}
|
|
|
|
// fn_028D3BAC @ 0x28d3bac
|
|
void Gambit_fn_028D3BAC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100;
|
|
|
|
L_028D3BAC: ; // 0x28d3bac
|
|
/* 028D3BAC */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028D3BAC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D3BAC */ cpu->r[1] = _t0;
|
|
/* 028D3BB0 */ /* nop */
|
|
/* 028D3BB4 */ cpu->r[0] = cpu->lr;
|
|
/* 028D3BB8 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D3BB8 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D3BBC */ cpu->r[25] = cpu->r[3];
|
|
/* 028D3BC0 */ _t2 = cpu->r[25] + 0x00000158u;
|
|
/* 028D3BC0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028D3BC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D3BC8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3BC8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D3BC8 */ if (_t4) goto L_028D3E78; else goto L_028D3BCC;
|
|
L_028D3BCC: ; // 0x28d3bcc
|
|
/* 028D3BCC */ _t5 = cpu->r[25] + 0x0000015Cu;
|
|
/* 028D3BCC */ cpu->r[3] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D3BD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3BD4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3BD4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D3BD4 */ if (_t7) goto L_028D3E70; else goto L_028D3BD8;
|
|
L_028D3BD8: ; // 0x28d3bd8
|
|
/* 028D3BD8 */ _t8 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3BD8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D3BDC */ _t9 = cpu->r[8] + 0x0000007Cu;
|
|
/* 028D3BDC */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D3BE0 */ cpu->ctr = cpu->r[10];
|
|
/* 028D3BE4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3BE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3BEC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3BEC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D3BEC */ if (_t11) goto L_028D3BF0; else goto L_028D3E6C;
|
|
L_028D3BF0: ; // 0x28d3bf0
|
|
/* 028D3BF0 */ _t12 = cpu->r[25] + 0x0000015Cu;
|
|
/* 028D3BF0 */ cpu->r[24] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D3BF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], 0x00000000u);
|
|
/* 028D3BF8 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3BF8 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D3BF8 */ if (_t14) goto L_028D3C20; else goto L_028D3BFC;
|
|
L_028D3BFC: ; // 0x28d3bfc
|
|
/* 028D3BFC */ _t15 = cpu->r[24] + 0x00000000u;
|
|
/* 028D3BFC */ cpu->r[9] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D3C00 */ _t16 = cpu->r[9] + 0x0000008Cu;
|
|
/* 028D3C00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D3C04 */ cpu->ctr = cpu->r[0];
|
|
/* 028D3C08 */ cpu->r[3] = cpu->r[24];
|
|
/* 028D3C0C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3C10 */ _t17 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3C10 */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D3C14 */ _t18 = cpu->r[12] + 0x00000014u;
|
|
/* 028D3C14 */ cpu->r[5] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D3C18 */ cpu->ctr = cpu->r[5];
|
|
/* 028D3C1C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D3C20: ; // 0x28d3c20
|
|
/* 028D3C20 */ _t19 = cpu->r[25] + 0x00000158u;
|
|
/* 028D3C20 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D3C24 */ _t20 = cpu->r[12] + 0x00000004u;
|
|
/* 028D3C24 */ cpu->r[27] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D3C28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028D3C2C */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3C2C */ _t22 = _t21 & 0x00000001u;
|
|
/* 028D3C2C */ if (_t22) goto L_028D3C58; else goto L_028D3C30;
|
|
L_028D3C30: ; // 0x28d3c30
|
|
/* 028D3C30 */ _t23 = cpu->r[27] + 0x00000000u;
|
|
/* 028D3C30 */ cpu->r[6] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D3C34 */ _t24 = cpu->r[6] + 0x0000008Cu;
|
|
/* 028D3C34 */ cpu->r[7] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D3C38 */ cpu->ctr = cpu->r[7];
|
|
/* 028D3C3C */ cpu->r[3] = cpu->r[27];
|
|
/* 028D3C40 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3C44 */ _t25 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3C44 */ cpu->r[8] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D3C48 */ _t26 = cpu->r[8] + 0x00000014u;
|
|
/* 028D3C48 */ cpu->r[9] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D3C4C */ cpu->ctr = cpu->r[9];
|
|
/* 028D3C50 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3C54 */ _t27 = cpu->r[25] + 0x00000158u;
|
|
/* 028D3C54 */ cpu->r[12] = rbrew_read32(cpu->mem, _t27);
|
|
L_028D3C58: ; // 0x28d3c58
|
|
/* 028D3C58 */ _t28 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028D3C58 */ cpu->r[28] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D3C5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028D3C60 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3C60 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028D3C60 */ if (_t30) goto L_028D3C88; else goto L_028D3C64;
|
|
L_028D3C64: ; // 0x28d3c64
|
|
/* 028D3C64 */ _t31 = cpu->r[28] + 0x00000000u;
|
|
/* 028D3C64 */ cpu->r[10] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028D3C68 */ _t32 = cpu->r[10] + 0x0000008Cu;
|
|
/* 028D3C68 */ cpu->r[11] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028D3C6C */ cpu->ctr = cpu->r[11];
|
|
/* 028D3C70 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D3C74 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3C78 */ _t33 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3C78 */ cpu->r[12] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028D3C7C */ _t34 = cpu->r[12] + 0x00000014u;
|
|
/* 028D3C7C */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028D3C80 */ cpu->ctr = cpu->r[0];
|
|
/* 028D3C84 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D3C88: ; // 0x28d3c88
|
|
/* 028D3C88 */ _t35 = cpu->r[25] + 0x0000015Cu;
|
|
/* 028D3C88 */ cpu->r[30] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028D3C8C */ _t36 = cpu->r[30] + 0x00000000u;
|
|
/* 028D3C8C */ cpu->r[5] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028D3C90 */ _t37 = cpu->r[5] + 0x00000044u;
|
|
/* 028D3C90 */ cpu->r[6] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028D3C94 */ cpu->ctr = cpu->r[6];
|
|
/* 028D3C98 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D3C9C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3CA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3CA4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D3CA8 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3CA8 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028D3CA8 */ if (_t39) goto L_028D3CD8; else goto L_028D3CAC;
|
|
L_028D3CAC: ; // 0x28d3cac
|
|
/* 028D3CAC */ _t40 = cpu->r[30] + 0x00000000u;
|
|
/* 028D3CAC */ cpu->r[7] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028D3CB0 */ _t41 = cpu->r[7] + 0x0000005Cu;
|
|
/* 028D3CB0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028D3CB4 */ cpu->ctr = cpu->r[8];
|
|
/* 028D3CB8 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D3CBC */ cpu->r[3] = cpu->r[30];
|
|
/* 028D3CC0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3CC4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000000u);
|
|
/* 028D3CC8 */ cpu->r[29] = 0x00000000u;
|
|
/* 028D3CCC */ cpu->r[26] = cpu->r[3];
|
|
/* 028D3CD0 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3CD0 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028D3CD0 */ if (_t43) goto L_028D3DE8; else goto L_028D3CD4;
|
|
L_028D3CD4: ; // 0x28d3cd4
|
|
/* 028D3CD4 */ goto L_028D3CE8;
|
|
L_028D3CD8: ; // 0x28d3cd8
|
|
/* 028D3CD8 */ cpu->r[26] = 0x00000000u;
|
|
/* 028D3CDC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000000u);
|
|
/* 028D3CE0 */ cpu->r[29] = cpu->r[26];
|
|
/* 028D3CE4 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3CE4 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028D3CE4 */ if (_t45) goto L_028D3DE8; else goto L_028D3CE8;
|
|
L_028D3CE8: ; // 0x28d3ce8
|
|
/* 028D3CE8 */ _t46 = cpu->r[31] + 0x00000004u;
|
|
/* 028D3CE8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028D3CEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028D3CF0 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3CF0 */ _t48 = _t47 & 0x00000001u;
|
|
/* 028D3CF0 */ if (_t48) goto L_028D3CFC; else goto L_028D3CF4;
|
|
L_028D3CF4: ; // 0x28d3cf4
|
|
/* 028D3CF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000006u);
|
|
/* 028D3CF8 */ _t49 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3CF8 */ _t50 = _t49 & 0x00000001u;
|
|
/* 028D3CF8 */ if (_t50) goto L_028D3CFC; else goto L_028D3D24;
|
|
L_028D3CFC: ; // 0x28d3cfc
|
|
/* 028D3CFC */ _t51 = cpu->r[25] + 0x0000015Cu;
|
|
/* 028D3CFC */ cpu->r[3] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028D3D00 */ _t52 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3D00 */ cpu->r[9] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028D3D04 */ _t53 = cpu->r[9] + 0x00000034u;
|
|
/* 028D3D04 */ cpu->r[10] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028D3D08 */ cpu->ctr = cpu->r[10];
|
|
/* 028D3D0C */ cpu->r[4] = cpu->r[31];
|
|
/* 028D3D10 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3D14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028D3D18 */ cpu->r[31] = cpu->r[26];
|
|
/* 028D3D1C */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3D1C */ _t55 = _t54 & 0x00000001u;
|
|
/* 028D3D1C */ if (_t55) goto L_028D3D20; else goto L_028D3DB4;
|
|
L_028D3D20: ; // 0x28d3d20
|
|
/* 028D3D20 */ goto L_028D3DDC;
|
|
L_028D3D24: ; // 0x28d3d24
|
|
/* 028D3D24 */ _t56 = cpu->r[31] + 0x00000194u;
|
|
/* 028D3D24 */ cpu->r[0] = rbrew_read16(cpu->mem, _t56);
|
|
/* 028D3D28 */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D3D28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028D3D2C */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3D2C */ _t58 = _t57 & 0x00000001u;
|
|
/* 028D3D2C */ if (_t58) goto L_028D3D70; else goto L_028D3D30;
|
|
L_028D3D30: ; // 0x28d3d30
|
|
/* 028D3D30 */ _t59 = cpu->r[25] + 0x0000015Cu;
|
|
/* 028D3D30 */ cpu->r[3] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028D3D34 */ _t60 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3D34 */ cpu->r[9] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028D3D38 */ _t61 = cpu->r[9] + 0x00000034u;
|
|
/* 028D3D38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028D3D3C */ cpu->ctr = cpu->r[0];
|
|
/* 028D3D40 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D3D44 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3D48 */ _t62 = cpu->r[28] + 0x00000000u;
|
|
/* 028D3D48 */ cpu->r[11] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028D3D4C */ _t63 = cpu->r[11] + 0x00000014u;
|
|
/* 028D3D4C */ cpu->r[5] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028D3D50 */ cpu->ctr = cpu->r[5];
|
|
/* 028D3D54 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D3D58 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D3D5C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3D60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028D3D64 */ cpu->r[31] = cpu->r[26];
|
|
/* 028D3D68 */ _t64 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3D68 */ _t65 = _t64 & 0x00000001u;
|
|
/* 028D3D68 */ if (_t65) goto L_028D3D6C; else goto L_028D3DB4;
|
|
L_028D3D6C: ; // 0x28d3d6c
|
|
/* 028D3D6C */ goto L_028D3DDC;
|
|
L_028D3D70: ; // 0x28d3d70
|
|
/* 028D3D70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000002u);
|
|
/* 028D3D74 */ _t66 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D3D74 */ _t67 = _t66 & 0x00000001u;
|
|
/* 028D3D74 */ if (_t67) goto L_028D3D78; else goto L_028D3DA8;
|
|
L_028D3D78: ; // 0x28d3d78
|
|
/* 028D3D78 */ _t68 = cpu->r[25] + 0x0000015Cu;
|
|
/* 028D3D78 */ cpu->r[3] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028D3D7C */ _t69 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3D7C */ cpu->r[6] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028D3D80 */ _t70 = cpu->r[6] + 0x00000034u;
|
|
/* 028D3D80 */ cpu->r[7] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028D3D84 */ cpu->ctr = cpu->r[7];
|
|
/* 028D3D88 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D3D8C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3D90 */ _t71 = cpu->r[27] + 0x00000000u;
|
|
/* 028D3D90 */ cpu->r[8] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028D3D94 */ _t72 = cpu->r[8] + 0x00000014u;
|
|
/* 028D3D94 */ cpu->r[9] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028D3D98 */ cpu->ctr = cpu->r[9];
|
|
/* 028D3D9C */ cpu->r[3] = cpu->r[27];
|
|
/* 028D3DA0 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D3DA4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D3DA8: ; // 0x28d3da8
|
|
/* 028D3DA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028D3DAC */ cpu->r[31] = cpu->r[26];
|
|
/* 028D3DB0 */ _t73 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3DB0 */ _t74 = _t73 & 0x00000001u;
|
|
/* 028D3DB0 */ if (_t74) goto L_028D3DDC; else goto L_028D3DB4;
|
|
L_028D3DB4: ; // 0x28d3db4
|
|
/* 028D3DB4 */ _t75 = cpu->r[30] + 0x00000000u;
|
|
/* 028D3DB4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028D3DB8 */ _t76 = cpu->r[10] + 0x0000005Cu;
|
|
/* 028D3DB8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028D3DBC */ cpu->ctr = cpu->r[0];
|
|
/* 028D3DC0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D3DC4 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D3DC8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3DCC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 028D3DD0 */ cpu->r[26] = cpu->r[3];
|
|
/* 028D3DD4 */ _t77 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3DD4 */ _t78 = _t77 & 0x00000001u;
|
|
/* 028D3DD4 */ if (_t78) goto L_028D3DD8; else goto L_028D3CE8;
|
|
L_028D3DD8: ; // 0x28d3dd8
|
|
/* 028D3DD8 */ goto L_028D3DE8;
|
|
L_028D3DDC: ; // 0x28d3ddc
|
|
/* 028D3DDC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 028D3DE0 */ cpu->r[26] = 0x00000000u;
|
|
/* 028D3DE4 */ _t79 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3DE4 */ _t80 = _t79 & 0x00000001u;
|
|
/* 028D3DE4 */ if (_t80) goto L_028D3DE8; else goto L_028D3CE8;
|
|
L_028D3DE8: ; // 0x28d3de8
|
|
/* 028D3DE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028D3DEC */ _t81 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3DEC */ _t82 = _t81 & 0x00000001u;
|
|
/* 028D3DEC */ if (_t82) goto L_028D3E14; else goto L_028D3DF0;
|
|
L_028D3DF0: ; // 0x28d3df0
|
|
/* 028D3DF0 */ _t83 = cpu->r[28] + 0x00000000u;
|
|
/* 028D3DF0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t83);
|
|
/* 028D3DF4 */ _t84 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D3DF4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t84);
|
|
/* 028D3DF8 */ cpu->ctr = cpu->r[5];
|
|
/* 028D3DFC */ cpu->r[3] = cpu->r[28];
|
|
/* 028D3E00 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3E04 */ _t85 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3E04 */ cpu->r[6] = rbrew_read32(cpu->mem, _t85);
|
|
/* 028D3E08 */ _t86 = cpu->r[6] + 0x0000001Cu;
|
|
/* 028D3E08 */ cpu->r[7] = rbrew_read32(cpu->mem, _t86);
|
|
/* 028D3E0C */ cpu->ctr = cpu->r[7];
|
|
/* 028D3E10 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D3E14: ; // 0x28d3e14
|
|
/* 028D3E14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028D3E18 */ _t87 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3E18 */ _t88 = _t87 & 0x00000001u;
|
|
/* 028D3E18 */ if (_t88) goto L_028D3E40; else goto L_028D3E1C;
|
|
L_028D3E1C: ; // 0x28d3e1c
|
|
/* 028D3E1C */ _t89 = cpu->r[27] + 0x00000000u;
|
|
/* 028D3E1C */ cpu->r[8] = rbrew_read32(cpu->mem, _t89);
|
|
/* 028D3E20 */ _t90 = cpu->r[8] + 0x0000008Cu;
|
|
/* 028D3E20 */ cpu->r[9] = rbrew_read32(cpu->mem, _t90);
|
|
/* 028D3E24 */ cpu->ctr = cpu->r[9];
|
|
/* 028D3E28 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D3E2C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3E30 */ _t91 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3E30 */ cpu->r[10] = rbrew_read32(cpu->mem, _t91);
|
|
/* 028D3E34 */ _t92 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028D3E34 */ cpu->r[11] = rbrew_read32(cpu->mem, _t92);
|
|
/* 028D3E38 */ cpu->ctr = cpu->r[11];
|
|
/* 028D3E3C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D3E40: ; // 0x28d3e40
|
|
/* 028D3E40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], 0x00000000u);
|
|
/* 028D3E44 */ _t93 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3E44 */ _t94 = _t93 & 0x00000001u;
|
|
/* 028D3E44 */ if (_t94) goto L_028D3E6C; else goto L_028D3E48;
|
|
L_028D3E48: ; // 0x28d3e48
|
|
/* 028D3E48 */ _t95 = cpu->r[24] + 0x00000000u;
|
|
/* 028D3E48 */ cpu->r[12] = rbrew_read32(cpu->mem, _t95);
|
|
/* 028D3E4C */ _t96 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D3E4C */ cpu->r[0] = rbrew_read32(cpu->mem, _t96);
|
|
/* 028D3E50 */ cpu->ctr = cpu->r[0];
|
|
/* 028D3E54 */ cpu->r[3] = cpu->r[24];
|
|
/* 028D3E58 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3E5C */ _t97 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3E5C */ cpu->r[5] = rbrew_read32(cpu->mem, _t97);
|
|
/* 028D3E60 */ _t98 = cpu->r[5] + 0x0000001Cu;
|
|
/* 028D3E60 */ cpu->r[6] = rbrew_read32(cpu->mem, _t98);
|
|
/* 028D3E64 */ cpu->ctr = cpu->r[6];
|
|
/* 028D3E68 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D3E6C: ; // 0x28d3e6c
|
|
/* 028D3E6C */ _t99 = cpu->r[25] + 0x00000158u;
|
|
/* 028D3E6C */ cpu->r[12] = rbrew_read32(cpu->mem, _t99);
|
|
L_028D3E70: ; // 0x28d3e70
|
|
/* 028D3E70 */ cpu->r[3] = cpu->r[12];
|
|
/* 028D3E74 */ Gambit_fn_028CB144(cpu);
|
|
L_028D3E78: ; // 0x28d3e78
|
|
/* 028D3E78 */ /* nop */
|
|
/* 028D3E7C */ _t100 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D3E7C */ cpu->r[0] = rbrew_read32(cpu->mem, _t100);
|
|
/* 028D3E80 */ cpu->lr = cpu->r[0];
|
|
/* 028D3E84 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D3E88 */ return;
|
|
}
|
|
|
|
// fn_028D3E8C @ 0x28d3e8c
|
|
void Gambit_fn_028D3E8C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028D3E8C: ; // 0x28d3e8c
|
|
/* 028D3E8C */ cpu->r[0] = cpu->lr;
|
|
/* 028D3E90 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D3E90 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D3E90 */ cpu->r[1] = _t0;
|
|
/* 028D3E94 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3E94 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D3E98 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D3E9C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3E9C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D3EA0 */ _t3 = cpu->r[31] + 0x00000170u;
|
|
/* 028D3EA0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D3EA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3EA8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3EA8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D3EA8 */ if (_t5) goto L_028D3EC8; else goto L_028D3EAC;
|
|
L_028D3EAC: ; // 0x28d3eac
|
|
/* 028D3EAC */ Gambit_fn_028CA194(cpu);
|
|
/* 028D3EB0 */ _t6 = cpu->r[31] + 0x00000170u;
|
|
/* 028D3EB0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D3EB4 */ _t7 = cpu->r[31] + 0x000000F4u;
|
|
/* 028D3EB4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028D3EB8 */ _t8 = cpu->r[12] + 0x00000000u;
|
|
/* 028D3EB8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028D3EBC */ cpu->f[1] = cpu->f[0] * cpu->f[13];
|
|
/* 028D3EC0 */ cpu->r[3] = cpu->r[31] + 0x000000F4u;
|
|
/* 028D3EC4 */ Gambit_fn_028BD330(cpu);
|
|
L_028D3EC8: ; // 0x28d3ec8
|
|
/* 028D3EC8 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3EC8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D3ECC */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3ECC */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D3ED0 */ cpu->lr = cpu->r[0];
|
|
/* 028D3ED4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D3ED8 */ return;
|
|
}
|
|
|
|
// fn_028D3E90 @ 0x28d3e90
|
|
void Gambit_fn_028D3E90(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028D3E90: ; // 0x28d3e90
|
|
/* 028D3E90 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D3E90 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D3E90 */ cpu->r[1] = _t0;
|
|
/* 028D3E94 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3E94 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D3E98 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D3E9C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3E9C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D3EA0 */ _t3 = cpu->r[31] + 0x00000170u;
|
|
/* 028D3EA0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D3EA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3EA8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3EA8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D3EA8 */ if (_t5) goto L_028D3EC8; else goto L_028D3EAC;
|
|
L_028D3EAC: ; // 0x28d3eac
|
|
/* 028D3EAC */ Gambit_fn_028CA194(cpu);
|
|
/* 028D3EB0 */ _t6 = cpu->r[31] + 0x00000170u;
|
|
/* 028D3EB0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D3EB4 */ _t7 = cpu->r[31] + 0x000000F4u;
|
|
/* 028D3EB4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028D3EB8 */ _t8 = cpu->r[12] + 0x00000000u;
|
|
/* 028D3EB8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028D3EBC */ cpu->f[1] = cpu->f[0] * cpu->f[13];
|
|
/* 028D3EC0 */ cpu->r[3] = cpu->r[31] + 0x000000F4u;
|
|
/* 028D3EC4 */ Gambit_fn_028BD330(cpu);
|
|
L_028D3EC8: ; // 0x28d3ec8
|
|
/* 028D3EC8 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028D3EC8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D3ECC */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D3ECC */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D3ED0 */ cpu->lr = cpu->r[0];
|
|
/* 028D3ED4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D3ED8 */ return;
|
|
}
|
|
|
|
// fn_028D3EDC @ 0x28d3edc
|
|
void Gambit_fn_028D3EDC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75;
|
|
|
|
L_028D3EDC: ; // 0x28d3edc
|
|
/* 028D3EDC */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028D3EDC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D3EDC */ cpu->r[1] = _t0;
|
|
/* 028D3EE0 */ /* nop */
|
|
/* 028D3EE4 */ cpu->r[0] = cpu->lr;
|
|
/* 028D3EE8 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D3EE8 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D3EEC */ cpu->r[25] = cpu->r[3];
|
|
/* 028D3EF0 */ _t2 = cpu->r[25] + 0x00000158u;
|
|
/* 028D3EF0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028D3EF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028D3EF8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3EF8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D3EF8 */ if (_t4) goto L_028D4100; else goto L_028D3EFC;
|
|
L_028D3EFC: ; // 0x28d3efc
|
|
/* 028D3EFC */ _t5 = cpu->r[9] + 0x00000004u;
|
|
/* 028D3EFC */ cpu->r[30] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D3F00 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D3F04 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3F04 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D3F04 */ if (_t7) goto L_028D4100; else goto L_028D3F08;
|
|
L_028D3F08: ; // 0x28d3f08
|
|
/* 028D3F08 */ _t8 = cpu->r[25] + 0x00000160u;
|
|
/* 028D3F08 */ cpu->r[3] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D3F0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3F10 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3F10 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D3F10 */ if (_t10) goto L_028D3F54; else goto L_028D3F14;
|
|
L_028D3F14: ; // 0x28d3f14
|
|
/* 028D3F14 */ _t11 = cpu->r[3] + 0x00000020u;
|
|
/* 028D3F14 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D3F18 */ _t12 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028D3F18 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D3F1C */ cpu->ctr = cpu->r[11];
|
|
/* 028D3F20 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3F24 */ _t13 = cpu->r[25] + 0x00000160u;
|
|
/* 028D3F24 */ cpu->r[3] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D3F28 */ _t14 = cpu->r[3] + 0x00000020u;
|
|
/* 028D3F28 */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D3F2C */ _t15 = cpu->r[12] + 0x00000014u;
|
|
/* 028D3F2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D3F30 */ _t16 = cpu->r[25] + 0x0000015Cu;
|
|
/* 028D3F30 */ cpu->r[4] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D3F34 */ cpu->ctr = cpu->r[0];
|
|
/* 028D3F38 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D3F3C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3F40 */ /* nop */
|
|
/* 028D3F44 */ _t17 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D3F44 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D3F48 */ cpu->lr = cpu->r[0];
|
|
/* 028D3F4C */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D3F50 */ return;
|
|
L_028D3F54: ; // 0x28d3f54
|
|
/* 028D3F54 */ _t18 = cpu->r[25] + 0x0000015Cu;
|
|
/* 028D3F54 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D3F58 */ _t19 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3F58 */ cpu->r[6] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D3F5C */ _t20 = cpu->r[6] + 0x0000007Cu;
|
|
/* 028D3F5C */ cpu->r[7] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D3F60 */ cpu->ctr = cpu->r[7];
|
|
/* 028D3F64 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3F68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3F6C */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3F6C */ _t22 = _t21 & 0x00000001u;
|
|
/* 028D3F6C */ if (_t22) goto L_028D3F70; else goto L_028D4100;
|
|
L_028D3F70: ; // 0x28d3f70
|
|
/* 028D3F70 */ _t23 = cpu->r[25] + 0x0000015Cu;
|
|
/* 028D3F70 */ cpu->r[26] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D3F74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028D3F78 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3F78 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D3F78 */ if (_t25) goto L_028D3FA0; else goto L_028D3F7C;
|
|
L_028D3F7C: ; // 0x28d3f7c
|
|
/* 028D3F7C */ _t26 = cpu->r[26] + 0x00000000u;
|
|
/* 028D3F7C */ cpu->r[8] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D3F80 */ _t27 = cpu->r[8] + 0x0000008Cu;
|
|
/* 028D3F80 */ cpu->r[9] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D3F84 */ cpu->ctr = cpu->r[9];
|
|
/* 028D3F88 */ cpu->r[3] = cpu->r[26];
|
|
/* 028D3F8C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3F90 */ _t28 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3F90 */ cpu->r[10] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D3F94 */ _t29 = cpu->r[10] + 0x00000014u;
|
|
/* 028D3F94 */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028D3F98 */ cpu->ctr = cpu->r[0];
|
|
/* 028D3F9C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D3FA0: ; // 0x28d3fa0
|
|
/* 028D3FA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D3FA4 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3FA4 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028D3FA4 */ if (_t31) goto L_028D3FCC; else goto L_028D3FA8;
|
|
L_028D3FA8: ; // 0x28d3fa8
|
|
/* 028D3FA8 */ _t32 = cpu->r[30] + 0x00000000u;
|
|
/* 028D3FA8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028D3FAC */ _t33 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D3FAC */ cpu->r[5] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028D3FB0 */ cpu->ctr = cpu->r[5];
|
|
/* 028D3FB4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D3FB8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3FBC */ _t34 = cpu->r[3] + 0x00000000u;
|
|
/* 028D3FBC */ cpu->r[6] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028D3FC0 */ _t35 = cpu->r[6] + 0x00000014u;
|
|
/* 028D3FC0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028D3FC4 */ cpu->ctr = cpu->r[7];
|
|
/* 028D3FC8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D3FCC: ; // 0x28d3fcc
|
|
/* 028D3FCC */ _t36 = cpu->r[25] + 0x0000015Cu;
|
|
/* 028D3FCC */ cpu->r[27] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028D3FD0 */ _t37 = cpu->r[27] + 0x00000000u;
|
|
/* 028D3FD0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028D3FD4 */ _t38 = cpu->r[8] + 0x00000044u;
|
|
/* 028D3FD4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028D3FD8 */ cpu->ctr = cpu->r[9];
|
|
/* 028D3FDC */ cpu->r[3] = cpu->r[27];
|
|
/* 028D3FE0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D3FE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D3FE8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D3FEC */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D3FEC */ _t40 = _t39 & 0x00000001u;
|
|
/* 028D3FEC */ if (_t40) goto L_028D401C; else goto L_028D3FF0;
|
|
L_028D3FF0: ; // 0x28d3ff0
|
|
/* 028D3FF0 */ _t41 = cpu->r[27] + 0x00000000u;
|
|
/* 028D3FF0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028D3FF4 */ _t42 = cpu->r[10] + 0x0000005Cu;
|
|
/* 028D3FF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028D3FF8 */ cpu->ctr = cpu->r[0];
|
|
/* 028D3FFC */ cpu->r[4] = cpu->r[31];
|
|
/* 028D4000 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D4004 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4008 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000000u);
|
|
/* 028D400C */ cpu->r[29] = 0x00000000u;
|
|
/* 028D4010 */ cpu->r[28] = cpu->r[3];
|
|
/* 028D4014 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4014 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028D4014 */ if (_t44) goto L_028D40A8; else goto L_028D4018;
|
|
L_028D4018: ; // 0x28d4018
|
|
/* 028D4018 */ goto L_028D402C;
|
|
L_028D401C: ; // 0x28d401c
|
|
/* 028D401C */ cpu->r[28] = 0x00000000u;
|
|
/* 028D4020 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000000u);
|
|
/* 028D4024 */ cpu->r[29] = cpu->r[28];
|
|
/* 028D4028 */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4028 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028D4028 */ if (_t46) goto L_028D40A8; else goto L_028D402C;
|
|
L_028D402C: ; // 0x28d402c
|
|
/* 028D402C */ _t47 = cpu->r[31] + 0x00000004u;
|
|
/* 028D402C */ cpu->r[8] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028D4030 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000002u);
|
|
/* 028D4034 */ _t48 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D4034 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028D4034 */ if (_t49) goto L_028D4068; else goto L_028D4038;
|
|
L_028D4038: ; // 0x28d4038
|
|
/* 028D4038 */ _t50 = cpu->r[25] + 0x0000015Cu;
|
|
/* 028D4038 */ cpu->r[3] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028D403C */ _t51 = cpu->r[3] + 0x00000000u;
|
|
/* 028D403C */ cpu->r[12] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028D4040 */ _t52 = cpu->r[12] + 0x00000034u;
|
|
/* 028D4040 */ cpu->r[5] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028D4044 */ cpu->ctr = cpu->r[5];
|
|
/* 028D4048 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D404C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4050 */ _t53 = cpu->r[30] + 0x00000000u;
|
|
/* 028D4050 */ cpu->r[6] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028D4054 */ _t54 = cpu->r[6] + 0x00000014u;
|
|
/* 028D4054 */ cpu->r[7] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028D4058 */ cpu->ctr = cpu->r[7];
|
|
/* 028D405C */ cpu->r[3] = cpu->r[30];
|
|
/* 028D4060 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D4064 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D4068: ; // 0x28d4068
|
|
/* 028D4068 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028D406C */ cpu->r[31] = cpu->r[28];
|
|
/* 028D4070 */ _t55 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4070 */ _t56 = _t55 & 0x00000001u;
|
|
/* 028D4070 */ if (_t56) goto L_028D409C; else goto L_028D4074;
|
|
L_028D4074: ; // 0x28d4074
|
|
/* 028D4074 */ _t57 = cpu->r[27] + 0x00000000u;
|
|
/* 028D4074 */ cpu->r[8] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028D4078 */ _t58 = cpu->r[8] + 0x0000005Cu;
|
|
/* 028D4078 */ cpu->r[0] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028D407C */ cpu->ctr = cpu->r[0];
|
|
/* 028D4080 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D4084 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D4088 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D408C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 028D4090 */ cpu->r[28] = cpu->r[3];
|
|
/* 028D4094 */ _t59 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4094 */ _t60 = _t59 & 0x00000001u;
|
|
/* 028D4094 */ if (_t60) goto L_028D4098; else goto L_028D402C;
|
|
L_028D4098: ; // 0x28d4098
|
|
/* 028D4098 */ goto L_028D40A8;
|
|
L_028D409C: ; // 0x28d409c
|
|
/* 028D409C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 028D40A0 */ cpu->r[28] = 0x00000000u;
|
|
/* 028D40A4 */ _t61 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D40A4 */ _t62 = _t61 & 0x00000001u;
|
|
/* 028D40A4 */ if (_t62) goto L_028D40A8; else goto L_028D402C;
|
|
L_028D40A8: ; // 0x28d40a8
|
|
/* 028D40A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D40AC */ _t63 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D40AC */ _t64 = _t63 & 0x00000001u;
|
|
/* 028D40AC */ if (_t64) goto L_028D40D4; else goto L_028D40B0;
|
|
L_028D40B0: ; // 0x28d40b0
|
|
/* 028D40B0 */ _t65 = cpu->r[30] + 0x00000000u;
|
|
/* 028D40B0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028D40B4 */ _t66 = cpu->r[10] + 0x0000008Cu;
|
|
/* 028D40B4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028D40B8 */ cpu->ctr = cpu->r[11];
|
|
/* 028D40BC */ cpu->r[3] = cpu->r[30];
|
|
/* 028D40C0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D40C4 */ _t67 = cpu->r[3] + 0x00000000u;
|
|
/* 028D40C4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028D40C8 */ _t68 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028D40C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028D40CC */ cpu->ctr = cpu->r[0];
|
|
/* 028D40D0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D40D4: ; // 0x28d40d4
|
|
/* 028D40D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028D40D8 */ _t69 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D40D8 */ _t70 = _t69 & 0x00000001u;
|
|
/* 028D40D8 */ if (_t70) goto L_028D4100; else goto L_028D40DC;
|
|
L_028D40DC: ; // 0x28d40dc
|
|
/* 028D40DC */ _t71 = cpu->r[26] + 0x00000000u;
|
|
/* 028D40DC */ cpu->r[12] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028D40E0 */ _t72 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D40E0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028D40E4 */ cpu->ctr = cpu->r[5];
|
|
/* 028D40E8 */ cpu->r[3] = cpu->r[26];
|
|
/* 028D40EC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D40F0 */ _t73 = cpu->r[3] + 0x00000000u;
|
|
/* 028D40F0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028D40F4 */ _t74 = cpu->r[6] + 0x0000001Cu;
|
|
/* 028D40F4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t74);
|
|
/* 028D40F8 */ cpu->ctr = cpu->r[7];
|
|
/* 028D40FC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D4100: ; // 0x28d4100
|
|
/* 028D4100 */ /* nop */
|
|
/* 028D4104 */ _t75 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D4104 */ cpu->r[0] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028D4108 */ cpu->lr = cpu->r[0];
|
|
/* 028D410C */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D4110 */ return;
|
|
}
|
|
|
|
// fn_028D4114 @ 0x28d4114
|
|
void Gambit_fn_028D4114(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22;
|
|
|
|
L_028D4114: ; // 0x28d4114
|
|
/* 028D4114 */ cpu->r[0] = cpu->lr;
|
|
/* 028D4118 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D4118 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D4118 */ cpu->r[1] = _t0;
|
|
/* 028D411C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D411C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D4120 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D4124 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D4124 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D4128 */ _t3 = cpu->r[31] + 0x00000158u;
|
|
/* 028D4128 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D412C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D4130 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4130 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D4130 */ if (_t5) goto L_028D4174; else goto L_028D4134;
|
|
L_028D4134: ; // 0x28d4134
|
|
/* 028D4134 */ _t6 = cpu->r[31] + 0x00000164u;
|
|
/* 028D4134 */ cpu->r[10] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D4138 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028D413C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D413C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D413C */ if (_t8) goto L_028D4140; else goto L_028D415C;
|
|
L_028D4140: ; // 0x28d4140
|
|
/* 028D4140 */ cpu->r[3] = cpu->r[12];
|
|
/* 028D4144 */ Gambit_fn_028CBD24(cpu);
|
|
/* 028D4148 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028D4148 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D414C */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D414C */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D4150 */ cpu->lr = cpu->r[0];
|
|
/* 028D4154 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D4158 */ return;
|
|
L_028D415C: ; // 0x28d415c
|
|
/* 028D415C */ cpu->r[0] = 0x00000002u;
|
|
/* 028D4160 */ _t11 = cpu->r[10] + 0x00000004u;
|
|
/* 028D4160 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028D4164 */ _t12 = cpu->r[31] + 0x00000158u;
|
|
/* 028D4164 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D4168 */ _t13 = cpu->r[12] + 0x00000004u;
|
|
/* 028D4168 */ cpu->r[5] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D416C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028D4170 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4170 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028D4170 */ if (_t15) goto L_028D4174; else goto L_028D418C;
|
|
L_028D4174: ; // 0x28d4174
|
|
/* 028D4174 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028D4174 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D4178 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D4178 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D417C */ cpu->lr = cpu->r[0];
|
|
/* 028D4180 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D4184 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D4188 */ return;
|
|
L_028D418C: ; // 0x28d418c
|
|
/* 028D418C */ _t18 = cpu->r[12] + 0x00000008u;
|
|
/* 028D418C */ cpu->r[6] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D4190 */ _t19 = cpu->r[31] + 0x00000164u;
|
|
/* 028D4190 */ cpu->r[3] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D4194 */ Gambit_fn_028D4F24(cpu);
|
|
/* 028D4198 */ _t20 = cpu->r[31] + 0x00000158u;
|
|
/* 028D4198 */ cpu->r[3] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D419C */ Gambit_fn_028CBD24(cpu);
|
|
/* 028D41A0 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 028D41A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D41A4 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D41A4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D41A8 */ cpu->lr = cpu->r[0];
|
|
/* 028D41AC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D41B0 */ return;
|
|
}
|
|
|
|
// fn_028D4118 @ 0x28d4118
|
|
void Gambit_fn_028D4118(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22;
|
|
|
|
L_028D4118: ; // 0x28d4118
|
|
/* 028D4118 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D4118 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D4118 */ cpu->r[1] = _t0;
|
|
/* 028D411C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D411C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D4120 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D4124 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D4124 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D4128 */ _t3 = cpu->r[31] + 0x00000158u;
|
|
/* 028D4128 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D412C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D4130 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4130 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D4130 */ if (_t5) goto L_028D4174; else goto L_028D4134;
|
|
L_028D4134: ; // 0x28d4134
|
|
/* 028D4134 */ _t6 = cpu->r[31] + 0x00000164u;
|
|
/* 028D4134 */ cpu->r[10] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D4138 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028D413C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D413C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D413C */ if (_t8) goto L_028D4140; else goto L_028D415C;
|
|
L_028D4140: ; // 0x28d4140
|
|
/* 028D4140 */ cpu->r[3] = cpu->r[12];
|
|
/* 028D4144 */ Gambit_fn_028CBD24(cpu);
|
|
/* 028D4148 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028D4148 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D414C */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D414C */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D4150 */ cpu->lr = cpu->r[0];
|
|
/* 028D4154 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D4158 */ return;
|
|
L_028D415C: ; // 0x28d415c
|
|
/* 028D415C */ cpu->r[0] = 0x00000002u;
|
|
/* 028D4160 */ _t11 = cpu->r[10] + 0x00000004u;
|
|
/* 028D4160 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028D4164 */ _t12 = cpu->r[31] + 0x00000158u;
|
|
/* 028D4164 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D4168 */ _t13 = cpu->r[12] + 0x00000004u;
|
|
/* 028D4168 */ cpu->r[5] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D416C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028D4170 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4170 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028D4170 */ if (_t15) goto L_028D4174; else goto L_028D418C;
|
|
L_028D4174: ; // 0x28d4174
|
|
/* 028D4174 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028D4174 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D4178 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D4178 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D417C */ cpu->lr = cpu->r[0];
|
|
/* 028D4180 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D4184 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D4188 */ return;
|
|
L_028D418C: ; // 0x28d418c
|
|
/* 028D418C */ _t18 = cpu->r[12] + 0x00000008u;
|
|
/* 028D418C */ cpu->r[6] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D4190 */ _t19 = cpu->r[31] + 0x00000164u;
|
|
/* 028D4190 */ cpu->r[3] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D4194 */ Gambit_fn_028D4F24(cpu);
|
|
/* 028D4198 */ _t20 = cpu->r[31] + 0x00000158u;
|
|
/* 028D4198 */ cpu->r[3] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D419C */ Gambit_fn_028CBD24(cpu);
|
|
/* 028D41A0 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 028D41A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D41A4 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D41A4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D41A8 */ cpu->lr = cpu->r[0];
|
|
/* 028D41AC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D41B0 */ return;
|
|
}
|
|
|
|
// fn_028D41B4 @ 0x28d41b4
|
|
void Gambit_fn_028D41B4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028D41B4: ; // 0x28d41b4
|
|
/* 028D41B4 */ cpu->r[0] = cpu->lr;
|
|
/* 028D41B8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D41B8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D41B8 */ cpu->r[1] = _t0;
|
|
/* 028D41BC */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D41BC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D41C0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D41C0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D41C4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D41C8 */ cpu->r[30] = cpu->r[4];
|
|
/* 028D41CC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D41CC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D41D0 */ Gambit_fn_028D3EDC(cpu);
|
|
/* 028D41D4 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D41D8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D41DC */ Gambit_fn_028D4114(cpu);
|
|
/* 028D41E0 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028D41E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D41E4 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D41E4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D41E8 */ cpu->lr = cpu->r[0];
|
|
/* 028D41EC */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 028D41EC */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D41F0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D41F4 */ return;
|
|
}
|
|
|
|
// fn_028D41B8 @ 0x28d41b8
|
|
void Gambit_fn_028D41B8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028D41B8: ; // 0x28d41b8
|
|
/* 028D41B8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D41B8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D41B8 */ cpu->r[1] = _t0;
|
|
/* 028D41BC */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D41BC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D41C0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D41C0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D41C4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D41C8 */ cpu->r[30] = cpu->r[4];
|
|
/* 028D41CC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D41CC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D41D0 */ Gambit_fn_028D3EDC(cpu);
|
|
/* 028D41D4 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D41D8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D41DC */ Gambit_fn_028D4114(cpu);
|
|
/* 028D41E0 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028D41E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D41E4 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D41E4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D41E8 */ cpu->lr = cpu->r[0];
|
|
/* 028D41EC */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 028D41EC */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D41F0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D41F4 */ return;
|
|
}
|
|
|
|
// fn_028D41F8 @ 0x28d41f8
|
|
void Gambit_fn_028D41F8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D41F8: ; // 0x28d41f8
|
|
/* 028D41F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D41FC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D41FC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D41FC */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D41FC */ goto L_028D4200;
|
|
L_028D4200: ; // 0x28d4200
|
|
/* 028D4200 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D4200 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D4204 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4204 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D4204 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D4204 */ goto L_028D4208;
|
|
L_028D4208: ; // 0x28d4208
|
|
/* 028D4208 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D420C @ 0x28d420c
|
|
void Gambit_fn_028D420C(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028D420C: ; // 0x28d420c
|
|
/* 028D420C */ _t0 = cpu->r[3] + 0x00000148u;
|
|
/* 028D420C */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028D4210 */ cpu->r[0] = (uint32_t)(-(int32_t)cpu->r[12]);
|
|
/* 028D4214 */ _t1 = ~cpu->r[12];
|
|
/* 028D4214 */ cpu->r[0] = cpu->r[0] & _t1;
|
|
/* 028D4218 */ cpu->r[3] = rbrew_rlwinm(cpu->r[0], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D421C */ return;
|
|
}
|
|
|
|
// fn_028D4220 @ 0x28d4220
|
|
void Gambit_fn_028D4220(CPUState* cpu) {
|
|
L_028D4220: ; // 0x28d4220
|
|
/* 028D4220 */ return;
|
|
}
|
|
|
|
// fn_028D4224 @ 0x28d4224
|
|
void Gambit_fn_028D4224(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24;
|
|
|
|
L_028D4224: ; // 0x28d4224
|
|
/* 028D4224 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028D4224 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D4224 */ cpu->r[1] = _t0;
|
|
/* 028D4228 */ /* nop */
|
|
/* 028D422C */ cpu->r[0] = cpu->lr;
|
|
/* 028D4230 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028D4230 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D4234 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D4238 */ _t2 = cpu->r[29] + 0x00000004u;
|
|
/* 028D4238 */ cpu->r[8] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028D423C */ _t3 = cpu->r[8] + 0x00000014u;
|
|
/* 028D423C */ cpu->r[9] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D4240 */ cpu->r[28] = cpu->r[3];
|
|
/* 028D4244 */ cpu->ctr = cpu->r[9];
|
|
/* 028D4248 */ _t4 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D4248 */ cpu->r[27] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D424C */ cpu->r[3] = cpu->r[29];
|
|
/* 028D4250 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4254 */ cpu->r[31] = 0x10110000u;
|
|
/* 028D4258 */ _t5 = cpu->r[29] + 0x00000000u;
|
|
/* 028D4258 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D425C */ _t6 = cpu->r[31] + 0x00007399u;
|
|
/* 028D425C */ cpu->r[31] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028D4260 */ _t7 = cpu->r[11] + 0x00000000u;
|
|
/* 028D4260 */ cpu->r[10] = rbrew_read8(cpu->mem, _t7);
|
|
/* 028D4264 */ cpu->r[30] = 0x00000000u;
|
|
/* 028D4268 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[31]);
|
|
/* 028D426C */ cpu->r[12] = 0x00080000u;
|
|
/* 028D4270 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4270 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D4270 */ if (_t9) goto L_028D4298; else goto L_028D4274;
|
|
L_028D4274: ; // 0x28d4274
|
|
/* 028D4274 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028D4278 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[12]);
|
|
/* 028D427C */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 028D4280 */ _t10 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D4280 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D4280 */ if (_t11) goto L_028D4294; else goto L_028D4284;
|
|
L_028D4284: ; // 0x28d4284
|
|
/* 028D4284 */ _t12 = cpu->r[11] + 0x00000000u;
|
|
/* 028D4284 */ cpu->r[0] = rbrew_read8(cpu->mem, _t12);
|
|
/* 028D4288 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[31]);
|
|
/* 028D428C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D428C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D428C */ if (_t14) goto L_028D4290; else goto L_028D4274;
|
|
L_028D4290: ; // 0x28d4290
|
|
/* 028D4290 */ goto L_028D4298;
|
|
L_028D4294: ; // 0x28d4294
|
|
/* 028D4294 */ cpu->r[30] = 0x00000000u;
|
|
L_028D4298: ; // 0x28d4298
|
|
/* 028D4298 */ _t15 = cpu->r[28] + 0x00000014u;
|
|
/* 028D4298 */ cpu->r[7] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D429C */ _t16 = cpu->r[29] + 0x00000004u;
|
|
/* 028D429C */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D42A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[7]);
|
|
/* 028D42A4 */ _t17 = cpu->r[12] + 0x00000014u;
|
|
/* 028D42A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D42A8 */ _t18 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D42A8 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D42A8 */ if (_t19) goto L_028D42B0; else goto L_028D42AC;
|
|
L_028D42AC: ; // 0x28d42ac
|
|
/* 028D42AC */ cpu->r[30] = cpu->r[7] + 0xFFFFFFFFu;
|
|
L_028D42B0: ; // 0x28d42b0
|
|
/* 028D42B0 */ cpu->ctr = cpu->r[0];
|
|
/* 028D42B4 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D42B8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D42BC */ _t20 = cpu->r[29] + 0x00000000u;
|
|
/* 028D42BC */ cpu->r[4] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D42C0 */ cpu->r[6] = 0x00000000u;
|
|
/* 028D42C4 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D42C8 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D42CC */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028D42D0 */ _t21 = cpu->r[27] + cpu->r[30];
|
|
/* 028D42D0 */ rbrew_write8(cpu->mem, _t21, (uint8_t)cpu->r[31]);
|
|
/* 028D42D4 */ _t22 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D42D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D42D8 */ _t23 = cpu->r[28] + 0x00000000u;
|
|
/* 028D42D8 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 028D42DC */ /* nop */
|
|
/* 028D42E0 */ _t24 = cpu->r[1] + 0x00000024u;
|
|
/* 028D42E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D42E4 */ cpu->lr = cpu->r[0];
|
|
/* 028D42E8 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028D42EC */ return;
|
|
}
|
|
|
|
// fn_028D42F0 @ 0x28d42f0
|
|
void Gambit_fn_028D42F0(CPUState* cpu) {
|
|
L_028D42F0: ; // 0x28d42f0
|
|
/* 028D42F0 */ return;
|
|
}
|
|
|
|
// fn_028D42F4 @ 0x28d42f4
|
|
void Gambit_fn_028D42F4(CPUState* cpu) {
|
|
L_028D42F4: ; // 0x28d42f4
|
|
/* 028D42F4 */ return;
|
|
}
|
|
|
|
// fn_028D42F8 @ 0x28d42f8
|
|
void Gambit_fn_028D42F8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028D42F8: ; // 0x28d42f8
|
|
/* 028D42F8 */ cpu->r[9] = 0x101D0000u;
|
|
/* 028D42FC */ _t0 = cpu->r[9] + 0x00001940u;
|
|
/* 028D42FC */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028D42FC */ cpu->r[9] = _t0;
|
|
/* 028D4300 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028D4304 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028D4308 */ cpu->r[12] = cpu->r[12] + 0x00001A00u;
|
|
/* 028D430C */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D430C */ _t2 = _t1 & 0x00000001u;
|
|
/* 028D430C */ if (_t2) goto L_028D4310; else goto L_028D4324;
|
|
L_028D4310: ; // 0x28d4310
|
|
/* 028D4310 */ cpu->r[7] = 0x10140000u;
|
|
/* 028D4314 */ cpu->r[0] = 0x00000001u;
|
|
/* 028D4318 */ cpu->r[7] = cpu->r[7] + 0xFFFFA768u;
|
|
/* 028D431C */ _t3 = cpu->r[9] + 0x00000000u;
|
|
/* 028D431C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D4320 */ _t4 = cpu->r[12] + 0x00000000u;
|
|
/* 028D4320 */ rbrew_write32(cpu->mem, _t4, cpu->r[7]);
|
|
L_028D4324: ; // 0x28d4324
|
|
/* 028D4324 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[12]);
|
|
/* 028D4328 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4328 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D4328 */ if (_t6) goto L_028D432C; else goto L_028D4334;
|
|
L_028D432C: ; // 0x28d432c
|
|
/* 028D432C */ cpu->r[3] = 0x00000001u;
|
|
/* 028D4330 */ return;
|
|
L_028D4334: ; // 0x28d4334
|
|
/* 028D4334 */ cpu->r[7] = 0x101D0000u;
|
|
/* 028D4338 */ _t7 = cpu->r[7] + 0xFFFFEFC4u;
|
|
/* 028D4338 */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D4338 */ cpu->r[7] = _t7;
|
|
/* 028D433C */ cpu->r[11] = 0x101D0000u;
|
|
/* 028D4340 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028D4344 */ cpu->r[11] = cpu->r[11] + 0x000019C8u;
|
|
/* 028D4348 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4348 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D4348 */ if (_t9) goto L_028D434C; else goto L_028D4360;
|
|
L_028D434C: ; // 0x28d434c
|
|
/* 028D434C */ cpu->r[0] = 0x10140000u;
|
|
/* 028D4350 */ cpu->r[9] = 0x00000001u;
|
|
/* 028D4354 */ cpu->r[0] = cpu->r[0] + 0xFFFFA758u;
|
|
/* 028D4358 */ _t10 = cpu->r[7] + 0x00000000u;
|
|
/* 028D4358 */ rbrew_write32(cpu->mem, _t10, cpu->r[9]);
|
|
/* 028D435C */ _t11 = cpu->r[11] + 0x00000000u;
|
|
/* 028D435C */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_028D4360: ; // 0x28d4360
|
|
/* 028D4360 */ cpu->r[0] = cpu->r[4] ^ cpu->r[11];
|
|
/* 028D4364 */ cpu->r[8] = rbrew_clz32(cpu->r[0]);
|
|
/* 028D4368 */ cpu->r[3] = rbrew_rlwinm(cpu->r[8], 0x0000001Bu, 0x00000018u, 0x0000001Fu);
|
|
/* 028D436C */ return;
|
|
}
|
|
|
|
// fn_028D4370 @ 0x28d4370
|
|
void Gambit_fn_028D4370(CPUState* cpu) {
|
|
L_028D4370: ; // 0x28d4370
|
|
/* 028D4370 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D4374 */ return;
|
|
}
|
|
|
|
// fn_028D4378 @ 0x28d4378
|
|
void Gambit_fn_028D4378(CPUState* cpu) {
|
|
L_02836FFC: ; // 0x2836ffc
|
|
/* 02836FFC */ cpu->r[3] = cpu->r[3] + 0x00000010u;
|
|
/* 02837000 */ rbrew_dispatch(cpu, 0x02d0a948u); return;
|
|
L_028D4378: ; // 0x28d4378
|
|
/* 028D4378 */ cpu->r[3] = cpu->r[3] + 0x00000004u;
|
|
/* 028D437C */ goto L_02836FFC;
|
|
}
|
|
|
|
// fn_028D4380 @ 0x28d4380
|
|
void Gambit_fn_028D4380(CPUState* cpu) {
|
|
L_02837030: ; // 0x2837030
|
|
/* 02837030 */ cpu->r[3] = cpu->r[3] + 0x00000010u;
|
|
/* 02837034 */ rbrew_dispatch(cpu, 0x02d0a958u); return;
|
|
L_028D4380: ; // 0x28d4380
|
|
/* 028D4380 */ cpu->r[3] = cpu->r[3] + 0x00000004u;
|
|
/* 028D4384 */ goto L_02837030;
|
|
}
|
|
|
|
// fn_028D4394 @ 0x28d4394
|
|
void Gambit_fn_028D4394(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028D4394: ; // 0x28d4394
|
|
/* 028D4394 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028D4394 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D4394 */ cpu->r[1] = _t0;
|
|
/* 028D4398 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4398 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028D4398 */ if (_t2) goto L_028D439C; else goto L_028D43AC;
|
|
L_028D439C: ; // 0x28d439c
|
|
/* 028D439C */ cpu->r[3] = 0x00000014u;
|
|
/* 028D43A0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D43A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D43A8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D43A8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D43A8 */ if (_t4) goto L_028D43CC; else goto L_028D43AC;
|
|
L_028D43AC: ; // 0x28d43ac
|
|
/* 028D43AC */ cpu->r[0] = 0x10140000u;
|
|
/* 028D43B0 */ cpu->r[12] = 0x00000000u;
|
|
/* 028D43B4 */ cpu->r[0] = cpu->r[0] + 0xFFFFA8C0u;
|
|
/* 028D43B8 */ _t5 = cpu->r[3] + 0x00000000u;
|
|
/* 028D43B8 */ rbrew_write32(cpu->mem, _t5, cpu->r[12]);
|
|
/* 028D43BC */ _t6 = cpu->r[3] + 0x00000010u;
|
|
/* 028D43BC */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028D43C0 */ _t7 = cpu->r[3] + 0x00000008u;
|
|
/* 028D43C0 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 028D43C4 */ _t8 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028D43C4 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 028D43C8 */ _t9 = cpu->r[3] + 0x00000004u;
|
|
/* 028D43C8 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
L_028D43CC: ; // 0x28d43cc
|
|
/* 028D43CC */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D43CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D43D0 */ cpu->lr = cpu->r[0];
|
|
/* 028D43D4 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D43D8 */ return;
|
|
}
|
|
|
|
// fn_028D43DC @ 0x28d43dc
|
|
void Gambit_fn_028D43DC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29;
|
|
|
|
L_028D43DC: ; // 0x28d43dc
|
|
/* 028D43DC */ cpu->r[0] = cpu->lr;
|
|
/* 028D43E0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D43E0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D43E0 */ cpu->r[1] = _t0;
|
|
/* 028D43E4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D43E4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D43E8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D43E8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D43EC */ cpu->r[31] = cpu->r[3];
|
|
/* 028D43F0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D43F0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D43F4 */ _t4 = cpu->r[31] + 0x00000000u;
|
|
/* 028D43F4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D43F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D43FC */ cpu->r[30] = 0x00000000u;
|
|
/* 028D4400 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4400 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D4400 */ if (_t6) goto L_028D442C; else goto L_028D4404;
|
|
L_028D4404: ; // 0x28d4404
|
|
/* 028D4404 */ Gambit_fn_028CA2F4(cpu);
|
|
/* 028D4408 */ _t7 = cpu->r[31] + 0x00000000u;
|
|
/* 028D4408 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D440C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4410 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4410 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D4410 */ if (_t9) goto L_028D4428; else goto L_028D4414;
|
|
L_028D4414: ; // 0x28d4414
|
|
/* 028D4414 */ _t10 = cpu->r[3] + 0x00000000u;
|
|
/* 028D4414 */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D4418 */ _t11 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028D4418 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D441C */ cpu->ctr = cpu->r[11];
|
|
/* 028D4420 */ cpu->r[4] = 0x00000003u;
|
|
/* 028D4424 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D4428: ; // 0x28d4428
|
|
/* 028D4428 */ _t12 = cpu->r[31] + 0x00000000u;
|
|
/* 028D4428 */ rbrew_write32(cpu->mem, _t12, cpu->r[30]);
|
|
L_028D442C: ; // 0x28d442c
|
|
/* 028D442C */ _t13 = cpu->r[31] + 0x00000004u;
|
|
/* 028D442C */ cpu->r[3] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D4430 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4434 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4434 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028D4434 */ if (_t15) goto L_028D4460; else goto L_028D4438;
|
|
L_028D4438: ; // 0x28d4438
|
|
/* 028D4438 */ Gambit_fn_028CA2F4(cpu);
|
|
/* 028D443C */ _t16 = cpu->r[31] + 0x00000004u;
|
|
/* 028D443C */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D4440 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4444 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4444 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D4444 */ if (_t18) goto L_028D445C; else goto L_028D4448;
|
|
L_028D4448: ; // 0x28d4448
|
|
/* 028D4448 */ _t19 = cpu->r[3] + 0x00000000u;
|
|
/* 028D4448 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D444C */ _t20 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028D444C */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D4450 */ cpu->ctr = cpu->r[0];
|
|
/* 028D4454 */ cpu->r[4] = 0x00000003u;
|
|
/* 028D4458 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D445C: ; // 0x28d445c
|
|
/* 028D445C */ _t21 = cpu->r[31] + 0x00000004u;
|
|
/* 028D445C */ rbrew_write32(cpu->mem, _t21, cpu->r[30]);
|
|
L_028D4460: ; // 0x28d4460
|
|
/* 028D4460 */ _t22 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D4460 */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D4464 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4468 */ _t23 = cpu->r[31] + 0x00000008u;
|
|
/* 028D4468 */ rbrew_write32(cpu->mem, _t23, cpu->r[30]);
|
|
/* 028D446C */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D446C */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D446C */ if (_t25) goto L_028D4478; else goto L_028D4470;
|
|
L_028D4470: ; // 0x28d4470
|
|
/* 028D4470 */ Gambit_fn_02801BB4(cpu);
|
|
/* 028D4474 */ _t26 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D4474 */ rbrew_write32(cpu->mem, _t26, cpu->r[30]);
|
|
L_028D4478: ; // 0x28d4478
|
|
/* 028D4478 */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 028D4478 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D447C */ _t28 = cpu->r[1] + 0x00000008u;
|
|
/* 028D447C */ cpu->r[30] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D4480 */ cpu->lr = cpu->r[0];
|
|
/* 028D4484 */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D4484 */ cpu->r[31] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028D4488 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D448C */ return;
|
|
}
|
|
|
|
// fn_028D43E0 @ 0x28d43e0
|
|
void Gambit_fn_028D43E0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29;
|
|
|
|
L_028D43E0: ; // 0x28d43e0
|
|
/* 028D43E0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D43E0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D43E0 */ cpu->r[1] = _t0;
|
|
/* 028D43E4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D43E4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D43E8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D43E8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D43EC */ cpu->r[31] = cpu->r[3];
|
|
/* 028D43F0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D43F0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D43F4 */ _t4 = cpu->r[31] + 0x00000000u;
|
|
/* 028D43F4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D43F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D43FC */ cpu->r[30] = 0x00000000u;
|
|
/* 028D4400 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4400 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D4400 */ if (_t6) goto L_028D442C; else goto L_028D4404;
|
|
L_028D4404: ; // 0x28d4404
|
|
/* 028D4404 */ Gambit_fn_028CA2F4(cpu);
|
|
/* 028D4408 */ _t7 = cpu->r[31] + 0x00000000u;
|
|
/* 028D4408 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D440C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4410 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4410 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D4410 */ if (_t9) goto L_028D4428; else goto L_028D4414;
|
|
L_028D4414: ; // 0x28d4414
|
|
/* 028D4414 */ _t10 = cpu->r[3] + 0x00000000u;
|
|
/* 028D4414 */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D4418 */ _t11 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028D4418 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D441C */ cpu->ctr = cpu->r[11];
|
|
/* 028D4420 */ cpu->r[4] = 0x00000003u;
|
|
/* 028D4424 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D4428: ; // 0x28d4428
|
|
/* 028D4428 */ _t12 = cpu->r[31] + 0x00000000u;
|
|
/* 028D4428 */ rbrew_write32(cpu->mem, _t12, cpu->r[30]);
|
|
L_028D442C: ; // 0x28d442c
|
|
/* 028D442C */ _t13 = cpu->r[31] + 0x00000004u;
|
|
/* 028D442C */ cpu->r[3] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D4430 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4434 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4434 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028D4434 */ if (_t15) goto L_028D4460; else goto L_028D4438;
|
|
L_028D4438: ; // 0x28d4438
|
|
/* 028D4438 */ Gambit_fn_028CA2F4(cpu);
|
|
/* 028D443C */ _t16 = cpu->r[31] + 0x00000004u;
|
|
/* 028D443C */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D4440 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4444 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4444 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D4444 */ if (_t18) goto L_028D445C; else goto L_028D4448;
|
|
L_028D4448: ; // 0x28d4448
|
|
/* 028D4448 */ _t19 = cpu->r[3] + 0x00000000u;
|
|
/* 028D4448 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D444C */ _t20 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028D444C */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D4450 */ cpu->ctr = cpu->r[0];
|
|
/* 028D4454 */ cpu->r[4] = 0x00000003u;
|
|
/* 028D4458 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D445C: ; // 0x28d445c
|
|
/* 028D445C */ _t21 = cpu->r[31] + 0x00000004u;
|
|
/* 028D445C */ rbrew_write32(cpu->mem, _t21, cpu->r[30]);
|
|
L_028D4460: ; // 0x28d4460
|
|
/* 028D4460 */ _t22 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D4460 */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D4464 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4468 */ _t23 = cpu->r[31] + 0x00000008u;
|
|
/* 028D4468 */ rbrew_write32(cpu->mem, _t23, cpu->r[30]);
|
|
/* 028D446C */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D446C */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D446C */ if (_t25) goto L_028D4478; else goto L_028D4470;
|
|
L_028D4470: ; // 0x28d4470
|
|
/* 028D4470 */ Gambit_fn_02801BB4(cpu);
|
|
/* 028D4474 */ _t26 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D4474 */ rbrew_write32(cpu->mem, _t26, cpu->r[30]);
|
|
L_028D4478: ; // 0x28d4478
|
|
/* 028D4478 */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 028D4478 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D447C */ _t28 = cpu->r[1] + 0x00000008u;
|
|
/* 028D447C */ cpu->r[30] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D4480 */ cpu->lr = cpu->r[0];
|
|
/* 028D4484 */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D4484 */ cpu->r[31] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028D4488 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D448C */ return;
|
|
}
|
|
|
|
// fn_028D4490 @ 0x28d4490
|
|
void Gambit_fn_028D4490(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028D4490: ; // 0x28d4490
|
|
/* 028D4490 */ cpu->r[0] = cpu->lr;
|
|
/* 028D4494 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D4494 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D4494 */ cpu->r[1] = _t0;
|
|
/* 028D4498 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D4498 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D449C */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D449C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D44A0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D44A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D44A4 */ cpu->r[30] = cpu->r[4];
|
|
/* 028D44A8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D44A8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D44AC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D44AC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D44AC */ if (_t5) goto L_028D44D4; else goto L_028D44B0;
|
|
L_028D44B0: ; // 0x28d44b0
|
|
/* 028D44B0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D44B4 */ cpu->r[0] = cpu->r[0] + 0xFFFFA8C0u;
|
|
/* 028D44B8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D44BC */ _t6 = cpu->r[31] + 0x00000010u;
|
|
/* 028D44BC */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028D44C0 */ Gambit_fn_028D43DC(cpu);
|
|
/* 028D44C4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D44C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D44C8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D44C8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D44C8 */ if (_t8) goto L_028D44D4; else goto L_028D44CC;
|
|
L_028D44CC: ; // 0x28d44cc
|
|
/* 028D44CC */ cpu->r[3] = cpu->r[31];
|
|
/* 028D44D0 */ Gambit_fn_02801BB0(cpu);
|
|
L_028D44D4: ; // 0x28d44d4
|
|
/* 028D44D4 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028D44D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D44D8 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028D44D8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D44DC */ cpu->lr = cpu->r[0];
|
|
/* 028D44E0 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D44E0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D44E4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D44E8 */ return;
|
|
}
|
|
|
|
// fn_028D4494 @ 0x28d4494
|
|
void Gambit_fn_028D4494(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028D4494: ; // 0x28d4494
|
|
/* 028D4494 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D4494 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D4494 */ cpu->r[1] = _t0;
|
|
/* 028D4498 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D4498 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D449C */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D449C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D44A0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D44A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D44A4 */ cpu->r[30] = cpu->r[4];
|
|
/* 028D44A8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D44A8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D44AC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D44AC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D44AC */ if (_t5) goto L_028D44D4; else goto L_028D44B0;
|
|
L_028D44B0: ; // 0x28d44b0
|
|
/* 028D44B0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D44B4 */ cpu->r[0] = cpu->r[0] + 0xFFFFA8C0u;
|
|
/* 028D44B8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D44BC */ _t6 = cpu->r[31] + 0x00000010u;
|
|
/* 028D44BC */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028D44C0 */ Gambit_fn_028D43DC(cpu);
|
|
/* 028D44C4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D44C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D44C8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D44C8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D44C8 */ if (_t8) goto L_028D44D4; else goto L_028D44CC;
|
|
L_028D44CC: ; // 0x28d44cc
|
|
/* 028D44CC */ cpu->r[3] = cpu->r[31];
|
|
/* 028D44D0 */ Gambit_fn_02801BB0(cpu);
|
|
L_028D44D4: ; // 0x28d44d4
|
|
/* 028D44D4 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028D44D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D44D8 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028D44D8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D44DC */ cpu->lr = cpu->r[0];
|
|
/* 028D44E0 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D44E0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D44E4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D44E8 */ return;
|
|
}
|
|
|
|
// fn_028D44EC @ 0x28d44ec
|
|
void Gambit_fn_028D44EC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028D44EC: ; // 0x28d44ec
|
|
/* 028D44EC */ cpu->r[0] = cpu->lr;
|
|
/* 028D44F0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D44F0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D44F0 */ cpu->r[1] = _t0;
|
|
/* 028D44F4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D44F4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D44F8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D44FC */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D44FC */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D4500 */ _t3 = cpu->r[31] + 0x00000000u;
|
|
/* 028D4500 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D4504 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4508 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4508 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D4508 */ if (_t5) goto L_028D451C; else goto L_028D450C;
|
|
L_028D450C: ; // 0x28d450c
|
|
/* 028D450C */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 028D450C */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D4510 */ _t7 = cpu->r[12] + 0x0000003Cu;
|
|
/* 028D4510 */ cpu->r[11] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D4514 */ cpu->ctr = cpu->r[11];
|
|
/* 028D4518 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D451C: ; // 0x28d451c
|
|
/* 028D451C */ _t8 = cpu->r[31] + 0x00000004u;
|
|
/* 028D451C */ cpu->r[3] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D4520 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4524 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4524 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D4524 */ if (_t10) goto L_028D4538; else goto L_028D4528;
|
|
L_028D4528: ; // 0x28d4528
|
|
/* 028D4528 */ _t11 = cpu->r[3] + 0x00000000u;
|
|
/* 028D4528 */ cpu->r[12] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D452C */ _t12 = cpu->r[12] + 0x0000003Cu;
|
|
/* 028D452C */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D4530 */ cpu->ctr = cpu->r[0];
|
|
/* 028D4534 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D4538: ; // 0x28d4538
|
|
/* 028D4538 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028D4538 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D453C */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D453C */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D4540 */ cpu->lr = cpu->r[0];
|
|
/* 028D4544 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D4548 */ return;
|
|
}
|
|
|
|
// fn_028D44F0 @ 0x28d44f0
|
|
void Gambit_fn_028D44F0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028D44F0: ; // 0x28d44f0
|
|
/* 028D44F0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D44F0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D44F0 */ cpu->r[1] = _t0;
|
|
/* 028D44F4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D44F4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D44F8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D44FC */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D44FC */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D4500 */ _t3 = cpu->r[31] + 0x00000000u;
|
|
/* 028D4500 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D4504 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4508 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4508 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D4508 */ if (_t5) goto L_028D451C; else goto L_028D450C;
|
|
L_028D450C: ; // 0x28d450c
|
|
/* 028D450C */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 028D450C */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D4510 */ _t7 = cpu->r[12] + 0x0000003Cu;
|
|
/* 028D4510 */ cpu->r[11] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D4514 */ cpu->ctr = cpu->r[11];
|
|
/* 028D4518 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D451C: ; // 0x28d451c
|
|
/* 028D451C */ _t8 = cpu->r[31] + 0x00000004u;
|
|
/* 028D451C */ cpu->r[3] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D4520 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4524 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4524 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D4524 */ if (_t10) goto L_028D4538; else goto L_028D4528;
|
|
L_028D4528: ; // 0x28d4528
|
|
/* 028D4528 */ _t11 = cpu->r[3] + 0x00000000u;
|
|
/* 028D4528 */ cpu->r[12] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D452C */ _t12 = cpu->r[12] + 0x0000003Cu;
|
|
/* 028D452C */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D4530 */ cpu->ctr = cpu->r[0];
|
|
/* 028D4534 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D4538: ; // 0x28d4538
|
|
/* 028D4538 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028D4538 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D453C */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D453C */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D4540 */ cpu->lr = cpu->r[0];
|
|
/* 028D4544 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D4548 */ return;
|
|
}
|
|
|
|
// fn_028D454C @ 0x28d454c
|
|
void Gambit_fn_028D454C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27;
|
|
|
|
L_028D454C: ; // 0x28d454c
|
|
/* 028D454C */ cpu->r[0] = cpu->lr;
|
|
/* 028D4550 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028D4550 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D4550 */ cpu->r[1] = _t0;
|
|
/* 028D4554 */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028D4554 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D4558 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D4558 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028D455C */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D455C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D4560 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 028D4560 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D4564 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D4568 */ cpu->r[30] = cpu->r[4];
|
|
/* 028D456C */ _t5 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028D456C */ cpu->r[4] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D4570 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028D4574 */ cpu->r[31] = cpu->r[5];
|
|
/* 028D4578 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4578 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D4578 */ if (_t7) goto L_028D45E0; else goto L_028D457C;
|
|
L_028D457C: ; // 0x28d457c
|
|
/* 028D457C */ _t8 = cpu->r[29] + 0x00000008u;
|
|
/* 028D457C */ cpu->r[3] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D4580 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4584 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4584 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D4584 */ if (_t10) goto L_028D45A8; else goto L_028D4588;
|
|
L_028D4588: ; // 0x28d4588
|
|
/* 028D4588 */ _t11 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028D4588 */ cpu->r[9] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D458C */ _t12 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028D458C */ cpu->r[10] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D4590 */ cpu->ctr = cpu->r[10];
|
|
/* 028D4594 */ cpu->r[4] = 0x00000002u;
|
|
/* 028D4598 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D459C */ _t13 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028D459C */ cpu->r[4] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D45A0 */ cpu->r[0] = 0x00000000u;
|
|
/* 028D45A4 */ _t14 = cpu->r[29] + 0x00000008u;
|
|
/* 028D45A4 */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
L_028D45A8: ; // 0x28d45a8
|
|
/* 028D45A8 */ _t15 = cpu->r[29] + 0x00000004u;
|
|
/* 028D45A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D45AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D45B0 */ _t16 = cpu->r[30] + 0x00000000u;
|
|
/* 028D45B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D45B4 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D45B4 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D45B4 */ if (_t18) goto L_028D45B8; else goto L_028D45BC;
|
|
L_028D45B8: ; // 0x28d45b8
|
|
/* 028D45B8 */ cpu->r[31] = 0x00000001u;
|
|
L_028D45BC: ; // 0x28d45bc
|
|
/* 028D45BC */ cpu->r[3] = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D45C0 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D45C0 */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 028D45C4 */ Gambit_fn_028D525C(cpu);
|
|
/* 028D45C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D45CC */ _t20 = cpu->r[29] + 0x00000008u;
|
|
/* 028D45CC */ rbrew_write32(cpu->mem, _t20, cpu->r[3]);
|
|
/* 028D45D0 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D45D0 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028D45D0 */ if (_t22) goto L_028D45E0; else goto L_028D45D4;
|
|
L_028D45D4: ; // 0x28d45d4
|
|
/* 028D45D4 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D45D8 */ _t23 = cpu->r[1] + 0x00000008u;
|
|
/* 028D45D8 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[31]);
|
|
/* 028D45DC */ Gambit_fn_028D49C4(cpu);
|
|
L_028D45E0: ; // 0x28d45e0
|
|
/* 028D45E0 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 028D45E0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D45E4 */ _t25 = cpu->r[1] + 0x00000024u;
|
|
/* 028D45E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D45E8 */ _t26 = cpu->r[1] + 0x00000018u;
|
|
/* 028D45E8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D45EC */ cpu->lr = cpu->r[0];
|
|
/* 028D45F0 */ _t27 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D45F0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D45F4 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028D45F8 */ return;
|
|
}
|
|
|
|
// fn_028D4550 @ 0x28d4550
|
|
void Gambit_fn_028D4550(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27;
|
|
|
|
L_028D4550: ; // 0x28d4550
|
|
/* 028D4550 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028D4550 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D4550 */ cpu->r[1] = _t0;
|
|
/* 028D4554 */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028D4554 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D4558 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D4558 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028D455C */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D455C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D4560 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 028D4560 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D4564 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D4568 */ cpu->r[30] = cpu->r[4];
|
|
/* 028D456C */ _t5 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028D456C */ cpu->r[4] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D4570 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028D4574 */ cpu->r[31] = cpu->r[5];
|
|
/* 028D4578 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4578 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D4578 */ if (_t7) goto L_028D45E0; else goto L_028D457C;
|
|
L_028D457C: ; // 0x28d457c
|
|
/* 028D457C */ _t8 = cpu->r[29] + 0x00000008u;
|
|
/* 028D457C */ cpu->r[3] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D4580 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4584 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4584 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D4584 */ if (_t10) goto L_028D45A8; else goto L_028D4588;
|
|
L_028D4588: ; // 0x28d4588
|
|
/* 028D4588 */ _t11 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028D4588 */ cpu->r[9] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D458C */ _t12 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028D458C */ cpu->r[10] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D4590 */ cpu->ctr = cpu->r[10];
|
|
/* 028D4594 */ cpu->r[4] = 0x00000002u;
|
|
/* 028D4598 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D459C */ _t13 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028D459C */ cpu->r[4] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D45A0 */ cpu->r[0] = 0x00000000u;
|
|
/* 028D45A4 */ _t14 = cpu->r[29] + 0x00000008u;
|
|
/* 028D45A4 */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
L_028D45A8: ; // 0x28d45a8
|
|
/* 028D45A8 */ _t15 = cpu->r[29] + 0x00000004u;
|
|
/* 028D45A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D45AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D45B0 */ _t16 = cpu->r[30] + 0x00000000u;
|
|
/* 028D45B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D45B4 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D45B4 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D45B4 */ if (_t18) goto L_028D45B8; else goto L_028D45BC;
|
|
L_028D45B8: ; // 0x28d45b8
|
|
/* 028D45B8 */ cpu->r[31] = 0x00000001u;
|
|
L_028D45BC: ; // 0x28d45bc
|
|
/* 028D45BC */ cpu->r[3] = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D45C0 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D45C0 */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 028D45C4 */ Gambit_fn_028D525C(cpu);
|
|
/* 028D45C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D45CC */ _t20 = cpu->r[29] + 0x00000008u;
|
|
/* 028D45CC */ rbrew_write32(cpu->mem, _t20, cpu->r[3]);
|
|
/* 028D45D0 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D45D0 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028D45D0 */ if (_t22) goto L_028D45E0; else goto L_028D45D4;
|
|
L_028D45D4: ; // 0x28d45d4
|
|
/* 028D45D4 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D45D8 */ _t23 = cpu->r[1] + 0x00000008u;
|
|
/* 028D45D8 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[31]);
|
|
/* 028D45DC */ Gambit_fn_028D49C4(cpu);
|
|
L_028D45E0: ; // 0x28d45e0
|
|
/* 028D45E0 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 028D45E0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D45E4 */ _t25 = cpu->r[1] + 0x00000024u;
|
|
/* 028D45E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D45E8 */ _t26 = cpu->r[1] + 0x00000018u;
|
|
/* 028D45E8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D45EC */ cpu->lr = cpu->r[0];
|
|
/* 028D45F0 */ _t27 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D45F0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D45F4 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028D45F8 */ return;
|
|
}
|
|
|
|
// fn_028D45FC @ 0x28d45fc
|
|
void Gambit_fn_028D45FC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028D45FC: ; // 0x28d45fc
|
|
/* 028D45FC */ cpu->r[0] = cpu->lr;
|
|
/* 028D4600 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D4600 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D4600 */ cpu->r[1] = _t0;
|
|
/* 028D4604 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D4604 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D4608 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D460C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D460C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D4610 */ Gambit_fn_028D44EC(cpu);
|
|
/* 028D4614 */ cpu->r[5] = 0x00000000u;
|
|
/* 028D4618 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D461C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D4620 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028D4620 */ rbrew_write32(cpu->mem, _t3, cpu->r[5]);
|
|
/* 028D4624 */ Gambit_fn_028D454C(cpu);
|
|
/* 028D4628 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028D4628 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D462C */ cpu->lr = cpu->r[0];
|
|
/* 028D4630 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D4630 */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D4634 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D4638 */ return;
|
|
}
|
|
|
|
// fn_028D4600 @ 0x28d4600
|
|
void Gambit_fn_028D4600(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028D4600: ; // 0x28d4600
|
|
/* 028D4600 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D4600 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D4600 */ cpu->r[1] = _t0;
|
|
/* 028D4604 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D4604 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D4608 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D460C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D460C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D4610 */ Gambit_fn_028D44EC(cpu);
|
|
/* 028D4614 */ cpu->r[5] = 0x00000000u;
|
|
/* 028D4618 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D461C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D4620 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028D4620 */ rbrew_write32(cpu->mem, _t3, cpu->r[5]);
|
|
/* 028D4624 */ Gambit_fn_028D454C(cpu);
|
|
/* 028D4628 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028D4628 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D462C */ cpu->lr = cpu->r[0];
|
|
/* 028D4630 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D4630 */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D4634 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D4638 */ return;
|
|
}
|
|
|
|
// fn_028D463C @ 0x28d463c
|
|
void Gambit_fn_028D463C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54;
|
|
|
|
L_028D463C: ; // 0x28d463c
|
|
/* 028D463C */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028D463C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D463C */ cpu->r[1] = _t0;
|
|
/* 028D4640 */ /* nop */
|
|
/* 028D4644 */ cpu->r[0] = cpu->lr;
|
|
/* 028D4648 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D4648 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D464C */ cpu->r[29] = cpu->r[4];
|
|
/* 028D4650 */ cpu->r[28] = cpu->r[3];
|
|
/* 028D4654 */ cpu->r[25] = 0x10140000u;
|
|
/* 028D4658 */ cpu->r[24] = cpu->r[6];
|
|
/* 028D465C */ cpu->r[30] = cpu->r[5];
|
|
/* 028D4660 */ _t2 = cpu->r[28] + 0x00000000u;
|
|
/* 028D4660 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028D4664 */ cpu->r[27] = 0x10140000u;
|
|
/* 028D4668 */ cpu->r[25] = cpu->r[25] + 0xFFFFA8A0u;
|
|
/* 028D466C */ cpu->r[26] = 0x00000000u;
|
|
/* 028D4670 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D4674 */ cpu->r[27] = cpu->r[27] + 0xFFFF9C7Cu;
|
|
/* 028D4678 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4678 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D4678 */ if (_t4) goto L_028D467C; else goto L_028D4718;
|
|
L_028D467C: ; // 0x28d467c
|
|
/* 028D467C */ cpu->r[4] = cpu->r[30];
|
|
/* 028D4680 */ cpu->r[3] = 0x00000050u;
|
|
/* 028D4684 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D4688 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D468C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D468C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D4690 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4690 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D4690 */ if (_t6) goto L_028D4704; else goto L_028D4694;
|
|
L_028D4694: ; // 0x28d4694
|
|
/* 028D4694 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D4698 */ cpu->r[4] = 0x00000050u;
|
|
/* 028D469C */ Gambit_fn_02C89380(cpu);
|
|
/* 028D46A0 */ cpu->r[3] = cpu->r[31] + 0x00000004u;
|
|
/* 028D46A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D46A4 */ _t7 = cpu->r[31] + 0x00000000u;
|
|
/* 028D46A4 */ rbrew_write32(cpu->mem, _t7, cpu->r[27]);
|
|
/* 028D46A8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D46A8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D46A8 */ if (_t9) goto L_028D46AC; else goto L_028D46BC;
|
|
L_028D46AC: ; // 0x28d46ac
|
|
/* 028D46AC */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028D46B0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D46B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D46B8 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D46B8 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D46B8 */ if (_t11) goto L_028D46E0; else goto L_028D46BC;
|
|
L_028D46BC: ; // 0x28d46bc
|
|
/* 028D46BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D46C0 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D46C0 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D46C0 */ if (_t13) goto L_028D46C4; else goto L_028D46D4;
|
|
L_028D46C4: ; // 0x28d46c4
|
|
/* 028D46C4 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028D46C8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D46CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D46D0 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D46D0 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028D46D0 */ if (_t15) goto L_028D46E0; else goto L_028D46D4;
|
|
L_028D46D4: ; // 0x28d46d4
|
|
/* 028D46D4 */ _t16 = cpu->r[3] + 0x00000004u;
|
|
/* 028D46D4 */ rbrew_write32(cpu->mem, _t16, cpu->r[26]);
|
|
/* 028D46D8 */ _t17 = cpu->r[3] + 0x00000000u;
|
|
/* 028D46D8 */ rbrew_write32(cpu->mem, _t17, cpu->r[26]);
|
|
/* 028D46DC */ _t18 = cpu->r[3] + 0x00000008u;
|
|
/* 028D46DC */ rbrew_write32(cpu->mem, _t18, cpu->r[26]);
|
|
L_028D46E0: ; // 0x28d46e0
|
|
/* 028D46E0 */ cpu->r[9] = cpu->r[31] + 0x00000010u;
|
|
/* 028D46E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028D46E4 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D46E4 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028D46E4 */ if (_t20) goto L_028D46E8; else goto L_028D46F8;
|
|
L_028D46E8: ; // 0x28d46e8
|
|
/* 028D46E8 */ cpu->r[3] = 0x00000040u;
|
|
/* 028D46EC */ Gambit_fn_02801A78(cpu);
|
|
/* 028D46F0 */ cpu->r[9] = cpu->r[3];
|
|
/* 028D46F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028D46F4 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D46F4 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028D46F4 */ if (_t22) goto L_028D4704; else goto L_028D46F8;
|
|
L_028D46F8: ; // 0x28d46f8
|
|
/* 028D46F8 */ cpu->r[3] = cpu->r[9] + 0x00000004u;
|
|
/* 028D46FC */ _t23 = cpu->r[9] + 0x00000000u;
|
|
/* 028D46FC */ rbrew_write32(cpu->mem, _t23, cpu->r[25]);
|
|
/* 028D4700 */ Gambit_fn_02836EBC(cpu);
|
|
L_028D4704: ; // 0x28d4704
|
|
/* 028D4704 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D4708 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D470C */ cpu->r[4] = cpu->r[29];
|
|
/* 028D4710 */ _t24 = cpu->r[28] + 0x00000000u;
|
|
/* 028D4710 */ rbrew_write32(cpu->mem, _t24, cpu->r[31]);
|
|
/* 028D4714 */ Gambit_fn_028CA2E8(cpu);
|
|
L_028D4718: ; // 0x28d4718
|
|
/* 028D4718 */ _t25 = cpu->r[28] + 0x00000004u;
|
|
/* 028D4718 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D471C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D4720 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4720 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028D4720 */ if (_t27) goto L_028D4724; else goto L_028D47C8;
|
|
L_028D4724: ; // 0x28d4724
|
|
/* 028D4724 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], 0x00000000u);
|
|
/* 028D4728 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4728 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028D4728 */ if (_t29) goto L_028D472C; else goto L_028D47C8;
|
|
L_028D472C: ; // 0x28d472c
|
|
/* 028D472C */ cpu->r[4] = cpu->r[30];
|
|
/* 028D4730 */ cpu->r[3] = 0x00000050u;
|
|
/* 028D4734 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D4738 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D473C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D473C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D4740 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4740 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028D4740 */ if (_t31) goto L_028D47B4; else goto L_028D4744;
|
|
L_028D4744: ; // 0x28d4744
|
|
/* 028D4744 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D4748 */ cpu->r[4] = 0x00000050u;
|
|
/* 028D474C */ Gambit_fn_02C89380(cpu);
|
|
/* 028D4750 */ cpu->r[3] = cpu->r[31] + 0x00000004u;
|
|
/* 028D4750 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4754 */ _t32 = cpu->r[31] + 0x00000000u;
|
|
/* 028D4754 */ rbrew_write32(cpu->mem, _t32, cpu->r[27]);
|
|
/* 028D4758 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4758 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028D4758 */ if (_t34) goto L_028D475C; else goto L_028D476C;
|
|
L_028D475C: ; // 0x28d475c
|
|
/* 028D475C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028D4760 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D4764 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4768 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4768 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028D4768 */ if (_t36) goto L_028D4790; else goto L_028D476C;
|
|
L_028D476C: ; // 0x28d476c
|
|
/* 028D476C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4770 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4770 */ _t38 = _t37 & 0x00000001u;
|
|
/* 028D4770 */ if (_t38) goto L_028D4774; else goto L_028D4784;
|
|
L_028D4774: ; // 0x28d4774
|
|
/* 028D4774 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028D4778 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D477C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4780 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4780 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028D4780 */ if (_t40) goto L_028D4790; else goto L_028D4784;
|
|
L_028D4784: ; // 0x28d4784
|
|
/* 028D4784 */ _t41 = cpu->r[3] + 0x00000004u;
|
|
/* 028D4784 */ rbrew_write32(cpu->mem, _t41, cpu->r[26]);
|
|
/* 028D4788 */ _t42 = cpu->r[3] + 0x00000000u;
|
|
/* 028D4788 */ rbrew_write32(cpu->mem, _t42, cpu->r[26]);
|
|
/* 028D478C */ _t43 = cpu->r[3] + 0x00000008u;
|
|
/* 028D478C */ rbrew_write32(cpu->mem, _t43, cpu->r[26]);
|
|
L_028D4790: ; // 0x28d4790
|
|
/* 028D4790 */ cpu->r[12] = cpu->r[31] + 0x00000010u;
|
|
/* 028D4790 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D4794 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4794 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028D4794 */ if (_t45) goto L_028D4798; else goto L_028D47A8;
|
|
L_028D4798: ; // 0x28d4798
|
|
/* 028D4798 */ cpu->r[3] = 0x00000040u;
|
|
/* 028D479C */ Gambit_fn_02801A78(cpu);
|
|
/* 028D47A0 */ cpu->r[12] = cpu->r[3];
|
|
/* 028D47A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D47A4 */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D47A4 */ _t47 = _t46 & 0x00000001u;
|
|
/* 028D47A4 */ if (_t47) goto L_028D47B4; else goto L_028D47A8;
|
|
L_028D47A8: ; // 0x28d47a8
|
|
/* 028D47A8 */ cpu->r[3] = cpu->r[12] + 0x00000004u;
|
|
/* 028D47AC */ _t48 = cpu->r[12] + 0x00000000u;
|
|
/* 028D47AC */ rbrew_write32(cpu->mem, _t48, cpu->r[25]);
|
|
/* 028D47B0 */ Gambit_fn_02836EBC(cpu);
|
|
L_028D47B4: ; // 0x28d47b4
|
|
/* 028D47B4 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D47B8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D47BC */ cpu->r[4] = cpu->r[29];
|
|
/* 028D47C0 */ _t49 = cpu->r[28] + 0x00000004u;
|
|
/* 028D47C0 */ rbrew_write32(cpu->mem, _t49, cpu->r[31]);
|
|
/* 028D47C4 */ Gambit_fn_028CA2E8(cpu);
|
|
L_028D47C8: ; // 0x28d47c8
|
|
/* 028D47C8 */ _t50 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D47C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028D47CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D47D0 */ _t51 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D47D0 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028D47D0 */ if (_t52) goto L_028D47D4; else goto L_028D47E8;
|
|
L_028D47D4: ; // 0x28d47d4
|
|
/* 028D47D4 */ Gambit_fn_028D533C(cpu);
|
|
/* 028D47D8 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D47DC */ cpu->r[4] = cpu->r[30];
|
|
/* 028D47E0 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028D47E4 */ _t53 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D47E4 */ rbrew_write32(cpu->mem, _t53, cpu->r[3]);
|
|
L_028D47E8: ; // 0x28d47e8
|
|
/* 028D47E8 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D47EC */ Gambit_fn_028D45FC(cpu);
|
|
/* 028D47F0 */ /* nop */
|
|
/* 028D47F4 */ _t54 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D47F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028D47F8 */ cpu->lr = cpu->r[0];
|
|
/* 028D47FC */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D4800 */ return;
|
|
}
|
|
|
|
// fn_028D4804 @ 0x28d4804
|
|
void Gambit_fn_028D4804(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50;
|
|
|
|
L_028D4804: ; // 0x28d4804
|
|
/* 028D4804 */ cpu->r[0] = cpu->lr;
|
|
/* 028D4808 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D4808 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D4808 */ cpu->r[1] = _t0;
|
|
/* 028D480C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028D480C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D4810 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D4810 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D4814 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D4814 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D4818 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D481C */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D481C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D4820 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4820 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D4820 */ if (_t5) goto L_028D4920; else goto L_028D4824;
|
|
L_028D4824: ; // 0x28d4824
|
|
/* 028D4824 */ _t6 = cpu->r[31] + 0x00000004u;
|
|
/* 028D4824 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D4828 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D482C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D482C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D482C */ if (_t8) goto L_028D4920; else goto L_028D4830;
|
|
L_028D4830: ; // 0x28d4830
|
|
/* 028D4830 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000006u);
|
|
/* 028D4834 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4834 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D4834 */ if (_t10) goto L_028D4920; else goto L_028D4838;
|
|
L_028D4838: ; // 0x28d4838
|
|
/* 028D4838 */ _t11 = cpu->r[31] + 0x00000194u;
|
|
/* 028D4838 */ cpu->r[0] = rbrew_read16(cpu->mem, _t11);
|
|
/* 028D483C */ cpu->r[7] = rbrew_rlwinm(cpu->r[0], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D483C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028D4840 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4840 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D4840 */ if (_t13) goto L_028D4844; else goto L_028D4920;
|
|
L_028D4844: ; // 0x28d4844
|
|
/* 028D4844 */ _t14 = cpu->r[31] + 0x00000004u;
|
|
/* 028D4844 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D4848 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000001u);
|
|
/* 028D484C */ _t15 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D484C */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D484C */ if (_t16) goto L_028D4850; else goto L_028D4920;
|
|
L_028D4850: ; // 0x28d4850
|
|
/* 028D4850 */ _t17 = cpu->r[30] + 0x00000000u;
|
|
/* 028D4850 */ cpu->r[9] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D4854 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028D4858 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4858 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D4858 */ if (_t19) goto L_028D4920; else goto L_028D485C;
|
|
L_028D485C: ; // 0x28d485c
|
|
/* 028D485C */ cpu->r[11] = 0x00000001u;
|
|
/* 028D4860 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D4864 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D4868 */ _t20 = cpu->r[1] + 0x00000008u;
|
|
/* 028D4868 */ rbrew_write32(cpu->mem, _t20, cpu->r[11]);
|
|
/* 028D486C */ Gambit_fn_028BEE60(cpu);
|
|
/* 028D4870 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4874 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4874 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028D4874 */ if (_t22) goto L_028D48B0; else goto L_028D4878;
|
|
L_028D4878: ; // 0x28d4878
|
|
/* 028D4878 */ _t23 = cpu->r[30] + 0x00000004u;
|
|
/* 028D4878 */ cpu->r[3] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D487C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4880 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4880 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D4880 */ if (_t25) goto L_028D4920; else goto L_028D4884;
|
|
L_028D4884: ; // 0x28d4884
|
|
/* 028D4884 */ _t26 = cpu->r[3] + 0x00000000u;
|
|
/* 028D4884 */ cpu->r[7] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D4888 */ _t27 = cpu->r[7] + 0x00000014u;
|
|
/* 028D4888 */ cpu->r[8] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D488C */ cpu->ctr = cpu->r[8];
|
|
/* 028D4890 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D4894 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4898 */ _t28 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D4898 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D489C */ _t29 = cpu->r[1] + 0x00000010u;
|
|
/* 028D489C */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028D48A0 */ cpu->lr = cpu->r[0];
|
|
/* 028D48A4 */ _t30 = cpu->r[1] + 0x00000014u;
|
|
/* 028D48A4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028D48A8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D48AC */ return;
|
|
L_028D48B0: ; // 0x28d48b0
|
|
/* 028D48B0 */ _t31 = cpu->r[30] + 0x00000000u;
|
|
/* 028D48B0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028D48B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D48B8 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D48B8 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028D48B8 */ if (_t33) goto L_028D4920; else goto L_028D48BC;
|
|
L_028D48BC: ; // 0x28d48bc
|
|
/* 028D48BC */ _t34 = cpu->r[3] + 0x00000000u;
|
|
/* 028D48BC */ cpu->r[10] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028D48C0 */ _t35 = cpu->r[10] + 0x00000014u;
|
|
/* 028D48C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028D48C4 */ cpu->ctr = cpu->r[0];
|
|
/* 028D48C8 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D48CC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D48D0 */ _t36 = cpu->r[30] + 0x00000000u;
|
|
/* 028D48D0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028D48D4 */ Gambit_fn_028CA2FC(cpu);
|
|
/* 028D48D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D48DC */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D48DC */ _t38 = _t37 & 0x00000001u;
|
|
/* 028D48DC */ if (_t38) goto L_028D4920; else goto L_028D48E0;
|
|
L_028D48E0: ; // 0x28d48e0
|
|
/* 028D48E0 */ _t39 = cpu->r[30] + 0x00000000u;
|
|
/* 028D48E0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028D48E4 */ _t40 = cpu->r[31] + 0x00000000u;
|
|
/* 028D48E4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028D48E8 */ _t41 = cpu->r[12] + 0x00000044u;
|
|
/* 028D48E8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028D48EC */ cpu->ctr = cpu->r[8];
|
|
/* 028D48F0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D48F4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D48F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D48FC */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D48FC */ _t43 = _t42 & 0x00000001u;
|
|
/* 028D48FC */ if (_t43) goto L_028D4920; else goto L_028D4900;
|
|
L_028D4900: ; // 0x28d4900
|
|
/* 028D4900 */ cpu->r[4] = cpu->r[3];
|
|
L_028D4904: ; // 0x28d4904
|
|
/* 028D4904 */ _t44 = cpu->r[31] + 0x00000000u;
|
|
/* 028D4904 */ cpu->r[10] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028D4908 */ _t45 = cpu->r[10] + 0x0000005Cu;
|
|
/* 028D4908 */ cpu->r[12] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028D490C */ cpu->ctr = cpu->r[12];
|
|
/* 028D4910 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D4914 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4918 */ cpu->r[4] = cpu->r[3];
|
|
/* 028D4918 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028D491C */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D491C */ _t47 = _t46 & 0x00000001u;
|
|
/* 028D491C */ if (_t47) goto L_028D4920; else goto L_028D4904;
|
|
L_028D4920: ; // 0x28d4920
|
|
/* 028D4920 */ _t48 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D4920 */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028D4924 */ _t49 = cpu->r[1] + 0x00000010u;
|
|
/* 028D4924 */ cpu->r[30] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028D4928 */ cpu->lr = cpu->r[0];
|
|
/* 028D492C */ _t50 = cpu->r[1] + 0x00000014u;
|
|
/* 028D492C */ cpu->r[31] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028D4930 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D4934 */ return;
|
|
}
|
|
|
|
// fn_028D4808 @ 0x28d4808
|
|
void Gambit_fn_028D4808(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50;
|
|
|
|
L_028D4808: ; // 0x28d4808
|
|
/* 028D4808 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D4808 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D4808 */ cpu->r[1] = _t0;
|
|
/* 028D480C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028D480C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D4810 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D4810 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D4814 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D4814 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D4818 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D481C */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D481C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D4820 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4820 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D4820 */ if (_t5) goto L_028D4920; else goto L_028D4824;
|
|
L_028D4824: ; // 0x28d4824
|
|
/* 028D4824 */ _t6 = cpu->r[31] + 0x00000004u;
|
|
/* 028D4824 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D4828 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D482C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D482C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D482C */ if (_t8) goto L_028D4920; else goto L_028D4830;
|
|
L_028D4830: ; // 0x28d4830
|
|
/* 028D4830 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000006u);
|
|
/* 028D4834 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4834 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D4834 */ if (_t10) goto L_028D4920; else goto L_028D4838;
|
|
L_028D4838: ; // 0x28d4838
|
|
/* 028D4838 */ _t11 = cpu->r[31] + 0x00000194u;
|
|
/* 028D4838 */ cpu->r[0] = rbrew_read16(cpu->mem, _t11);
|
|
/* 028D483C */ cpu->r[7] = rbrew_rlwinm(cpu->r[0], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D483C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028D4840 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4840 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D4840 */ if (_t13) goto L_028D4844; else goto L_028D4920;
|
|
L_028D4844: ; // 0x28d4844
|
|
/* 028D4844 */ _t14 = cpu->r[31] + 0x00000004u;
|
|
/* 028D4844 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D4848 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000001u);
|
|
/* 028D484C */ _t15 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D484C */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D484C */ if (_t16) goto L_028D4850; else goto L_028D4920;
|
|
L_028D4850: ; // 0x28d4850
|
|
/* 028D4850 */ _t17 = cpu->r[30] + 0x00000000u;
|
|
/* 028D4850 */ cpu->r[9] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D4854 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028D4858 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4858 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D4858 */ if (_t19) goto L_028D4920; else goto L_028D485C;
|
|
L_028D485C: ; // 0x28d485c
|
|
/* 028D485C */ cpu->r[11] = 0x00000001u;
|
|
/* 028D4860 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D4864 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D4868 */ _t20 = cpu->r[1] + 0x00000008u;
|
|
/* 028D4868 */ rbrew_write32(cpu->mem, _t20, cpu->r[11]);
|
|
/* 028D486C */ Gambit_fn_028BEE60(cpu);
|
|
/* 028D4870 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4874 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4874 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028D4874 */ if (_t22) goto L_028D48B0; else goto L_028D4878;
|
|
L_028D4878: ; // 0x28d4878
|
|
/* 028D4878 */ _t23 = cpu->r[30] + 0x00000004u;
|
|
/* 028D4878 */ cpu->r[3] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D487C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4880 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4880 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D4880 */ if (_t25) goto L_028D4920; else goto L_028D4884;
|
|
L_028D4884: ; // 0x28d4884
|
|
/* 028D4884 */ _t26 = cpu->r[3] + 0x00000000u;
|
|
/* 028D4884 */ cpu->r[7] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D4888 */ _t27 = cpu->r[7] + 0x00000014u;
|
|
/* 028D4888 */ cpu->r[8] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D488C */ cpu->ctr = cpu->r[8];
|
|
/* 028D4890 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D4894 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4898 */ _t28 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D4898 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D489C */ _t29 = cpu->r[1] + 0x00000010u;
|
|
/* 028D489C */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028D48A0 */ cpu->lr = cpu->r[0];
|
|
/* 028D48A4 */ _t30 = cpu->r[1] + 0x00000014u;
|
|
/* 028D48A4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028D48A8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D48AC */ return;
|
|
L_028D48B0: ; // 0x28d48b0
|
|
/* 028D48B0 */ _t31 = cpu->r[30] + 0x00000000u;
|
|
/* 028D48B0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028D48B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D48B8 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D48B8 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028D48B8 */ if (_t33) goto L_028D4920; else goto L_028D48BC;
|
|
L_028D48BC: ; // 0x28d48bc
|
|
/* 028D48BC */ _t34 = cpu->r[3] + 0x00000000u;
|
|
/* 028D48BC */ cpu->r[10] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028D48C0 */ _t35 = cpu->r[10] + 0x00000014u;
|
|
/* 028D48C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028D48C4 */ cpu->ctr = cpu->r[0];
|
|
/* 028D48C8 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D48CC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D48D0 */ _t36 = cpu->r[30] + 0x00000000u;
|
|
/* 028D48D0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028D48D4 */ Gambit_fn_028CA2FC(cpu);
|
|
/* 028D48D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D48DC */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D48DC */ _t38 = _t37 & 0x00000001u;
|
|
/* 028D48DC */ if (_t38) goto L_028D4920; else goto L_028D48E0;
|
|
L_028D48E0: ; // 0x28d48e0
|
|
/* 028D48E0 */ _t39 = cpu->r[30] + 0x00000000u;
|
|
/* 028D48E0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028D48E4 */ _t40 = cpu->r[31] + 0x00000000u;
|
|
/* 028D48E4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028D48E8 */ _t41 = cpu->r[12] + 0x00000044u;
|
|
/* 028D48E8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028D48EC */ cpu->ctr = cpu->r[8];
|
|
/* 028D48F0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D48F4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D48F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D48FC */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D48FC */ _t43 = _t42 & 0x00000001u;
|
|
/* 028D48FC */ if (_t43) goto L_028D4920; else goto L_028D4900;
|
|
L_028D4900: ; // 0x28d4900
|
|
/* 028D4900 */ cpu->r[4] = cpu->r[3];
|
|
L_028D4904: ; // 0x28d4904
|
|
/* 028D4904 */ _t44 = cpu->r[31] + 0x00000000u;
|
|
/* 028D4904 */ cpu->r[10] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028D4908 */ _t45 = cpu->r[10] + 0x0000005Cu;
|
|
/* 028D4908 */ cpu->r[12] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028D490C */ cpu->ctr = cpu->r[12];
|
|
/* 028D4910 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D4914 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4918 */ cpu->r[4] = cpu->r[3];
|
|
/* 028D4918 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028D491C */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D491C */ _t47 = _t46 & 0x00000001u;
|
|
/* 028D491C */ if (_t47) goto L_028D4920; else goto L_028D4904;
|
|
L_028D4920: ; // 0x28d4920
|
|
/* 028D4920 */ _t48 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D4920 */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028D4924 */ _t49 = cpu->r[1] + 0x00000010u;
|
|
/* 028D4924 */ cpu->r[30] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028D4928 */ cpu->lr = cpu->r[0];
|
|
/* 028D492C */ _t50 = cpu->r[1] + 0x00000014u;
|
|
/* 028D492C */ cpu->r[31] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028D4930 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D4934 */ return;
|
|
}
|
|
|
|
// fn_028D4938 @ 0x28d4938
|
|
void Gambit_fn_028D4938(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61;
|
|
|
|
L_028D4938: ; // 0x28d4938
|
|
/* 028D4938 */ cpu->r[12] = cpu->r[3];
|
|
/* 028D493C */ _t0 = cpu->r[12] + 0x00000008u;
|
|
/* 028D493C */ cpu->r[3] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028D4940 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4944 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4944 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028D4944 */ if (_t2) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D4944 */ goto L_028D4948;
|
|
L_028D4948: ; // 0x28d4948
|
|
/* 028D4948 */ _t3 = cpu->r[12] + 0x00000000u;
|
|
/* 028D4948 */ cpu->r[5] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D494C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028D4950 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4950 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D4950 */ if (_t5) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D4950 */ goto L_028D4954;
|
|
L_028D4954: ; // 0x28d4954
|
|
/* 028D4954 */ _t6 = cpu->r[12] + 0x00000004u;
|
|
/* 028D4954 */ cpu->r[6] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D4958 */ goto L_028D4F24;
|
|
L_028D4F24: ; // 0x28d4f24
|
|
/* 028D4F24 */ _t7 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028D4F24 */ rbrew_write32(cpu->mem, _t7, cpu->r[1]);
|
|
/* 028D4F24 */ cpu->r[1] = _t7;
|
|
/* 028D4F28 */ cpu->r[0] = cpu->lr;
|
|
/* 028D4F2C */ /* nop */
|
|
/* 028D4F30 */ cpu->r[27] = cpu->r[3];
|
|
/* 028D4F34 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D4F38 */ cpu->r[30] = cpu->r[5];
|
|
/* 028D4F38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D4F3C */ _t8 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D4F3C */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028D4F40 */ cpu->r[29] = cpu->r[6];
|
|
/* 028D4F44 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4F44 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D4F44 */ if (_t10) goto L_028D5134; else goto L_028D4F48;
|
|
L_028D4F48: ; // 0x28d4f48
|
|
/* 028D4F48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D4F4C */ _t11 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D4F4C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D4F4C */ if (_t12) goto L_028D4FA4; else goto L_028D4F50;
|
|
L_028D4F50: ; // 0x28d4f50
|
|
/* 028D4F50 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D4F50 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D4F50 */ if (_t14) goto L_028D4F54; else goto L_028D4F80;
|
|
L_028D4F54: ; // 0x28d4f54
|
|
/* 028D4F54 */ cpu->r[6] = 0x80000000u;
|
|
/* 028D4F58 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D4F5C */ cpu->r[6] = cpu->r[6] + 0xFFFFFFFFu;
|
|
/* 028D4F60 */ cpu->r[4] = cpu->r[29];
|
|
/* 028D4F64 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D4F68 */ Gambit_fn_028D49D0(cpu);
|
|
/* 028D4F6C */ /* nop */
|
|
/* 028D4F70 */ _t15 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D4F70 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D4F74 */ cpu->lr = cpu->r[0];
|
|
/* 028D4F78 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D4F7C */ return;
|
|
L_028D4F80: ; // 0x28d4f80
|
|
/* 028D4F80 */ cpu->r[5] = cpu->r[29];
|
|
/* 028D4F84 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D4F88 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D4F8C */ Gambit_fn_028D4D88(cpu);
|
|
/* 028D4F90 */ /* nop */
|
|
/* 028D4F94 */ _t16 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D4F94 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D4F98 */ cpu->lr = cpu->r[0];
|
|
/* 028D4F9C */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D4FA0 */ return;
|
|
L_028D4FA4: ; // 0x28d4fa4
|
|
/* 028D4FA4 */ _t17 = cpu->r[30] + 0x00000000u;
|
|
/* 028D4FA4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D4FA8 */ _t18 = cpu->r[11] + 0x00000074u;
|
|
/* 028D4FA8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D4FAC */ cpu->ctr = cpu->r[5];
|
|
/* 028D4FB0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D4FB4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4FB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4FBC */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4FBC */ _t20 = _t19 & 0x00000001u;
|
|
/* 028D4FBC */ if (_t20) goto L_028D4FC0; else goto L_028D4FE8;
|
|
L_028D4FC0: ; // 0x28d4fc0
|
|
/* 028D4FC0 */ cpu->r[6] = cpu->r[31];
|
|
/* 028D4FC4 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D4FC8 */ cpu->r[4] = cpu->r[29];
|
|
/* 028D4FCC */ cpu->r[3] = cpu->r[27];
|
|
/* 028D4FD0 */ Gambit_fn_028D49D0(cpu);
|
|
/* 028D4FD4 */ /* nop */
|
|
/* 028D4FD8 */ _t21 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D4FD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D4FDC */ cpu->lr = cpu->r[0];
|
|
/* 028D4FE0 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D4FE4 */ return;
|
|
L_028D4FE8: ; // 0x28d4fe8
|
|
/* 028D4FE8 */ cpu->r[31] = cpu->r[3] - cpu->r[31];
|
|
/* 028D4FE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D4FEC */ _t22 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D4FEC */ _t23 = _t22 & 0x00000001u;
|
|
/* 028D4FEC */ if (_t23) goto L_028D501C; else goto L_028D4FF0;
|
|
L_028D4FF0: ; // 0x28d4ff0
|
|
/* 028D4FF0 */ _t24 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D4FF0 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D4FF0 */ if (_t25) goto L_028D4FF4; else goto L_028D5134;
|
|
L_028D4FF4: ; // 0x28d4ff4
|
|
/* 028D4FF4 */ cpu->r[6] = (uint32_t)(-(int32_t)cpu->r[31]);
|
|
/* 028D4FF8 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D4FFC */ cpu->r[4] = cpu->r[29];
|
|
/* 028D5000 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D5004 */ Gambit_fn_028D49D0(cpu);
|
|
/* 028D5008 */ /* nop */
|
|
/* 028D500C */ _t26 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D500C */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D5010 */ cpu->lr = cpu->r[0];
|
|
/* 028D5014 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D5018 */ return;
|
|
L_028D501C: ; // 0x28d501c
|
|
/* 028D501C */ _t27 = cpu->r[30] + 0x00000000u;
|
|
/* 028D501C */ cpu->r[8] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D5020 */ _t28 = cpu->r[8] + 0x0000008Cu;
|
|
/* 028D5020 */ cpu->r[9] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D5024 */ cpu->ctr = cpu->r[9];
|
|
/* 028D5028 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D502C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5030 */ _t29 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5030 */ cpu->r[10] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028D5034 */ _t30 = cpu->r[10] + 0x00000014u;
|
|
/* 028D5034 */ cpu->r[11] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028D5038 */ cpu->ctr = cpu->r[11];
|
|
/* 028D503C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5040 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D5044 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5044 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028D5044 */ if (_t32) goto L_028D506C; else goto L_028D5048;
|
|
L_028D5048: ; // 0x28d5048
|
|
/* 028D5048 */ _t33 = cpu->r[29] + 0x00000000u;
|
|
/* 028D5048 */ cpu->r[12] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028D504C */ _t34 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D504C */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028D5050 */ cpu->ctr = cpu->r[0];
|
|
/* 028D5054 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D5058 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D505C */ _t35 = cpu->r[3] + 0x00000000u;
|
|
/* 028D505C */ cpu->r[8] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028D5060 */ _t36 = cpu->r[8] + 0x00000014u;
|
|
/* 028D5060 */ cpu->r[9] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028D5064 */ cpu->ctr = cpu->r[9];
|
|
/* 028D5068 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D506C: ; // 0x28d506c
|
|
/* 028D506C */ _t37 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028D506C */ cpu->r[10] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028D5070 */ _t38 = cpu->r[10] + 0x00000014u;
|
|
/* 028D5070 */ cpu->r[11] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028D5074 */ cpu->ctr = cpu->r[11];
|
|
/* 028D5078 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D507C */ cpu->r[4] = cpu->r[30];
|
|
/* 028D5080 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5084 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D5088 */ _t39 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D5088 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028D5088 */ if (_t40) goto L_028D508C; else goto L_028D50E4;
|
|
L_028D508C: ; // 0x28d508c
|
|
/* 028D508C */ _t41 = cpu->r[30] + 0x00000000u;
|
|
/* 028D508C */ cpu->r[12] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028D5090 */ _t42 = cpu->r[12] + 0x0000004Cu;
|
|
/* 028D5090 */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028D5094 */ cpu->ctr = cpu->r[0];
|
|
/* 028D5098 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D509C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D50A0 */ cpu->r[28] = cpu->r[3];
|
|
/* 028D50A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028D50A4 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D50A4 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028D50A4 */ if (_t44) goto L_028D50DC; else goto L_028D50A8;
|
|
L_028D50A8: ; // 0x28d50a8
|
|
/* 028D50A8 */ _t45 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028D50A8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028D50AC */ _t46 = cpu->r[5] + 0x0000001Cu;
|
|
/* 028D50AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028D50B0 */ cpu->ctr = cpu->r[0];
|
|
/* 028D50B4 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D50B8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D50BC */ _t47 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D50BC */ rbrew_write32(cpu->mem, _t47, cpu->r[3]);
|
|
/* 028D50C0 */ cpu->r[6] = cpu->r[29];
|
|
/* 028D50C4 */ cpu->r[7] = cpu->r[1] + 0x00000008u;
|
|
/* 028D50C8 */ _t48 = cpu->r[1] + 0x00000008u;
|
|
/* 028D50C8 */ rbrew_write32(cpu->mem, _t48, cpu->r[3]);
|
|
/* 028D50CC */ cpu->r[4] = cpu->r[28];
|
|
/* 028D50D0 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D50D4 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D50D8 */ Gambit_fn_028D4C20(cpu);
|
|
L_028D50DC: ; // 0x28d50dc
|
|
/* 028D50DC */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028D50DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D50E0 */ _t49 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D50E0 */ _t50 = _t49 & 0x00000001u;
|
|
/* 028D50E0 */ if (_t50) goto L_028D50E4; else goto L_028D508C;
|
|
L_028D50E4: ; // 0x28d50e4
|
|
/* 028D50E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D50E8 */ _t51 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D50E8 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028D50E8 */ if (_t52) goto L_028D5110; else goto L_028D50EC;
|
|
L_028D50EC: ; // 0x28d50ec
|
|
/* 028D50EC */ _t53 = cpu->r[29] + 0x00000000u;
|
|
/* 028D50EC */ cpu->r[7] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028D50F0 */ _t54 = cpu->r[7] + 0x0000008Cu;
|
|
/* 028D50F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028D50F4 */ cpu->ctr = cpu->r[0];
|
|
/* 028D50F8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D50FC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5100 */ _t55 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5100 */ cpu->r[9] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028D5104 */ _t56 = cpu->r[9] + 0x0000001Cu;
|
|
/* 028D5104 */ cpu->r[10] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028D5108 */ cpu->ctr = cpu->r[10];
|
|
/* 028D510C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D5110: ; // 0x28d5110
|
|
/* 028D5110 */ _t57 = cpu->r[30] + 0x00000000u;
|
|
/* 028D5110 */ cpu->r[12] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028D5114 */ _t58 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D5114 */ cpu->r[0] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028D5118 */ cpu->ctr = cpu->r[0];
|
|
/* 028D511C */ cpu->r[3] = cpu->r[30];
|
|
/* 028D5120 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5124 */ _t59 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5124 */ cpu->r[6] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028D5128 */ _t60 = cpu->r[6] + 0x0000001Cu;
|
|
/* 028D5128 */ cpu->r[7] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028D512C */ cpu->ctr = cpu->r[7];
|
|
/* 028D5130 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D5134: ; // 0x28d5134
|
|
/* 028D5134 */ /* nop */
|
|
/* 028D5138 */ _t61 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D5138 */ cpu->r[0] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028D513C */ cpu->lr = cpu->r[0];
|
|
/* 028D5140 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D5144 */ return;
|
|
}
|
|
|
|
// fn_028D495C @ 0x28d495c
|
|
void Gambit_fn_028D495C(CPUState* cpu) {
|
|
L_02836FFC: ; // 0x2836ffc
|
|
/* 02836FFC */ cpu->r[3] = cpu->r[3] + 0x00000010u;
|
|
/* 02837000 */ rbrew_dispatch(cpu, 0x02d0a948u); return;
|
|
L_028D495C: ; // 0x28d495c
|
|
/* 028D495C */ cpu->r[3] = cpu->r[3] + 0x00000004u;
|
|
/* 028D4960 */ goto L_02836FFC;
|
|
}
|
|
|
|
// fn_028D4964 @ 0x28d4964
|
|
void Gambit_fn_028D4964(CPUState* cpu) {
|
|
L_02837030: ; // 0x2837030
|
|
/* 02837030 */ cpu->r[3] = cpu->r[3] + 0x00000010u;
|
|
/* 02837034 */ rbrew_dispatch(cpu, 0x02d0a958u); return;
|
|
L_028D4964: ; // 0x28d4964
|
|
/* 028D4964 */ cpu->r[3] = cpu->r[3] + 0x00000004u;
|
|
/* 028D4968 */ goto L_02837030;
|
|
}
|
|
|
|
// fn_028D496C @ 0x28d496c
|
|
void Gambit_fn_028D496C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028D496C: ; // 0x28d496c
|
|
/* 028D496C */ cpu->r[0] = cpu->lr;
|
|
/* 028D4970 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028D4970 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028D4974 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4978 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028D4978 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028D4978 */ cpu->r[1] = _t1;
|
|
/* 028D497C */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D497C */ _t3 = _t2 & 0x00000001u;
|
|
/* 028D497C */ if (_t3) goto L_028D4980; else goto L_028D4990;
|
|
L_028D4980: ; // 0x28d4980
|
|
/* 028D4980 */ cpu->r[3] = 0x00000010u;
|
|
/* 028D4984 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D4988 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D498C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D498C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D498C */ if (_t5) goto L_028D49B4; else goto L_028D4990;
|
|
L_028D4990: ; // 0x28d4990
|
|
/* 028D4990 */ cpu->r[12] = 0x00000000u;
|
|
/* 028D4994 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D4998 */ _t6 = cpu->r[3] + 0x00000009u;
|
|
/* 028D4998 */ rbrew_write8(cpu->mem, _t6, (uint8_t)cpu->r[12]);
|
|
/* 028D499C */ cpu->r[0] = cpu->r[0] + 0xFFFFA8D0u;
|
|
/* 028D49A0 */ _t7 = cpu->r[3] + 0x00000008u;
|
|
/* 028D49A0 */ rbrew_write8(cpu->mem, _t7, (uint8_t)cpu->r[12]);
|
|
/* 028D49A4 */ _t8 = cpu->r[3] + 0x00000000u;
|
|
/* 028D49A4 */ rbrew_write8(cpu->mem, _t8, (uint8_t)cpu->r[12]);
|
|
/* 028D49A8 */ cpu->r[10] = 0x00000001u;
|
|
/* 028D49AC */ _t9 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028D49AC */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028D49B0 */ _t10 = cpu->r[3] + 0x00000004u;
|
|
/* 028D49B0 */ rbrew_write32(cpu->mem, _t10, cpu->r[10]);
|
|
L_028D49B4: ; // 0x28d49b4
|
|
/* 028D49B4 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D49B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D49B8 */ cpu->lr = cpu->r[0];
|
|
/* 028D49BC */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D49C0 */ return;
|
|
}
|
|
|
|
// fn_028D4978 @ 0x28d4978
|
|
void Gambit_fn_028D4978(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028D4978: ; // 0x28d4978
|
|
/* 028D4978 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028D4978 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D4978 */ cpu->r[1] = _t0;
|
|
/* 028D497C */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D497C */ _t2 = _t1 & 0x00000001u;
|
|
/* 028D497C */ if (_t2) goto L_028D4980; else goto L_028D4990;
|
|
L_028D4980: ; // 0x28d4980
|
|
/* 028D4980 */ cpu->r[3] = 0x00000010u;
|
|
/* 028D4984 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D4988 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D498C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D498C */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D498C */ if (_t4) goto L_028D49B4; else goto L_028D4990;
|
|
L_028D4990: ; // 0x28d4990
|
|
/* 028D4990 */ cpu->r[12] = 0x00000000u;
|
|
/* 028D4994 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D4998 */ _t5 = cpu->r[3] + 0x00000009u;
|
|
/* 028D4998 */ rbrew_write8(cpu->mem, _t5, (uint8_t)cpu->r[12]);
|
|
/* 028D499C */ cpu->r[0] = cpu->r[0] + 0xFFFFA8D0u;
|
|
/* 028D49A0 */ _t6 = cpu->r[3] + 0x00000008u;
|
|
/* 028D49A0 */ rbrew_write8(cpu->mem, _t6, (uint8_t)cpu->r[12]);
|
|
/* 028D49A4 */ _t7 = cpu->r[3] + 0x00000000u;
|
|
/* 028D49A4 */ rbrew_write8(cpu->mem, _t7, (uint8_t)cpu->r[12]);
|
|
/* 028D49A8 */ cpu->r[10] = 0x00000001u;
|
|
/* 028D49AC */ _t8 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028D49AC */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028D49B0 */ _t9 = cpu->r[3] + 0x00000004u;
|
|
/* 028D49B0 */ rbrew_write32(cpu->mem, _t9, cpu->r[10]);
|
|
L_028D49B4: ; // 0x28d49b4
|
|
/* 028D49B4 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D49B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D49B8 */ cpu->lr = cpu->r[0];
|
|
/* 028D49BC */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D49C0 */ return;
|
|
}
|
|
|
|
// fn_028D49C4 @ 0x28d49c4
|
|
void Gambit_fn_028D49C4(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028D49C4: ; // 0x28d49c4
|
|
/* 028D49C4 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028D49C4 */ cpu->r[0] = rbrew_read8(cpu->mem, _t0);
|
|
/* 028D49C8 */ _t1 = cpu->r[3] + 0x00000000u;
|
|
/* 028D49C8 */ rbrew_write8(cpu->mem, _t1, (uint8_t)cpu->r[0]);
|
|
/* 028D49CC */ return;
|
|
}
|
|
|
|
// fn_028D49D0 @ 0x28d49d0
|
|
void Gambit_fn_028D49D0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71;
|
|
|
|
L_028D49D0: ; // 0x28d49d0
|
|
/* 028D49D0 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 028D49D0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D49D0 */ cpu->r[1] = _t0;
|
|
/* 028D49D4 */ cpu->r[0] = cpu->lr;
|
|
/* 028D49D8 */ /* nop */
|
|
/* 028D49DC */ cpu->r[24] = cpu->r[3];
|
|
/* 028D49E0 */ cpu->r[27] = cpu->r[4];
|
|
/* 028D49E4 */ cpu->r[25] = cpu->r[6];
|
|
/* 028D49E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], 0x00000000u);
|
|
/* 028D49E8 */ cpu->r[26] = cpu->r[5];
|
|
/* 028D49EC */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 028D49EC */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D49F0 */ _t2 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D49F0 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028D49F0 */ if (_t3) goto L_028D49F4; else goto L_028D4C0C;
|
|
L_028D49F4: ; // 0x28d49f4
|
|
/* 028D49F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028D49F8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D49F8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D49F8 */ if (_t5) goto L_028D4C0C; else goto L_028D49FC;
|
|
L_028D49FC: ; // 0x28d49fc
|
|
/* 028D49FC */ _t6 = cpu->r[27] + 0x00000000u;
|
|
/* 028D49FC */ cpu->r[6] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D4A00 */ _t7 = cpu->r[6] + 0x0000007Cu;
|
|
/* 028D4A00 */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D4A04 */ cpu->ctr = cpu->r[8];
|
|
/* 028D4A08 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D4A0C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4A10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4A14 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4A14 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D4A14 */ if (_t9) goto L_028D4A18; else goto L_028D4C0C;
|
|
L_028D4A18: ; // 0x28d4a18
|
|
/* 028D4A18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028D4A1C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4A1C */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D4A1C */ if (_t11) goto L_028D4A44; else goto L_028D4A20;
|
|
L_028D4A20: ; // 0x28d4a20
|
|
/* 028D4A20 */ _t12 = cpu->r[26] + 0x00000000u;
|
|
/* 028D4A20 */ cpu->r[7] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D4A24 */ _t13 = cpu->r[7] + 0x0000008Cu;
|
|
/* 028D4A24 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D4A28 */ cpu->ctr = cpu->r[9];
|
|
/* 028D4A2C */ cpu->r[3] = cpu->r[26];
|
|
/* 028D4A30 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4A34 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028D4A34 */ cpu->r[10] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D4A38 */ _t15 = cpu->r[10] + 0x00000014u;
|
|
/* 028D4A38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D4A3C */ cpu->ctr = cpu->r[0];
|
|
/* 028D4A40 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D4A44: ; // 0x28d4a44
|
|
/* 028D4A44 */ _t16 = cpu->r[27] + 0x00000000u;
|
|
/* 028D4A44 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D4A48 */ _t17 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D4A48 */ cpu->r[5] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D4A4C */ cpu->ctr = cpu->r[5];
|
|
/* 028D4A50 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D4A54 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4A58 */ _t18 = cpu->r[3] + 0x00000000u;
|
|
/* 028D4A58 */ cpu->r[6] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D4A5C */ _t19 = cpu->r[6] + 0x00000014u;
|
|
/* 028D4A5C */ cpu->r[7] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D4A60 */ cpu->ctr = cpu->r[7];
|
|
/* 028D4A64 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4A68 */ _t20 = cpu->r[24] + 0x0000000Cu;
|
|
/* 028D4A68 */ cpu->r[8] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D4A6C */ _t21 = cpu->r[8] + 0x00000014u;
|
|
/* 028D4A6C */ cpu->r[9] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D4A70 */ cpu->ctr = cpu->r[9];
|
|
/* 028D4A74 */ cpu->r[4] = cpu->r[27];
|
|
/* 028D4A78 */ cpu->r[3] = cpu->r[24];
|
|
/* 028D4A7C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4A80 */ _t22 = cpu->r[27] + 0x00000000u;
|
|
/* 028D4A80 */ cpu->r[10] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D4A84 */ _t23 = cpu->r[10] + 0x00000044u;
|
|
/* 028D4A84 */ cpu->r[11] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D4A88 */ cpu->ctr = cpu->r[11];
|
|
/* 028D4A8C */ cpu->r[3] = cpu->r[27];
|
|
/* 028D4A90 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4A94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4A98 */ cpu->r[28] = cpu->r[3];
|
|
/* 028D4A9C */ cpu->r[31] = cpu->r[27];
|
|
/* 028D4AA0 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4AA0 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D4AA0 */ if (_t25) goto L_028D4AD0; else goto L_028D4AA4;
|
|
L_028D4AA4: ; // 0x28d4aa4
|
|
/* 028D4AA4 */ _t26 = cpu->r[31] + 0x00000000u;
|
|
/* 028D4AA4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D4AA8 */ _t27 = cpu->r[12] + 0x0000005Cu;
|
|
/* 028D4AA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D4AAC */ cpu->ctr = cpu->r[0];
|
|
/* 028D4AB0 */ cpu->r[4] = cpu->r[28];
|
|
/* 028D4AB4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D4AB8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4ABC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], 0x00000000u);
|
|
/* 028D4AC0 */ cpu->r[29] = 0x00000000u;
|
|
/* 028D4AC4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D4AC8 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4AC8 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028D4AC8 */ if (_t29) goto L_028D4BBC; else goto L_028D4ACC;
|
|
L_028D4ACC: ; // 0x28d4acc
|
|
/* 028D4ACC */ goto L_028D4AE0;
|
|
L_028D4AD0: ; // 0x28d4ad0
|
|
/* 028D4AD0 */ cpu->r[30] = 0x00000000u;
|
|
/* 028D4AD4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], 0x00000000u);
|
|
/* 028D4AD8 */ cpu->r[29] = cpu->r[30];
|
|
/* 028D4ADC */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4ADC */ _t31 = _t30 & 0x00000001u;
|
|
/* 028D4ADC */ if (_t31) goto L_028D4BBC; else goto L_028D4AE0;
|
|
L_028D4AE0: ; // 0x28d4ae0
|
|
/* 028D4AE0 */ _t32 = cpu->r[24] + 0x00000004u;
|
|
/* 028D4AE0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028D4AE4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D4AE8 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D4AEC */ _t33 = cpu->r[1] + 0x00000008u;
|
|
/* 028D4AEC */ rbrew_write32(cpu->mem, _t33, cpu->r[5]);
|
|
/* 028D4AF0 */ Gambit_fn_028BF444(cpu);
|
|
/* 028D4AF4 */ _t34 = cpu->r[24] + 0x00000004u;
|
|
/* 028D4AF4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028D4AF8 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D4AFC */ cpu->r[3] = cpu->r[28];
|
|
/* 028D4B00 */ _t35 = cpu->r[1] + 0x00000008u;
|
|
/* 028D4B00 */ rbrew_write32(cpu->mem, _t35, cpu->r[6]);
|
|
/* 028D4B04 */ Gambit_fn_028BEE60(cpu);
|
|
/* 028D4B08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4B0C */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4B0C */ _t37 = _t36 & 0x00000001u;
|
|
/* 028D4B0C */ if (_t37) goto L_028D4B10; else goto L_028D4B74;
|
|
L_028D4B10: ; // 0x28d4b10
|
|
/* 028D4B10 */ _t38 = cpu->r[27] + 0x00000000u;
|
|
/* 028D4B10 */ cpu->r[8] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028D4B14 */ _t39 = cpu->r[8] + 0x00000064u;
|
|
/* 028D4B14 */ cpu->r[9] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028D4B18 */ cpu->ctr = cpu->r[9];
|
|
/* 028D4B1C */ cpu->r[3] = cpu->r[27];
|
|
/* 028D4B20 */ cpu->r[4] = cpu->r[28];
|
|
/* 028D4B24 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4B28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4B2C */ _t40 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D4B2C */ _t41 = _t40 & 0x00000001u;
|
|
/* 028D4B2C */ if (_t41) goto L_028D4B48; else goto L_028D4B30;
|
|
L_028D4B30: ; // 0x28d4b30
|
|
/* 028D4B30 */ _t42 = cpu->r[27] + 0x00000000u;
|
|
/* 028D4B30 */ cpu->r[10] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028D4B34 */ _t43 = cpu->r[10] + 0x00000034u;
|
|
/* 028D4B34 */ cpu->r[0] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028D4B38 */ cpu->ctr = cpu->r[0];
|
|
/* 028D4B3C */ cpu->r[3] = cpu->r[27];
|
|
/* 028D4B40 */ cpu->r[4] = cpu->r[28];
|
|
/* 028D4B44 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D4B48: ; // 0x28d4b48
|
|
/* 028D4B48 */ _t44 = cpu->r[28] + 0x00000004u;
|
|
/* 028D4B48 */ cpu->r[5] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028D4B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028D4B50 */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4B50 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028D4B50 */ if (_t46) goto L_028D4B74; else goto L_028D4B54;
|
|
L_028D4B54: ; // 0x28d4b54
|
|
/* 028D4B54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000006u);
|
|
/* 028D4B58 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4B58 */ _t48 = _t47 & 0x00000001u;
|
|
/* 028D4B58 */ if (_t48) goto L_028D4B74; else goto L_028D4B5C;
|
|
L_028D4B5C: ; // 0x28d4b5c
|
|
/* 028D4B5C */ _t49 = cpu->r[26] + 0x00000000u;
|
|
/* 028D4B5C */ cpu->r[12] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028D4B60 */ _t50 = cpu->r[12] + 0x00000014u;
|
|
/* 028D4B60 */ cpu->r[0] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028D4B64 */ cpu->ctr = cpu->r[0];
|
|
/* 028D4B68 */ cpu->r[3] = cpu->r[26];
|
|
/* 028D4B6C */ cpu->r[4] = cpu->r[28];
|
|
/* 028D4B70 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D4B74: ; // 0x28d4b74
|
|
/* 028D4B74 */ cpu->r[25] = cpu->r[25] + 0xFFFFFFFFu;
|
|
/* 028D4B74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], 0x00000000u);
|
|
/* 028D4B78 */ _t51 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D4B78 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028D4B78 */ if (_t52) goto L_028D4B7C; else goto L_028D4BBC;
|
|
L_028D4B7C: ; // 0x28d4b7c
|
|
/* 028D4B7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D4B80 */ cpu->r[28] = cpu->r[30];
|
|
/* 028D4B84 */ _t53 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4B84 */ _t54 = _t53 & 0x00000001u;
|
|
/* 028D4B84 */ if (_t54) goto L_028D4BB0; else goto L_028D4B88;
|
|
L_028D4B88: ; // 0x28d4b88
|
|
/* 028D4B88 */ _t55 = cpu->r[31] + 0x00000000u;
|
|
/* 028D4B88 */ cpu->r[6] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028D4B8C */ _t56 = cpu->r[6] + 0x0000005Cu;
|
|
/* 028D4B8C */ cpu->r[7] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028D4B90 */ cpu->ctr = cpu->r[7];
|
|
/* 028D4B94 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D4B98 */ cpu->r[4] = cpu->r[28];
|
|
/* 028D4B9C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4BA0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[29]);
|
|
/* 028D4BA4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D4BA8 */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4BA8 */ _t58 = _t57 & 0x00000001u;
|
|
/* 028D4BA8 */ if (_t58) goto L_028D4BAC; else goto L_028D4AE0;
|
|
L_028D4BAC: ; // 0x28d4bac
|
|
/* 028D4BAC */ goto L_028D4BBC;
|
|
L_028D4BB0: ; // 0x28d4bb0
|
|
/* 028D4BB0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[29]);
|
|
/* 028D4BB4 */ cpu->r[30] = 0x00000000u;
|
|
/* 028D4BB8 */ _t59 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4BB8 */ _t60 = _t59 & 0x00000001u;
|
|
/* 028D4BB8 */ if (_t60) goto L_028D4BBC; else goto L_028D4AE0;
|
|
L_028D4BBC: ; // 0x28d4bbc
|
|
/* 028D4BBC */ _t61 = cpu->r[27] + 0x00000000u;
|
|
/* 028D4BBC */ cpu->r[8] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028D4BC0 */ _t62 = cpu->r[8] + 0x0000008Cu;
|
|
/* 028D4BC0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028D4BC4 */ cpu->ctr = cpu->r[9];
|
|
/* 028D4BC8 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D4BCC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4BD0 */ _t63 = cpu->r[3] + 0x00000000u;
|
|
/* 028D4BD0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028D4BD4 */ _t64 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028D4BD4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028D4BD8 */ cpu->ctr = cpu->r[11];
|
|
/* 028D4BDC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4BE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028D4BE4 */ _t65 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4BE4 */ _t66 = _t65 & 0x00000001u;
|
|
/* 028D4BE4 */ if (_t66) goto L_028D4C0C; else goto L_028D4BE8;
|
|
L_028D4BE8: ; // 0x28d4be8
|
|
/* 028D4BE8 */ _t67 = cpu->r[26] + 0x00000000u;
|
|
/* 028D4BE8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028D4BEC */ _t68 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D4BEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028D4BF0 */ cpu->ctr = cpu->r[0];
|
|
/* 028D4BF4 */ cpu->r[3] = cpu->r[26];
|
|
/* 028D4BF8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4BFC */ _t69 = cpu->r[3] + 0x00000000u;
|
|
/* 028D4BFC */ cpu->r[12] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028D4C00 */ _t70 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028D4C00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028D4C04 */ cpu->ctr = cpu->r[0];
|
|
/* 028D4C08 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D4C0C: ; // 0x28d4c0c
|
|
/* 028D4C0C */ /* nop */
|
|
/* 028D4C10 */ _t71 = cpu->r[1] + 0x00000034u;
|
|
/* 028D4C10 */ cpu->r[0] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028D4C14 */ cpu->lr = cpu->r[0];
|
|
/* 028D4C18 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 028D4C1C */ return;
|
|
}
|
|
|
|
// fn_028D4C20 @ 0x28d4c20
|
|
void Gambit_fn_028D4C20(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40;
|
|
|
|
L_028D4C20: ; // 0x28d4c20
|
|
/* 028D4C20 */ _t0 = cpu->r[1] + 0xFFFFFFC0u;
|
|
/* 028D4C20 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D4C20 */ cpu->r[1] = _t0;
|
|
/* 028D4C24 */ /* nop */
|
|
/* 028D4C28 */ cpu->r[0] = cpu->lr;
|
|
/* 028D4C2C */ _t1 = cpu->r[1] + 0x00000044u;
|
|
/* 028D4C2C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D4C30 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D4C30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D4C34 */ cpu->r[27] = cpu->r[3];
|
|
/* 028D4C38 */ cpu->r[30] = cpu->r[5];
|
|
/* 028D4C3C */ cpu->r[28] = cpu->r[6];
|
|
/* 028D4C40 */ _t2 = cpu->r[7] + 0x00000000u;
|
|
/* 028D4C40 */ cpu->r[31] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028D4C44 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4C44 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D4C44 */ if (_t4) goto L_028D4D74; else goto L_028D4C48;
|
|
L_028D4C48: ; // 0x28d4c48
|
|
/* 028D4C48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D4C4C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4C4C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D4C4C */ if (_t6) goto L_028D4D74; else goto L_028D4C50;
|
|
L_028D4C50: ; // 0x28d4c50
|
|
/* 028D4C50 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D4C54 */ Gambit_fn_028BF038(cpu);
|
|
/* 028D4C58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4C5C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4C5C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D4C5C */ if (_t8) goto L_028D4D74; else goto L_028D4C60;
|
|
L_028D4C60: ; // 0x28d4c60
|
|
/* 028D4C60 */ _t9 = cpu->r[30] + 0x00000000u;
|
|
/* 028D4C60 */ cpu->r[7] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D4C64 */ _t10 = cpu->r[7] + 0x00000034u;
|
|
/* 028D4C64 */ cpu->r[8] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D4C68 */ cpu->ctr = cpu->r[8];
|
|
/* 028D4C6C */ cpu->r[3] = cpu->r[30];
|
|
/* 028D4C70 */ cpu->r[4] = cpu->r[29];
|
|
/* 028D4C74 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4C78 */ _t11 = cpu->r[27] + 0x00000000u;
|
|
/* 028D4C78 */ cpu->r[0] = rbrew_read8(cpu->mem, _t11);
|
|
/* 028D4C7C */ cpu->r[26] = 0x00000000u;
|
|
/* 028D4C80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D4C84 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D4C88 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4C88 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D4C88 */ if (_t13) goto L_028D4CC8; else goto L_028D4C8C;
|
|
L_028D4C8C: ; // 0x28d4c8c
|
|
/* 028D4C8C */ cpu->r[12] = 0x10140000u;
|
|
/* 028D4C90 */ _t14 = cpu->r[12] + 0xFFFFA8F0u;
|
|
/* 028D4C90 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028D4C94 */ cpu->f[2] = cpu->f[1];
|
|
/* 028D4C98 */ Gambit_fn_028BDC2C(cpu);
|
|
/* 028D4C9C */ Gambit_fn_028C2A3C(cpu);
|
|
/* 028D4CA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4CA4 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4CA4 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D4CA4 */ if (_t16) goto L_028D4D74; else goto L_028D4CA8;
|
|
L_028D4CA8: ; // 0x28d4ca8
|
|
/* 028D4CA8 */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 028D4CA8 */ rbrew_write32(cpu->mem, _t17, cpu->r[26]);
|
|
/* 028D4CAC */ cpu->r[10] = 0x00000003u;
|
|
/* 028D4CB0 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D4CB4 */ cpu->r[6] = cpu->r[29];
|
|
/* 028D4CB8 */ cpu->r[5] = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D4CBC */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D4CBC */ rbrew_write32(cpu->mem, _t18, cpu->r[10]);
|
|
/* 028D4CC0 */ Gambit_fn_028CE390(cpu);
|
|
/* 028D4CC4 */ goto L_028D4D74;
|
|
L_028D4CC8: ; // 0x28d4cc8
|
|
/* 028D4CC8 */ _t19 = cpu->r[27] + 0x00000004u;
|
|
/* 028D4CC8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D4CCC */ _t20 = cpu->r[1] + 0x00000024u;
|
|
/* 028D4CCC */ rbrew_write32(cpu->mem, _t20, cpu->r[31]);
|
|
/* 028D4CD0 */ cpu->r[5] = cpu->r[1] + 0x00000024u;
|
|
/* 028D4CD4 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028D4CD8 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028D4CD8 */ rbrew_write32(cpu->mem, _t21, cpu->r[11]);
|
|
/* 028D4CDC */ Gambit_fn_028BF304(cpu);
|
|
/* 028D4CE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028D4CE4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D4CE8 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4CE8 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028D4CE8 */ if (_t23) goto L_028D4D20; else goto L_028D4CEC;
|
|
L_028D4CEC: ; // 0x28d4cec
|
|
/* 028D4CEC */ _t24 = cpu->r[27] + 0x00000004u;
|
|
/* 028D4CEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D4CF0 */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 028D4CF4 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D4CF8 */ _t25 = cpu->r[1] + 0x00000014u;
|
|
/* 028D4CF8 */ rbrew_write32(cpu->mem, _t25, cpu->r[0]);
|
|
/* 028D4CFC */ Gambit_fn_028BEE60(cpu);
|
|
/* 028D4D00 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4D04 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4D04 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028D4D04 */ if (_t27) goto L_028D4D20; else goto L_028D4D08;
|
|
L_028D4D08: ; // 0x28d4d08
|
|
/* 028D4D08 */ _t28 = cpu->r[28] + 0x00000000u;
|
|
/* 028D4D08 */ cpu->r[11] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D4D0C */ _t29 = cpu->r[11] + 0x00000014u;
|
|
/* 028D4D0C */ cpu->r[12] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028D4D10 */ cpu->ctr = cpu->r[12];
|
|
/* 028D4D14 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D4D18 */ cpu->r[4] = cpu->r[29];
|
|
/* 028D4D1C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D4D20: ; // 0x28d4d20
|
|
/* 028D4D20 */ Gambit_fn_028C2A3C(cpu);
|
|
/* 028D4D24 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D4D24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D4D28 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4D28 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028D4D28 */ if (_t31) goto L_028D4D74; else goto L_028D4D2C;
|
|
L_028D4D2C: ; // 0x28d4d2c
|
|
/* 028D4D2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D4D30 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4D30 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028D4D30 */ if (_t33) goto L_028D4D74; else goto L_028D4D34;
|
|
L_028D4D34: ; // 0x28d4d34
|
|
/* 028D4D34 */ _t34 = cpu->r[27] + 0x00000004u;
|
|
/* 028D4D34 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028D4D38 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D4D3C */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 028D4D40 */ _t35 = cpu->r[1] + 0x00000018u;
|
|
/* 028D4D40 */ rbrew_write32(cpu->mem, _t35, cpu->r[26]);
|
|
/* 028D4D44 */ cpu->r[30] = 0x00000001u;
|
|
/* 028D4D48 */ _t36 = cpu->r[1] + 0x00000020u;
|
|
/* 028D4D48 */ rbrew_write32(cpu->mem, _t36, cpu->r[0]);
|
|
/* 028D4D4C */ Gambit_fn_028BEE60(cpu);
|
|
/* 028D4D50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4D54 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4D54 */ _t38 = _t37 & 0x00000001u;
|
|
/* 028D4D54 */ if (_t38) goto L_028D4D5C; else goto L_028D4D58;
|
|
L_028D4D58: ; // 0x28d4d58
|
|
/* 028D4D58 */ cpu->r[30] = 0x00000002u;
|
|
L_028D4D5C: ; // 0x28d4d5c
|
|
/* 028D4D5C */ cpu->r[6] = cpu->r[29];
|
|
/* 028D4D60 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D4D64 */ cpu->r[4] = cpu->r[1] + 0x00000018u;
|
|
/* 028D4D68 */ cpu->r[5] = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D4D6C */ _t39 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D4D6C */ rbrew_write32(cpu->mem, _t39, cpu->r[30]);
|
|
/* 028D4D70 */ Gambit_fn_028CE390(cpu);
|
|
L_028D4D74: ; // 0x28d4d74
|
|
/* 028D4D74 */ /* nop */
|
|
/* 028D4D78 */ _t40 = cpu->r[1] + 0x00000044u;
|
|
/* 028D4D78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028D4D7C */ cpu->lr = cpu->r[0];
|
|
/* 028D4D80 */ cpu->r[1] = cpu->r[1] + 0x00000040u;
|
|
/* 028D4D84 */ return;
|
|
}
|
|
|
|
// fn_028D4D88 @ 0x28d4d88
|
|
void Gambit_fn_028D4D88(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45;
|
|
|
|
L_028D4D88: ; // 0x28d4d88
|
|
/* 028D4D88 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 028D4D88 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D4D88 */ cpu->r[1] = _t0;
|
|
/* 028D4D8C */ cpu->r[0] = cpu->lr;
|
|
/* 028D4D90 */ /* nop */
|
|
/* 028D4D94 */ cpu->r[24] = cpu->r[3];
|
|
/* 028D4D98 */ cpu->r[28] = cpu->r[4];
|
|
/* 028D4D98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028D4D9C */ cpu->r[30] = cpu->r[5];
|
|
/* 028D4DA0 */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 028D4DA0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D4DA4 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4DA4 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028D4DA4 */ if (_t3) goto L_028D4DCC; else goto L_028D4DA8;
|
|
L_028D4DA8: ; // 0x28d4da8
|
|
/* 028D4DA8 */ _t4 = cpu->r[28] + 0x00000000u;
|
|
/* 028D4DA8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D4DAC */ _t5 = cpu->r[9] + 0x0000008Cu;
|
|
/* 028D4DAC */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D4DB0 */ cpu->ctr = cpu->r[0];
|
|
/* 028D4DB4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D4DB8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4DBC */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 028D4DBC */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D4DC0 */ _t7 = cpu->r[12] + 0x00000014u;
|
|
/* 028D4DC0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D4DC4 */ cpu->ctr = cpu->r[5];
|
|
/* 028D4DC8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D4DCC: ; // 0x28d4dcc
|
|
/* 028D4DCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D4DD0 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4DD0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D4DD0 */ if (_t9) goto L_028D4DF8; else goto L_028D4DD4;
|
|
L_028D4DD4: ; // 0x28d4dd4
|
|
/* 028D4DD4 */ _t10 = cpu->r[30] + 0x00000000u;
|
|
/* 028D4DD4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D4DD8 */ _t11 = cpu->r[6] + 0x0000008Cu;
|
|
/* 028D4DD8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D4DDC */ cpu->ctr = cpu->r[7];
|
|
/* 028D4DE0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D4DE4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4DE8 */ _t12 = cpu->r[3] + 0x00000000u;
|
|
/* 028D4DE8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D4DEC */ _t13 = cpu->r[8] + 0x00000014u;
|
|
/* 028D4DEC */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D4DF0 */ cpu->ctr = cpu->r[9];
|
|
/* 028D4DF4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D4DF8: ; // 0x28d4df8
|
|
/* 028D4DF8 */ _t14 = cpu->r[28] + 0x00000000u;
|
|
/* 028D4DF8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D4DFC */ _t15 = cpu->r[10] + 0x00000044u;
|
|
/* 028D4DFC */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D4E00 */ cpu->ctr = cpu->r[0];
|
|
/* 028D4E04 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D4E08 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4E0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4E10 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D4E14 */ cpu->r[27] = cpu->r[28];
|
|
/* 028D4E18 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4E18 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D4E18 */ if (_t17) goto L_028D4E48; else goto L_028D4E1C;
|
|
L_028D4E1C: ; // 0x28d4e1c
|
|
/* 028D4E1C */ _t18 = cpu->r[27] + 0x00000000u;
|
|
/* 028D4E1C */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D4E20 */ _t19 = cpu->r[12] + 0x0000005Cu;
|
|
/* 028D4E20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D4E24 */ cpu->ctr = cpu->r[0];
|
|
/* 028D4E28 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D4E2C */ cpu->r[3] = cpu->r[27];
|
|
/* 028D4E30 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4E34 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000000u);
|
|
/* 028D4E38 */ cpu->r[29] = 0x00000000u;
|
|
/* 028D4E3C */ cpu->r[26] = cpu->r[3];
|
|
/* 028D4E40 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4E40 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028D4E40 */ if (_t21) goto L_028D4EB8; else goto L_028D4E44;
|
|
L_028D4E44: ; // 0x28d4e44
|
|
/* 028D4E44 */ goto L_028D4E58;
|
|
L_028D4E48: ; // 0x28d4e48
|
|
/* 028D4E48 */ cpu->r[26] = 0x00000000u;
|
|
/* 028D4E4C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000000u);
|
|
/* 028D4E50 */ cpu->r[29] = cpu->r[26];
|
|
/* 028D4E54 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4E54 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028D4E54 */ if (_t23) goto L_028D4EB8; else goto L_028D4E58;
|
|
L_028D4E58: ; // 0x28d4e58
|
|
/* 028D4E58 */ cpu->r[25] = 0x00020000u;
|
|
L_028D4E5C: ; // 0x28d4e5c
|
|
/* 028D4E5C */ cpu->r[7] = cpu->r[1] + 0x00000008u;
|
|
/* 028D4E60 */ cpu->r[3] = cpu->r[24];
|
|
/* 028D4E64 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D4E68 */ cpu->r[5] = cpu->r[28];
|
|
/* 028D4E6C */ cpu->r[6] = cpu->r[30];
|
|
/* 028D4E70 */ _t24 = cpu->r[1] + 0x00000008u;
|
|
/* 028D4E70 */ rbrew_write32(cpu->mem, _t24, cpu->r[25]);
|
|
/* 028D4E74 */ Gambit_fn_028D4C20(cpu);
|
|
/* 028D4E78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028D4E7C */ cpu->r[31] = cpu->r[26];
|
|
/* 028D4E80 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4E80 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028D4E80 */ if (_t26) goto L_028D4EAC; else goto L_028D4E84;
|
|
L_028D4E84: ; // 0x28d4e84
|
|
/* 028D4E84 */ _t27 = cpu->r[27] + 0x00000000u;
|
|
/* 028D4E84 */ cpu->r[10] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D4E88 */ _t28 = cpu->r[10] + 0x0000005Cu;
|
|
/* 028D4E88 */ cpu->r[11] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D4E8C */ cpu->ctr = cpu->r[11];
|
|
/* 028D4E90 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D4E94 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D4E98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4E9C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 028D4EA0 */ cpu->r[26] = cpu->r[3];
|
|
/* 028D4EA4 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4EA4 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028D4EA4 */ if (_t30) goto L_028D4EA8; else goto L_028D4E5C;
|
|
L_028D4EA8: ; // 0x28d4ea8
|
|
/* 028D4EA8 */ goto L_028D4EB8;
|
|
L_028D4EAC: ; // 0x28d4eac
|
|
/* 028D4EAC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 028D4EB0 */ cpu->r[26] = 0x00000000u;
|
|
/* 028D4EB4 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4EB4 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028D4EB4 */ if (_t32) goto L_028D4EB8; else goto L_028D4E5C;
|
|
L_028D4EB8: ; // 0x28d4eb8
|
|
/* 028D4EB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D4EBC */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4EBC */ _t34 = _t33 & 0x00000001u;
|
|
/* 028D4EBC */ if (_t34) goto L_028D4EE4; else goto L_028D4EC0;
|
|
L_028D4EC0: ; // 0x28d4ec0
|
|
/* 028D4EC0 */ _t35 = cpu->r[30] + 0x00000000u;
|
|
/* 028D4EC0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028D4EC4 */ _t36 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D4EC4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028D4EC8 */ cpu->ctr = cpu->r[0];
|
|
/* 028D4ECC */ cpu->r[3] = cpu->r[30];
|
|
/* 028D4ED0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4ED4 */ _t37 = cpu->r[3] + 0x00000000u;
|
|
/* 028D4ED4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028D4ED8 */ _t38 = cpu->r[5] + 0x0000001Cu;
|
|
/* 028D4ED8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028D4EDC */ cpu->ctr = cpu->r[6];
|
|
/* 028D4EE0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D4EE4: ; // 0x28d4ee4
|
|
/* 028D4EE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028D4EE8 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4EE8 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028D4EE8 */ if (_t40) goto L_028D4F10; else goto L_028D4EEC;
|
|
L_028D4EEC: ; // 0x28d4eec
|
|
/* 028D4EEC */ _t41 = cpu->r[28] + 0x00000000u;
|
|
/* 028D4EEC */ cpu->r[7] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028D4EF0 */ _t42 = cpu->r[7] + 0x0000008Cu;
|
|
/* 028D4EF0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028D4EF4 */ cpu->ctr = cpu->r[8];
|
|
/* 028D4EF8 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D4EFC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4F00 */ _t43 = cpu->r[3] + 0x00000000u;
|
|
/* 028D4F00 */ cpu->r[10] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028D4F04 */ _t44 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028D4F04 */ cpu->r[11] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028D4F08 */ cpu->ctr = cpu->r[11];
|
|
/* 028D4F0C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D4F10: ; // 0x28d4f10
|
|
/* 028D4F10 */ /* nop */
|
|
/* 028D4F14 */ _t45 = cpu->r[1] + 0x00000034u;
|
|
/* 028D4F14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028D4F18 */ cpu->lr = cpu->r[0];
|
|
/* 028D4F1C */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 028D4F20 */ return;
|
|
}
|
|
|
|
// fn_028D4F24 @ 0x28d4f24
|
|
void Gambit_fn_028D4F24(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54;
|
|
|
|
L_028D4F24: ; // 0x28d4f24
|
|
/* 028D4F24 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028D4F24 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D4F24 */ cpu->r[1] = _t0;
|
|
/* 028D4F28 */ cpu->r[0] = cpu->lr;
|
|
/* 028D4F2C */ /* nop */
|
|
/* 028D4F30 */ cpu->r[27] = cpu->r[3];
|
|
/* 028D4F34 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D4F38 */ cpu->r[30] = cpu->r[5];
|
|
/* 028D4F38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D4F3C */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D4F3C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D4F40 */ cpu->r[29] = cpu->r[6];
|
|
/* 028D4F44 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4F44 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028D4F44 */ if (_t3) goto L_028D5134; else goto L_028D4F48;
|
|
L_028D4F48: ; // 0x28d4f48
|
|
/* 028D4F48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D4F4C */ _t4 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D4F4C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D4F4C */ if (_t5) goto L_028D4FA4; else goto L_028D4F50;
|
|
L_028D4F50: ; // 0x28d4f50
|
|
/* 028D4F50 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D4F50 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D4F50 */ if (_t7) goto L_028D4F54; else goto L_028D4F80;
|
|
L_028D4F54: ; // 0x28d4f54
|
|
/* 028D4F54 */ cpu->r[6] = 0x80000000u;
|
|
/* 028D4F58 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D4F5C */ cpu->r[6] = cpu->r[6] + 0xFFFFFFFFu;
|
|
/* 028D4F60 */ cpu->r[4] = cpu->r[29];
|
|
/* 028D4F64 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D4F68 */ Gambit_fn_028D49D0(cpu);
|
|
/* 028D4F6C */ /* nop */
|
|
/* 028D4F70 */ _t8 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D4F70 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D4F74 */ cpu->lr = cpu->r[0];
|
|
/* 028D4F78 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D4F7C */ return;
|
|
L_028D4F80: ; // 0x28d4f80
|
|
/* 028D4F80 */ cpu->r[5] = cpu->r[29];
|
|
/* 028D4F84 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D4F88 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D4F8C */ Gambit_fn_028D4D88(cpu);
|
|
/* 028D4F90 */ /* nop */
|
|
/* 028D4F94 */ _t9 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D4F94 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D4F98 */ cpu->lr = cpu->r[0];
|
|
/* 028D4F9C */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D4FA0 */ return;
|
|
L_028D4FA4: ; // 0x28d4fa4
|
|
/* 028D4FA4 */ _t10 = cpu->r[30] + 0x00000000u;
|
|
/* 028D4FA4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D4FA8 */ _t11 = cpu->r[11] + 0x00000074u;
|
|
/* 028D4FA8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D4FAC */ cpu->ctr = cpu->r[5];
|
|
/* 028D4FB0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D4FB4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D4FB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D4FBC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D4FBC */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D4FBC */ if (_t13) goto L_028D4FC0; else goto L_028D4FE8;
|
|
L_028D4FC0: ; // 0x28d4fc0
|
|
/* 028D4FC0 */ cpu->r[6] = cpu->r[31];
|
|
/* 028D4FC4 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D4FC8 */ cpu->r[4] = cpu->r[29];
|
|
/* 028D4FCC */ cpu->r[3] = cpu->r[27];
|
|
/* 028D4FD0 */ Gambit_fn_028D49D0(cpu);
|
|
/* 028D4FD4 */ /* nop */
|
|
/* 028D4FD8 */ _t14 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D4FD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D4FDC */ cpu->lr = cpu->r[0];
|
|
/* 028D4FE0 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D4FE4 */ return;
|
|
L_028D4FE8: ; // 0x28d4fe8
|
|
/* 028D4FE8 */ cpu->r[31] = cpu->r[3] - cpu->r[31];
|
|
/* 028D4FE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D4FEC */ _t15 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D4FEC */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D4FEC */ if (_t16) goto L_028D501C; else goto L_028D4FF0;
|
|
L_028D4FF0: ; // 0x28d4ff0
|
|
/* 028D4FF0 */ _t17 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D4FF0 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D4FF0 */ if (_t18) goto L_028D4FF4; else goto L_028D5134;
|
|
L_028D4FF4: ; // 0x28d4ff4
|
|
/* 028D4FF4 */ cpu->r[6] = (uint32_t)(-(int32_t)cpu->r[31]);
|
|
/* 028D4FF8 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D4FFC */ cpu->r[4] = cpu->r[29];
|
|
/* 028D5000 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D5004 */ Gambit_fn_028D49D0(cpu);
|
|
/* 028D5008 */ /* nop */
|
|
/* 028D500C */ _t19 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D500C */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D5010 */ cpu->lr = cpu->r[0];
|
|
/* 028D5014 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D5018 */ return;
|
|
L_028D501C: ; // 0x28d501c
|
|
/* 028D501C */ _t20 = cpu->r[30] + 0x00000000u;
|
|
/* 028D501C */ cpu->r[8] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D5020 */ _t21 = cpu->r[8] + 0x0000008Cu;
|
|
/* 028D5020 */ cpu->r[9] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D5024 */ cpu->ctr = cpu->r[9];
|
|
/* 028D5028 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D502C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5030 */ _t22 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5030 */ cpu->r[10] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D5034 */ _t23 = cpu->r[10] + 0x00000014u;
|
|
/* 028D5034 */ cpu->r[11] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D5038 */ cpu->ctr = cpu->r[11];
|
|
/* 028D503C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5040 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D5044 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5044 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D5044 */ if (_t25) goto L_028D506C; else goto L_028D5048;
|
|
L_028D5048: ; // 0x28d5048
|
|
/* 028D5048 */ _t26 = cpu->r[29] + 0x00000000u;
|
|
/* 028D5048 */ cpu->r[12] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D504C */ _t27 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D504C */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D5050 */ cpu->ctr = cpu->r[0];
|
|
/* 028D5054 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D5058 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D505C */ _t28 = cpu->r[3] + 0x00000000u;
|
|
/* 028D505C */ cpu->r[8] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D5060 */ _t29 = cpu->r[8] + 0x00000014u;
|
|
/* 028D5060 */ cpu->r[9] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028D5064 */ cpu->ctr = cpu->r[9];
|
|
/* 028D5068 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D506C: ; // 0x28d506c
|
|
/* 028D506C */ _t30 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028D506C */ cpu->r[10] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028D5070 */ _t31 = cpu->r[10] + 0x00000014u;
|
|
/* 028D5070 */ cpu->r[11] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028D5074 */ cpu->ctr = cpu->r[11];
|
|
/* 028D5078 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D507C */ cpu->r[4] = cpu->r[30];
|
|
/* 028D5080 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5084 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D5088 */ _t32 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D5088 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028D5088 */ if (_t33) goto L_028D508C; else goto L_028D50E4;
|
|
L_028D508C: ; // 0x28d508c
|
|
/* 028D508C */ _t34 = cpu->r[30] + 0x00000000u;
|
|
/* 028D508C */ cpu->r[12] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028D5090 */ _t35 = cpu->r[12] + 0x0000004Cu;
|
|
/* 028D5090 */ cpu->r[0] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028D5094 */ cpu->ctr = cpu->r[0];
|
|
/* 028D5098 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D509C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D50A0 */ cpu->r[28] = cpu->r[3];
|
|
/* 028D50A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028D50A4 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D50A4 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028D50A4 */ if (_t37) goto L_028D50DC; else goto L_028D50A8;
|
|
L_028D50A8: ; // 0x28d50a8
|
|
/* 028D50A8 */ _t38 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028D50A8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028D50AC */ _t39 = cpu->r[5] + 0x0000001Cu;
|
|
/* 028D50AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028D50B0 */ cpu->ctr = cpu->r[0];
|
|
/* 028D50B4 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D50B8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D50BC */ _t40 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D50BC */ rbrew_write32(cpu->mem, _t40, cpu->r[3]);
|
|
/* 028D50C0 */ cpu->r[6] = cpu->r[29];
|
|
/* 028D50C4 */ cpu->r[7] = cpu->r[1] + 0x00000008u;
|
|
/* 028D50C8 */ _t41 = cpu->r[1] + 0x00000008u;
|
|
/* 028D50C8 */ rbrew_write32(cpu->mem, _t41, cpu->r[3]);
|
|
/* 028D50CC */ cpu->r[4] = cpu->r[28];
|
|
/* 028D50D0 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D50D4 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D50D8 */ Gambit_fn_028D4C20(cpu);
|
|
L_028D50DC: ; // 0x28d50dc
|
|
/* 028D50DC */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028D50DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D50E0 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D50E0 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028D50E0 */ if (_t43) goto L_028D50E4; else goto L_028D508C;
|
|
L_028D50E4: ; // 0x28d50e4
|
|
/* 028D50E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D50E8 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D50E8 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028D50E8 */ if (_t45) goto L_028D5110; else goto L_028D50EC;
|
|
L_028D50EC: ; // 0x28d50ec
|
|
/* 028D50EC */ _t46 = cpu->r[29] + 0x00000000u;
|
|
/* 028D50EC */ cpu->r[7] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028D50F0 */ _t47 = cpu->r[7] + 0x0000008Cu;
|
|
/* 028D50F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028D50F4 */ cpu->ctr = cpu->r[0];
|
|
/* 028D50F8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D50FC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5100 */ _t48 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5100 */ cpu->r[9] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028D5104 */ _t49 = cpu->r[9] + 0x0000001Cu;
|
|
/* 028D5104 */ cpu->r[10] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028D5108 */ cpu->ctr = cpu->r[10];
|
|
/* 028D510C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D5110: ; // 0x28d5110
|
|
/* 028D5110 */ _t50 = cpu->r[30] + 0x00000000u;
|
|
/* 028D5110 */ cpu->r[12] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028D5114 */ _t51 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D5114 */ cpu->r[0] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028D5118 */ cpu->ctr = cpu->r[0];
|
|
/* 028D511C */ cpu->r[3] = cpu->r[30];
|
|
/* 028D5120 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5124 */ _t52 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5124 */ cpu->r[6] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028D5128 */ _t53 = cpu->r[6] + 0x0000001Cu;
|
|
/* 028D5128 */ cpu->r[7] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028D512C */ cpu->ctr = cpu->r[7];
|
|
/* 028D5130 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D5134: ; // 0x28d5134
|
|
/* 028D5134 */ /* nop */
|
|
/* 028D5138 */ _t54 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D5138 */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028D513C */ cpu->lr = cpu->r[0];
|
|
/* 028D5140 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D5144 */ return;
|
|
}
|
|
|
|
// fn_028D5148 @ 0x28d5148
|
|
void Gambit_fn_028D5148(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D5148: ; // 0x28d5148
|
|
/* 028D5148 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D514C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D514C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D514C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D514C */ goto L_028D5150;
|
|
L_028D5150: ; // 0x28d5150
|
|
/* 028D5150 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D5150 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D5154 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5154 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D5154 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D5154 */ goto L_028D5158;
|
|
L_028D5158: ; // 0x28d5158
|
|
/* 028D5158 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D515C @ 0x28d515c
|
|
void Gambit_fn_028D515C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27;
|
|
|
|
L_028D515C: ; // 0x28d515c
|
|
/* 028D515C */ cpu->r[0] = cpu->lr;
|
|
/* 028D5160 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D5160 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D5160 */ cpu->r[1] = _t0;
|
|
/* 028D5164 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D5164 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D5168 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5168 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D516C */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 028D516C */ cpu->r[11] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D5170 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000001u);
|
|
/* 028D5174 */ cpu->r[31] = 0x00000000u;
|
|
/* 028D5178 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5178 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D5178 */ if (_t5) goto L_028D5244; else goto L_028D517C;
|
|
L_028D517C: ; // 0x28d517c
|
|
/* 028D517C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D517C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D517C */ if (_t7) goto L_028D5198; else goto L_028D5180;
|
|
L_028D5180: ; // 0x28d5180
|
|
/* 028D5180 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000003u);
|
|
/* 028D5184 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5184 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D5184 */ if (_t9) goto L_028D51C4; else goto L_028D5188;
|
|
L_028D5188: ; // 0x28d5188
|
|
/* 028D5188 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5188 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D5188 */ if (_t11) goto L_028D51F0; else goto L_028D518C;
|
|
L_028D518C: ; // 0x28d518c
|
|
/* 028D518C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000004u);
|
|
/* 028D5190 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5190 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D5190 */ if (_t13) goto L_028D521C; else goto L_028D5194;
|
|
L_028D5194: ; // 0x28d5194
|
|
/* 028D5194 */ goto L_028D5244;
|
|
L_028D5198: ; // 0x28d5198
|
|
/* 028D5198 */ cpu->r[3] = 0x00000010u;
|
|
/* 028D519C */ cpu->r[5] = 0x00000004u;
|
|
/* 028D51A0 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D51A4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D51A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D51A8 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D51A8 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028D51A8 */ if (_t15) goto L_028D5244; else goto L_028D51AC;
|
|
L_028D51AC: ; // 0x28d51ac
|
|
/* 028D51AC */ cpu->r[3] = cpu->r[31];
|
|
/* 028D51B0 */ Gambit_fn_028D496C(cpu);
|
|
/* 028D51B4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D51B8 */ cpu->r[0] = cpu->r[0] + 0xFFFFC1C0u;
|
|
/* 028D51BC */ _t16 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D51BC */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 028D51C0 */ goto L_028D5244;
|
|
L_028D51C4: ; // 0x28d51c4
|
|
/* 028D51C4 */ cpu->r[3] = 0x00000010u;
|
|
/* 028D51C8 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D51CC */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D51D0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D51D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D51D4 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D51D4 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D51D4 */ if (_t18) goto L_028D5244; else goto L_028D51D8;
|
|
L_028D51D8: ; // 0x28d51d8
|
|
/* 028D51D8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D51DC */ Gambit_fn_028D496C(cpu);
|
|
/* 028D51E0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D51E4 */ cpu->r[12] = cpu->r[12] + 0xFFFFC1E0u;
|
|
/* 028D51E8 */ _t19 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D51E8 */ rbrew_write32(cpu->mem, _t19, cpu->r[12]);
|
|
/* 028D51EC */ goto L_028D5244;
|
|
L_028D51F0: ; // 0x28d51f0
|
|
/* 028D51F0 */ cpu->r[3] = 0x00000010u;
|
|
/* 028D51F4 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D51F8 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D51FC */ cpu->r[31] = cpu->r[3];
|
|
/* 028D51FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D5200 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5200 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028D5200 */ if (_t21) goto L_028D5244; else goto L_028D5204;
|
|
L_028D5204: ; // 0x28d5204
|
|
/* 028D5204 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D5208 */ Gambit_fn_028D496C(cpu);
|
|
/* 028D520C */ cpu->r[0] = 0x10140000u;
|
|
/* 028D5210 */ cpu->r[0] = cpu->r[0] + 0xFFFFC180u;
|
|
/* 028D5214 */ _t22 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D5214 */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
/* 028D5218 */ goto L_028D5244;
|
|
L_028D521C: ; // 0x28d521c
|
|
/* 028D521C */ cpu->r[3] = 0x00000010u;
|
|
/* 028D5220 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D5224 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D5228 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D5228 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D522C */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D522C */ _t24 = _t23 & 0x00000001u;
|
|
/* 028D522C */ if (_t24) goto L_028D5244; else goto L_028D5230;
|
|
L_028D5230: ; // 0x28d5230
|
|
/* 028D5230 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D5234 */ Gambit_fn_028D496C(cpu);
|
|
/* 028D5238 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D523C */ cpu->r[12] = cpu->r[12] + 0xFFFFC1A0u;
|
|
/* 028D5240 */ _t25 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D5240 */ rbrew_write32(cpu->mem, _t25, cpu->r[12]);
|
|
L_028D5244: ; // 0x28d5244
|
|
/* 028D5244 */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5244 */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D5248 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D524C */ _t27 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D524C */ cpu->r[31] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D5250 */ cpu->lr = cpu->r[0];
|
|
/* 028D5254 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D5258 */ return;
|
|
}
|
|
|
|
// fn_028D5160 @ 0x28d5160
|
|
void Gambit_fn_028D5160(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27;
|
|
|
|
L_028D5160: ; // 0x28d5160
|
|
/* 028D5160 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D5160 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D5160 */ cpu->r[1] = _t0;
|
|
/* 028D5164 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D5164 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D5168 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5168 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D516C */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 028D516C */ cpu->r[11] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D5170 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000001u);
|
|
/* 028D5174 */ cpu->r[31] = 0x00000000u;
|
|
/* 028D5178 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5178 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D5178 */ if (_t5) goto L_028D5244; else goto L_028D517C;
|
|
L_028D517C: ; // 0x28d517c
|
|
/* 028D517C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D517C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D517C */ if (_t7) goto L_028D5198; else goto L_028D5180;
|
|
L_028D5180: ; // 0x28d5180
|
|
/* 028D5180 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000003u);
|
|
/* 028D5184 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5184 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D5184 */ if (_t9) goto L_028D51C4; else goto L_028D5188;
|
|
L_028D5188: ; // 0x28d5188
|
|
/* 028D5188 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5188 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D5188 */ if (_t11) goto L_028D51F0; else goto L_028D518C;
|
|
L_028D518C: ; // 0x28d518c
|
|
/* 028D518C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000004u);
|
|
/* 028D5190 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5190 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D5190 */ if (_t13) goto L_028D521C; else goto L_028D5194;
|
|
L_028D5194: ; // 0x28d5194
|
|
/* 028D5194 */ goto L_028D5244;
|
|
L_028D5198: ; // 0x28d5198
|
|
/* 028D5198 */ cpu->r[3] = 0x00000010u;
|
|
/* 028D519C */ cpu->r[5] = 0x00000004u;
|
|
/* 028D51A0 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D51A4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D51A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D51A8 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D51A8 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028D51A8 */ if (_t15) goto L_028D5244; else goto L_028D51AC;
|
|
L_028D51AC: ; // 0x28d51ac
|
|
/* 028D51AC */ cpu->r[3] = cpu->r[31];
|
|
/* 028D51B0 */ Gambit_fn_028D496C(cpu);
|
|
/* 028D51B4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D51B8 */ cpu->r[0] = cpu->r[0] + 0xFFFFC1C0u;
|
|
/* 028D51BC */ _t16 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D51BC */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 028D51C0 */ goto L_028D5244;
|
|
L_028D51C4: ; // 0x28d51c4
|
|
/* 028D51C4 */ cpu->r[3] = 0x00000010u;
|
|
/* 028D51C8 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D51CC */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D51D0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D51D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D51D4 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D51D4 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D51D4 */ if (_t18) goto L_028D5244; else goto L_028D51D8;
|
|
L_028D51D8: ; // 0x28d51d8
|
|
/* 028D51D8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D51DC */ Gambit_fn_028D496C(cpu);
|
|
/* 028D51E0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D51E4 */ cpu->r[12] = cpu->r[12] + 0xFFFFC1E0u;
|
|
/* 028D51E8 */ _t19 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D51E8 */ rbrew_write32(cpu->mem, _t19, cpu->r[12]);
|
|
/* 028D51EC */ goto L_028D5244;
|
|
L_028D51F0: ; // 0x28d51f0
|
|
/* 028D51F0 */ cpu->r[3] = 0x00000010u;
|
|
/* 028D51F4 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D51F8 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D51FC */ cpu->r[31] = cpu->r[3];
|
|
/* 028D51FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D5200 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5200 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028D5200 */ if (_t21) goto L_028D5244; else goto L_028D5204;
|
|
L_028D5204: ; // 0x28d5204
|
|
/* 028D5204 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D5208 */ Gambit_fn_028D496C(cpu);
|
|
/* 028D520C */ cpu->r[0] = 0x10140000u;
|
|
/* 028D5210 */ cpu->r[0] = cpu->r[0] + 0xFFFFC180u;
|
|
/* 028D5214 */ _t22 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D5214 */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
/* 028D5218 */ goto L_028D5244;
|
|
L_028D521C: ; // 0x28d521c
|
|
/* 028D521C */ cpu->r[3] = 0x00000010u;
|
|
/* 028D5220 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D5224 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D5228 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D5228 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D522C */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D522C */ _t24 = _t23 & 0x00000001u;
|
|
/* 028D522C */ if (_t24) goto L_028D5244; else goto L_028D5230;
|
|
L_028D5230: ; // 0x28d5230
|
|
/* 028D5230 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D5234 */ Gambit_fn_028D496C(cpu);
|
|
/* 028D5238 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D523C */ cpu->r[12] = cpu->r[12] + 0xFFFFC1A0u;
|
|
/* 028D5240 */ _t25 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D5240 */ rbrew_write32(cpu->mem, _t25, cpu->r[12]);
|
|
L_028D5244: ; // 0x28d5244
|
|
/* 028D5244 */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5244 */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D5248 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D524C */ _t27 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D524C */ cpu->r[31] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D5250 */ cpu->lr = cpu->r[0];
|
|
/* 028D5254 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D5258 */ return;
|
|
}
|
|
|
|
// fn_028D525C @ 0x28d525c
|
|
void Gambit_fn_028D525C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29;
|
|
|
|
L_028D525C: ; // 0x28d525c
|
|
/* 028D525C */ cpu->r[0] = cpu->lr;
|
|
/* 028D5260 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D5260 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D5260 */ cpu->r[1] = _t0;
|
|
/* 028D5264 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D5264 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D5268 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D5268 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D526C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D526C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D5270 */ _t4 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5270 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D5274 */ cpu->r[31] = 0x00000000u;
|
|
/* 028D5278 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000001u);
|
|
/* 028D527C */ cpu->r[30] = cpu->r[4];
|
|
/* 028D5280 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5280 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D5280 */ if (_t6) goto L_028D5320; else goto L_028D5284;
|
|
L_028D5284: ; // 0x28d5284
|
|
/* 028D5284 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5284 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D5284 */ if (_t8) goto L_028D52A0; else goto L_028D5288;
|
|
L_028D5288: ; // 0x28d5288
|
|
/* 028D5288 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000003u);
|
|
/* 028D528C */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D528C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D528C */ if (_t10) goto L_028D52C0; else goto L_028D5290;
|
|
L_028D5290: ; // 0x28d5290
|
|
/* 028D5290 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5290 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D5290 */ if (_t12) goto L_028D52E0; else goto L_028D5294;
|
|
L_028D5294: ; // 0x28d5294
|
|
/* 028D5294 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000004u);
|
|
/* 028D5298 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5298 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D5298 */ if (_t14) goto L_028D5304; else goto L_028D529C;
|
|
L_028D529C: ; // 0x28d529c
|
|
/* 028D529C */ goto L_028D5320;
|
|
L_028D52A0: ; // 0x28d52a0
|
|
/* 028D52A0 */ cpu->r[31] = cpu->r[30];
|
|
/* 028D52A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D52A4 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D52A4 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D52A4 */ if (_t16) goto L_028D5320; else goto L_028D52A8;
|
|
L_028D52A8: ; // 0x28d52a8
|
|
/* 028D52A8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D52AC */ Gambit_fn_028D496C(cpu);
|
|
/* 028D52B0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D52B4 */ cpu->r[12] = cpu->r[12] + 0xFFFFC1C0u;
|
|
/* 028D52B8 */ _t17 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D52B8 */ rbrew_write32(cpu->mem, _t17, cpu->r[12]);
|
|
/* 028D52BC */ goto L_028D5320;
|
|
L_028D52C0: ; // 0x28d52c0
|
|
/* 028D52C0 */ cpu->r[31] = cpu->r[30];
|
|
/* 028D52C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D52C4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D52C4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D52C4 */ if (_t19) goto L_028D5320; else goto L_028D52C8;
|
|
L_028D52C8: ; // 0x28d52c8
|
|
/* 028D52C8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D52CC */ Gambit_fn_028D496C(cpu);
|
|
/* 028D52D0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D52D4 */ cpu->r[0] = cpu->r[0] + 0xFFFFC1E0u;
|
|
/* 028D52D8 */ _t20 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D52D8 */ rbrew_write32(cpu->mem, _t20, cpu->r[0]);
|
|
/* 028D52DC */ goto L_028D5320;
|
|
L_028D52E0: ; // 0x28d52e0
|
|
/* 028D52E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D52E4 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D52E4 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028D52E4 */ if (_t22) goto L_028D52FC; else goto L_028D52E8;
|
|
L_028D52E8: ; // 0x28d52e8
|
|
/* 028D52E8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D52EC */ Gambit_fn_028D496C(cpu);
|
|
/* 028D52F0 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D52F4 */ cpu->r[11] = cpu->r[11] + 0xFFFFC180u;
|
|
/* 028D52F8 */ _t23 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028D52F8 */ rbrew_write32(cpu->mem, _t23, cpu->r[11]);
|
|
L_028D52FC: ; // 0x28d52fc
|
|
/* 028D52FC */ cpu->r[31] = cpu->r[30];
|
|
/* 028D5300 */ goto L_028D5320;
|
|
L_028D5304: ; // 0x28d5304
|
|
/* 028D5304 */ cpu->r[31] = cpu->r[30];
|
|
/* 028D5304 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D5308 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5308 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D5308 */ if (_t25) goto L_028D5320; else goto L_028D530C;
|
|
L_028D530C: ; // 0x28d530c
|
|
/* 028D530C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D5310 */ Gambit_fn_028D496C(cpu);
|
|
/* 028D5314 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D5318 */ cpu->r[12] = cpu->r[12] + 0xFFFFC1A0u;
|
|
/* 028D531C */ _t26 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D531C */ rbrew_write32(cpu->mem, _t26, cpu->r[12]);
|
|
L_028D5320: ; // 0x28d5320
|
|
/* 028D5320 */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5320 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D5324 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D5328 */ _t28 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D5328 */ cpu->r[31] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D532C */ cpu->lr = cpu->r[0];
|
|
/* 028D5330 */ _t29 = cpu->r[1] + 0x00000008u;
|
|
/* 028D5330 */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028D5334 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D5338 */ return;
|
|
}
|
|
|
|
// fn_028D5260 @ 0x28d5260
|
|
void Gambit_fn_028D5260(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29;
|
|
|
|
L_028D5260: ; // 0x28d5260
|
|
/* 028D5260 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D5260 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D5260 */ cpu->r[1] = _t0;
|
|
/* 028D5264 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D5264 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D5268 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D5268 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D526C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D526C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D5270 */ _t4 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5270 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D5274 */ cpu->r[31] = 0x00000000u;
|
|
/* 028D5278 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000001u);
|
|
/* 028D527C */ cpu->r[30] = cpu->r[4];
|
|
/* 028D5280 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5280 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D5280 */ if (_t6) goto L_028D5320; else goto L_028D5284;
|
|
L_028D5284: ; // 0x28d5284
|
|
/* 028D5284 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5284 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D5284 */ if (_t8) goto L_028D52A0; else goto L_028D5288;
|
|
L_028D5288: ; // 0x28d5288
|
|
/* 028D5288 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000003u);
|
|
/* 028D528C */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D528C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D528C */ if (_t10) goto L_028D52C0; else goto L_028D5290;
|
|
L_028D5290: ; // 0x28d5290
|
|
/* 028D5290 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5290 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D5290 */ if (_t12) goto L_028D52E0; else goto L_028D5294;
|
|
L_028D5294: ; // 0x28d5294
|
|
/* 028D5294 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000004u);
|
|
/* 028D5298 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5298 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D5298 */ if (_t14) goto L_028D5304; else goto L_028D529C;
|
|
L_028D529C: ; // 0x28d529c
|
|
/* 028D529C */ goto L_028D5320;
|
|
L_028D52A0: ; // 0x28d52a0
|
|
/* 028D52A0 */ cpu->r[31] = cpu->r[30];
|
|
/* 028D52A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D52A4 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D52A4 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D52A4 */ if (_t16) goto L_028D5320; else goto L_028D52A8;
|
|
L_028D52A8: ; // 0x28d52a8
|
|
/* 028D52A8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D52AC */ Gambit_fn_028D496C(cpu);
|
|
/* 028D52B0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D52B4 */ cpu->r[12] = cpu->r[12] + 0xFFFFC1C0u;
|
|
/* 028D52B8 */ _t17 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D52B8 */ rbrew_write32(cpu->mem, _t17, cpu->r[12]);
|
|
/* 028D52BC */ goto L_028D5320;
|
|
L_028D52C0: ; // 0x28d52c0
|
|
/* 028D52C0 */ cpu->r[31] = cpu->r[30];
|
|
/* 028D52C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D52C4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D52C4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D52C4 */ if (_t19) goto L_028D5320; else goto L_028D52C8;
|
|
L_028D52C8: ; // 0x28d52c8
|
|
/* 028D52C8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D52CC */ Gambit_fn_028D496C(cpu);
|
|
/* 028D52D0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D52D4 */ cpu->r[0] = cpu->r[0] + 0xFFFFC1E0u;
|
|
/* 028D52D8 */ _t20 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D52D8 */ rbrew_write32(cpu->mem, _t20, cpu->r[0]);
|
|
/* 028D52DC */ goto L_028D5320;
|
|
L_028D52E0: ; // 0x28d52e0
|
|
/* 028D52E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D52E4 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D52E4 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028D52E4 */ if (_t22) goto L_028D52FC; else goto L_028D52E8;
|
|
L_028D52E8: ; // 0x28d52e8
|
|
/* 028D52E8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D52EC */ Gambit_fn_028D496C(cpu);
|
|
/* 028D52F0 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D52F4 */ cpu->r[11] = cpu->r[11] + 0xFFFFC180u;
|
|
/* 028D52F8 */ _t23 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028D52F8 */ rbrew_write32(cpu->mem, _t23, cpu->r[11]);
|
|
L_028D52FC: ; // 0x28d52fc
|
|
/* 028D52FC */ cpu->r[31] = cpu->r[30];
|
|
/* 028D5300 */ goto L_028D5320;
|
|
L_028D5304: ; // 0x28d5304
|
|
/* 028D5304 */ cpu->r[31] = cpu->r[30];
|
|
/* 028D5304 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D5308 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5308 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D5308 */ if (_t25) goto L_028D5320; else goto L_028D530C;
|
|
L_028D530C: ; // 0x28d530c
|
|
/* 028D530C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D5310 */ Gambit_fn_028D496C(cpu);
|
|
/* 028D5314 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D5318 */ cpu->r[12] = cpu->r[12] + 0xFFFFC1A0u;
|
|
/* 028D531C */ _t26 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D531C */ rbrew_write32(cpu->mem, _t26, cpu->r[12]);
|
|
L_028D5320: ; // 0x28d5320
|
|
/* 028D5320 */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5320 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D5324 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D5328 */ _t28 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D5328 */ cpu->r[31] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D532C */ cpu->lr = cpu->r[0];
|
|
/* 028D5330 */ _t29 = cpu->r[1] + 0x00000008u;
|
|
/* 028D5330 */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028D5334 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D5338 */ return;
|
|
}
|
|
|
|
// fn_028D533C @ 0x28d533c
|
|
void Gambit_fn_028D533C(CPUState* cpu) {
|
|
L_028D533C: ; // 0x28d533c
|
|
/* 028D533C */ cpu->r[3] = 0x00000010u;
|
|
/* 028D5340 */ return;
|
|
}
|
|
|
|
// fn_028D5344 @ 0x28d5344
|
|
void Gambit_fn_028D5344(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21;
|
|
|
|
L_028D5344: ; // 0x28d5344
|
|
/* 028D5344 */ cpu->r[0] = cpu->lr;
|
|
/* 028D5348 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D5348 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D5348 */ cpu->r[1] = _t0;
|
|
/* 028D534C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D534C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D5350 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D5350 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D5354 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5354 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D5358 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5358 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D5358 */ if (_t4) goto L_028D535C; else goto L_028D536C;
|
|
L_028D535C: ; // 0x28d535c
|
|
/* 028D535C */ cpu->r[3] = 0x00000024u;
|
|
/* 028D5360 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D5364 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D5364 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D5368 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5368 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D5368 */ if (_t6) goto L_028D53CC; else goto L_028D536C;
|
|
L_028D536C: ; // 0x28d536c
|
|
/* 028D536C */ cpu->r[0] = 0x10140000u;
|
|
/* 028D5370 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D5374 */ cpu->r[0] = cpu->r[0] + 0xFFFFA8FCu;
|
|
/* 028D5378 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D537C */ _t7 = cpu->r[31] + 0x00000020u;
|
|
/* 028D537C */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028D5380 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5380 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D5380 */ if (_t9) goto L_028D5384; else goto L_028D5394;
|
|
L_028D5384: ; // 0x28d5384
|
|
/* 028D5384 */ cpu->r[3] = 0x00000018u;
|
|
/* 028D5388 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D538C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5390 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5390 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D5390 */ if (_t11) goto L_028D53C4; else goto L_028D5394;
|
|
L_028D5394: ; // 0x28d5394
|
|
/* 028D5394 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D5398 */ cpu->r[10] = 0x10140000u;
|
|
/* 028D539C */ _t12 = cpu->r[12] + 0xFFFFA8F4u;
|
|
/* 028D539C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 028D53A0 */ cpu->r[12] = 0xFFFFFFFFu;
|
|
/* 028D53A4 */ _t13 = cpu->r[10] + 0xFFFFA8F8u;
|
|
/* 028D53A4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 028D53A8 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028D53A8 */ rbrew_write32(cpu->mem, _t14, cpu->r[12]);
|
|
/* 028D53AC */ _t15 = cpu->r[3] + 0x00000010u;
|
|
/* 028D53AC */ rbrew_write_f32(cpu->mem, _t15, cpu->f[0]);
|
|
/* 028D53B0 */ cpu->r[0] = 0x00000000u;
|
|
/* 028D53B4 */ _t16 = cpu->r[3] + 0x00000014u;
|
|
/* 028D53B4 */ rbrew_write_f32(cpu->mem, _t16, cpu->f[13]);
|
|
/* 028D53B8 */ _t17 = cpu->r[3] + 0x00000004u;
|
|
/* 028D53B8 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 028D53BC */ _t18 = cpu->r[3] + 0x00000008u;
|
|
/* 028D53BC */ rbrew_write_f32(cpu->mem, _t18, cpu->f[13]);
|
|
/* 028D53C0 */ _t19 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028D53C0 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[0]);
|
|
L_028D53C4: ; // 0x28d53c4
|
|
/* 028D53C4 */ cpu->r[3] = cpu->r[31] + 0x00000018u;
|
|
/* 028D53C8 */ Gambit_fn_028ED38C(cpu);
|
|
L_028D53CC: ; // 0x28d53cc
|
|
/* 028D53CC */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028D53CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D53D0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D53D4 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D53D4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D53D8 */ cpu->lr = cpu->r[0];
|
|
/* 028D53DC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D53E0 */ return;
|
|
}
|
|
|
|
// fn_028D5348 @ 0x28d5348
|
|
void Gambit_fn_028D5348(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21;
|
|
|
|
L_028D5348: ; // 0x28d5348
|
|
/* 028D5348 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D5348 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D5348 */ cpu->r[1] = _t0;
|
|
/* 028D534C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D534C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D5350 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D5350 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D5354 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5354 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D5358 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5358 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D5358 */ if (_t4) goto L_028D535C; else goto L_028D536C;
|
|
L_028D535C: ; // 0x28d535c
|
|
/* 028D535C */ cpu->r[3] = 0x00000024u;
|
|
/* 028D5360 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D5364 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D5364 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D5368 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5368 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D5368 */ if (_t6) goto L_028D53CC; else goto L_028D536C;
|
|
L_028D536C: ; // 0x28d536c
|
|
/* 028D536C */ cpu->r[0] = 0x10140000u;
|
|
/* 028D5370 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D5374 */ cpu->r[0] = cpu->r[0] + 0xFFFFA8FCu;
|
|
/* 028D5378 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D537C */ _t7 = cpu->r[31] + 0x00000020u;
|
|
/* 028D537C */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028D5380 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5380 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D5380 */ if (_t9) goto L_028D5384; else goto L_028D5394;
|
|
L_028D5384: ; // 0x28d5384
|
|
/* 028D5384 */ cpu->r[3] = 0x00000018u;
|
|
/* 028D5388 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D538C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5390 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5390 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D5390 */ if (_t11) goto L_028D53C4; else goto L_028D5394;
|
|
L_028D5394: ; // 0x28d5394
|
|
/* 028D5394 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D5398 */ cpu->r[10] = 0x10140000u;
|
|
/* 028D539C */ _t12 = cpu->r[12] + 0xFFFFA8F4u;
|
|
/* 028D539C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 028D53A0 */ cpu->r[12] = 0xFFFFFFFFu;
|
|
/* 028D53A4 */ _t13 = cpu->r[10] + 0xFFFFA8F8u;
|
|
/* 028D53A4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 028D53A8 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028D53A8 */ rbrew_write32(cpu->mem, _t14, cpu->r[12]);
|
|
/* 028D53AC */ _t15 = cpu->r[3] + 0x00000010u;
|
|
/* 028D53AC */ rbrew_write_f32(cpu->mem, _t15, cpu->f[0]);
|
|
/* 028D53B0 */ cpu->r[0] = 0x00000000u;
|
|
/* 028D53B4 */ _t16 = cpu->r[3] + 0x00000014u;
|
|
/* 028D53B4 */ rbrew_write_f32(cpu->mem, _t16, cpu->f[13]);
|
|
/* 028D53B8 */ _t17 = cpu->r[3] + 0x00000004u;
|
|
/* 028D53B8 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 028D53BC */ _t18 = cpu->r[3] + 0x00000008u;
|
|
/* 028D53BC */ rbrew_write_f32(cpu->mem, _t18, cpu->f[13]);
|
|
/* 028D53C0 */ _t19 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028D53C0 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[0]);
|
|
L_028D53C4: ; // 0x28d53c4
|
|
/* 028D53C4 */ cpu->r[3] = cpu->r[31] + 0x00000018u;
|
|
/* 028D53C8 */ Gambit_fn_028ED38C(cpu);
|
|
L_028D53CC: ; // 0x28d53cc
|
|
/* 028D53CC */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028D53CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D53D0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D53D4 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D53D4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D53D8 */ cpu->lr = cpu->r[0];
|
|
/* 028D53DC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D53E0 */ return;
|
|
}
|
|
|
|
// fn_028D53E4 @ 0x28d53e4
|
|
void Gambit_fn_028D53E4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37;
|
|
|
|
L_028D53E4: ; // 0x28d53e4
|
|
/* 028D53E4 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028D53E4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028D53E8 */ _t1 = cpu->r[3] + 0x00000000u;
|
|
/* 028D53E8 */ rbrew_write32(cpu->mem, _t1, cpu->r[12]);
|
|
/* 028D53EC */ _t2 = cpu->r[4] + 0x00000004u;
|
|
/* 028D53EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028D53F0 */ _t3 = cpu->r[3] + 0x00000004u;
|
|
/* 028D53F0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D53F4 */ _t4 = cpu->r[4] + 0x00000008u;
|
|
/* 028D53F4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D53F8 */ _t5 = cpu->r[3] + 0x00000008u;
|
|
/* 028D53F8 */ rbrew_write32(cpu->mem, _t5, cpu->r[7]);
|
|
/* 028D53FC */ _t6 = cpu->r[4] + 0x0000000Cu;
|
|
/* 028D53FC */ cpu->r[8] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D5400 */ _t7 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028D5400 */ rbrew_write32(cpu->mem, _t7, cpu->r[8]);
|
|
/* 028D5404 */ _t8 = cpu->r[4] + 0x00000010u;
|
|
/* 028D5404 */ cpu->r[9] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D5408 */ _t9 = cpu->r[3] + 0x00000010u;
|
|
/* 028D5408 */ rbrew_write32(cpu->mem, _t9, cpu->r[9]);
|
|
/* 028D540C */ _t10 = cpu->r[4] + 0x00000014u;
|
|
/* 028D540C */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D5410 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D5414 */ _t11 = cpu->r[3] + 0x00000014u;
|
|
/* 028D5414 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
/* 028D5418 */ _t12 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5418 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D5418 */ if (_t13) goto L_028D541C; else goto L_028D5424;
|
|
L_028D541C: ; // 0x28d541c
|
|
/* 028D541C */ cpu->r[0] = 0x00000000u;
|
|
/* 028D5420 */ _t14 = cpu->r[3] + 0x00000004u;
|
|
/* 028D5420 */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
L_028D5424: ; // 0x28d5424
|
|
/* 028D5424 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D5428 */ _t15 = cpu->r[3] + 0x00000008u;
|
|
/* 028D5428 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028D542C */ _t16 = cpu->r[11] + 0xFFFFA8F4u;
|
|
/* 028D542C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028D5430 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[13]);
|
|
/* 028D5434 */ _t17 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D5434 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D5434 */ if (_t18) goto L_028D5438; else goto L_028D543C;
|
|
L_028D5438: ; // 0x28d5438
|
|
/* 028D5438 */ _t19 = cpu->r[3] + 0x00000008u;
|
|
/* 028D5438 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[0]);
|
|
L_028D543C: ; // 0x28d543c
|
|
/* 028D543C */ _t20 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028D543C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t20);
|
|
/* 028D5440 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D5444 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[12]);
|
|
/* 028D5448 */ _t21 = cpu->r[12] + 0xFFFFA8F8u;
|
|
/* 028D5448 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028D544C */ _t22 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D544C */ _t23 = _t22 & 0x00000001u;
|
|
/* 028D544C */ if (_t23) goto L_028D5458; else goto L_028D5450;
|
|
L_028D5450: ; // 0x28d5450
|
|
/* 028D5450 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[13]);
|
|
/* 028D5454 */ _t24 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D5454 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D5454 */ if (_t25) goto L_028D5458; else goto L_028D545C;
|
|
L_028D5458: ; // 0x28d5458
|
|
/* 028D5458 */ _t26 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028D5458 */ rbrew_write_f32(cpu->mem, _t26, cpu->f[13]);
|
|
L_028D545C: ; // 0x28d545c
|
|
/* 028D545C */ _t27 = cpu->r[3] + 0x00000010u;
|
|
/* 028D545C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 028D5460 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[12]);
|
|
/* 028D5464 */ _t28 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D5464 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028D5464 */ if (_t29) goto L_028D5470; else goto L_028D5468;
|
|
L_028D5468: ; // 0x28d5468
|
|
/* 028D5468 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[13]);
|
|
/* 028D546C */ _t30 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D546C */ _t31 = _t30 & 0x00000001u;
|
|
/* 028D546C */ if (_t31) goto L_028D5470; else goto L_028D5474;
|
|
L_028D5470: ; // 0x28d5470
|
|
/* 028D5470 */ _t32 = cpu->r[3] + 0x00000010u;
|
|
/* 028D5470 */ rbrew_write_f32(cpu->mem, _t32, cpu->f[13]);
|
|
L_028D5474: ; // 0x28d5474
|
|
/* 028D5474 */ _t33 = cpu->r[3] + 0x00000014u;
|
|
/* 028D5474 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t33);
|
|
/* 028D5478 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[13]);
|
|
/* 028D547C */ _t34 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D547C */ _t35 = _t34 & 0x00000001u;
|
|
/* 028D547C */ _t36 = _t35 ^ 0x00000001u;
|
|
/* 028D547C */ if (_t36) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D547C */ goto L_028D5480;
|
|
L_028D5480: ; // 0x28d5480
|
|
/* 028D5480 */ _t37 = cpu->r[3] + 0x00000014u;
|
|
/* 028D5480 */ rbrew_write_f32(cpu->mem, _t37, cpu->f[0]);
|
|
/* 028D5484 */ return;
|
|
}
|
|
|
|
// fn_028D5488 @ 0x28d5488
|
|
void Gambit_fn_028D5488(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028D5488: ; // 0x28d5488
|
|
/* 028D5488 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D548C */ _t0 = cpu->r[3] + 0x00000018u;
|
|
/* 028D548C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028D5490 */ _t1 = cpu->r[12] + 0xFFFFA8F4u;
|
|
/* 028D5490 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t1);
|
|
/* 028D5494 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[0]);
|
|
/* 028D5498 */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5498 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028D5498 */ if (_t3) goto L_028D549C; else goto L_028D54A8;
|
|
L_028D549C: ; // 0x28d549c
|
|
/* 028D549C */ _t4 = cpu->r[3] + 0x00000000u;
|
|
/* 028D549C */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D54A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D54A4 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D54A4 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D54A4 */ if (_t6) goto L_028D54A8; else goto L_028D54B0;
|
|
L_028D54A8: ; // 0x28d54a8
|
|
/* 028D54A8 */ cpu->r[3] = 0x00000001u;
|
|
/* 028D54AC */ return;
|
|
L_028D54B0: ; // 0x28d54b0
|
|
/* 028D54B0 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D54B4 */ return;
|
|
}
|
|
|
|
// fn_028D54B8 @ 0x28d54b8
|
|
void Gambit_fn_028D54B8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028D54B8: ; // 0x28d54b8
|
|
/* 028D54B8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D54BC */ _t0 = cpu->r[3] + 0x00000018u;
|
|
/* 028D54BC */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028D54C0 */ _t1 = cpu->r[12] + 0xFFFFA8F4u;
|
|
/* 028D54C0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t1);
|
|
/* 028D54C4 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[0]);
|
|
/* 028D54C8 */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D54C8 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028D54C8 */ _t4 = _t3 ^ 0x00000001u;
|
|
/* 028D54C8 */ if (_t4) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D54C8 */ goto L_028D54CC;
|
|
L_028D54CC: ; // 0x28d54cc
|
|
/* 028D54CC */ cpu->r[3] = cpu->r[3] + 0x00000018u;
|
|
/* 028D54D0 */ goto L_028ED430;
|
|
L_028ED430: ; // 0x28ed430
|
|
/* 028ED430 */ cpu->r[12] = 0x10140000u;
|
|
/* 028ED434 */ _t5 = cpu->r[12] + 0xFFFFBF98u;
|
|
/* 028ED434 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 028ED438 */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 028ED438 */ rbrew_write_f32(cpu->mem, _t6, cpu->f[0]);
|
|
/* 028ED43C */ return;
|
|
}
|
|
|
|
// fn_028D54D4 @ 0x28d54d4
|
|
void Gambit_fn_028D54D4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112, _t113, _t114, _t115, _t116, _t117, _t118, _t119, _t120, _t121, _t122, _t123, _t124, _t125, _t126, _t127, _t128, _t129, _t130, _t131, _t132, _t133, _t134, _t135, _t136, _t137, _t138, _t139, _t140, _t141, _t142, _t143, _t144, _t145, _t146, _t147, _t148, _t149, _t150, _t151, _t152, _t153, _t154, _t155, _t156, _t157, _t158, _t159, _t160, _t161, _t162, _t163, _t164, _t165, _t166, _t167, _t168, _t169, _t170, _t171, _t172, _t173, _t174, _t175, _t176, _t177, _t178, _t179, _t180, _t181, _t182, _t183, _t184, _t185, _t186, _t187, _t188, _t189, _t190, _t191, _t192, _t193, _t194, _t195, _t196, _t197, _t198, _t199, _t200, _t201, _t202, _t203, _t204, _t205, _t206, _t207, _t208, _t209, _t210, _t211, _t212, _t213, _t214, _t215, _t216, _t217, _t218, _t219, _t220, _t221, _t222, _t223, _t224, _t225;
|
|
|
|
L_028D54D4: ; // 0x28d54d4
|
|
/* 028D54D4 */ cpu->r[0] = cpu->lr;
|
|
/* 028D54D8 */ _t0 = cpu->r[1] + 0xFFFFFF90u;
|
|
/* 028D54D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D54D8 */ cpu->r[1] = _t0;
|
|
/* 028D54DC */ _t1 = cpu->r[1] + 0x00000050u;
|
|
/* 028D54DC */ rbrew_write_f64(cpu->mem, _t1, cpu->f[30]);
|
|
/* 028D54E0 */ /* nop */
|
|
/* 028D54E4 */ _t2 = cpu->r[1] + 0x00000040u;
|
|
/* 028D54E4 */ rbrew_write_f64(cpu->mem, _t2, cpu->f[29]);
|
|
/* 028D54E8 */ _t3 = cpu->r[1] + 0x00000060u;
|
|
/* 028D54E8 */ rbrew_write_f64(cpu->mem, _t3, cpu->f[31]);
|
|
/* 028D54EC */ /* nop */
|
|
/* 028D54F0 */ _t4 = cpu->r[1] + 0x00000058u;
|
|
/* 028D54F0 */ rbrew_write_f32(cpu->mem, _t4, cpu->f[30]);
|
|
/* 028D54F4 */ _t5 = cpu->r[1] + 0x00000048u;
|
|
/* 028D54F4 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[29]);
|
|
/* 028D54F8 */ /* nop */
|
|
/* 028D54FC */ _t6 = cpu->r[1] + 0x00000074u;
|
|
/* 028D54FC */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028D5500 */ _t7 = cpu->r[1] + 0x00000068u;
|
|
/* 028D5500 */ rbrew_write_f32(cpu->mem, _t7, cpu->f[31]);
|
|
/* 028D5504 */ /* nop */
|
|
/* 028D5508 */ cpu->r[28] = cpu->r[4];
|
|
/* 028D5508 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028D550C */ cpu->r[26] = cpu->r[5];
|
|
/* 028D5510 */ cpu->r[27] = cpu->r[3];
|
|
/* 028D5514 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5514 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D5514 */ if (_t9) goto L_028D5874; else goto L_028D5518;
|
|
L_028D5518: ; // 0x28d5518
|
|
/* 028D5518 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028D551C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D551C */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D551C */ if (_t11) goto L_028D5874; else goto L_028D5520;
|
|
L_028D5520: ; // 0x28d5520
|
|
/* 028D5520 */ _t12 = cpu->r[28] + 0x00000000u;
|
|
/* 028D5520 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D5524 */ _t13 = cpu->r[11] + 0x00000074u;
|
|
/* 028D5524 */ cpu->r[6] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D5528 */ cpu->ctr = cpu->r[6];
|
|
/* 028D552C */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5530 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5534 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5538 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5538 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028D5538 */ if (_t15) goto L_028D5874; else goto L_028D553C;
|
|
L_028D553C: ; // 0x28d553c
|
|
/* 028D553C */ cpu->r[3] = cpu->r[27];
|
|
/* 028D5540 */ Gambit_fn_028D5488(cpu);
|
|
/* 028D5544 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5548 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5548 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D5548 */ if (_t17) goto L_028D56E4; else goto L_028D554C;
|
|
L_028D554C: ; // 0x28d554c
|
|
/* 028D554C */ _t18 = cpu->r[28] + 0x00000000u;
|
|
/* 028D554C */ cpu->r[8] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D5550 */ _t19 = cpu->r[8] + 0x0000008Cu;
|
|
/* 028D5550 */ cpu->r[9] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D5554 */ cpu->ctr = cpu->r[9];
|
|
/* 028D5558 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D555C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5560 */ _t20 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5560 */ cpu->r[10] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D5564 */ _t21 = cpu->r[10] + 0x00000014u;
|
|
/* 028D5564 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D5568 */ cpu->ctr = cpu->r[0];
|
|
/* 028D556C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5570 */ _t22 = cpu->r[28] + 0x00000000u;
|
|
/* 028D5570 */ cpu->r[12] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D5574 */ _t23 = cpu->r[12] + 0x00000044u;
|
|
/* 028D5574 */ cpu->r[4] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D5578 */ cpu->ctr = cpu->r[4];
|
|
/* 028D557C */ cpu->r[25] = 0x00000000u;
|
|
/* 028D5580 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5584 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5588 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D558C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D5590 */ cpu->r[26] = cpu->r[28];
|
|
/* 028D5594 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5594 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D5594 */ if (_t25) goto L_028D55C4; else goto L_028D5598;
|
|
L_028D5598: ; // 0x28d5598
|
|
/* 028D5598 */ _t26 = cpu->r[26] + 0x00000000u;
|
|
/* 028D5598 */ cpu->r[5] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D559C */ _t27 = cpu->r[5] + 0x0000005Cu;
|
|
/* 028D559C */ cpu->r[6] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D55A0 */ cpu->ctr = cpu->r[6];
|
|
/* 028D55A4 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D55A8 */ cpu->r[3] = cpu->r[26];
|
|
/* 028D55AC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D55B0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000000u);
|
|
/* 028D55B4 */ cpu->r[30] = 0x00000000u;
|
|
/* 028D55B8 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D55BC */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D55BC */ _t29 = _t28 & 0x00000001u;
|
|
/* 028D55BC */ if (_t29) goto L_028D568C; else goto L_028D55C0;
|
|
L_028D55C0: ; // 0x28d55c0
|
|
/* 028D55C0 */ goto L_028D55D4;
|
|
L_028D55C4: ; // 0x28d55c4
|
|
/* 028D55C4 */ cpu->r[29] = 0x00000000u;
|
|
/* 028D55C8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000000u);
|
|
/* 028D55CC */ cpu->r[30] = cpu->r[29];
|
|
/* 028D55D0 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D55D0 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028D55D0 */ if (_t31) goto L_028D568C; else goto L_028D55D4;
|
|
L_028D55D4: ; // 0x28d55d4
|
|
/* 028D55D4 */ cpu->r[8] = 0x10140000u;
|
|
/* 028D55D8 */ _t32 = cpu->r[8] + 0xFFFFA8F4u;
|
|
/* 028D55D8 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t32);
|
|
/* 028D55DC */ cpu->r[24] = 0x00000000u;
|
|
L_028D55E0: ; // 0x28d55e0
|
|
/* 028D55E0 */ _t33 = cpu->r[31] + 0x00000004u;
|
|
/* 028D55E0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028D55E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000002u);
|
|
/* 028D55E8 */ _t34 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D55E8 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028D55E8 */ if (_t35) goto L_028D564C; else goto L_028D55EC;
|
|
L_028D55EC: ; // 0x28d55ec
|
|
/* 028D55EC */ _t36 = cpu->r[28] + 0x00000000u;
|
|
/* 028D55EC */ cpu->r[7] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028D55F0 */ _t37 = cpu->r[7] + 0x00000034u;
|
|
/* 028D55F0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028D55F4 */ cpu->ctr = cpu->r[8];
|
|
/* 028D55F8 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D55FC */ cpu->r[4] = cpu->r[31];
|
|
/* 028D5600 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5604 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D5608 */ Gambit_fn_028BDCFC(cpu);
|
|
/* 028D560C */ Gambit_fn_028C2A3C(cpu);
|
|
/* 028D5610 */ cpu->r[6] = cpu->r[3];
|
|
/* 028D5610 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028D5614 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5614 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028D5614 */ if (_t39) goto L_028D5648; else goto L_028D5618;
|
|
L_028D5618: ; // 0x28d5618
|
|
/* 028D5618 */ _t40 = cpu->r[27] + 0x00000018u;
|
|
/* 028D5618 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t40);
|
|
/* 028D561C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[31]);
|
|
/* 028D5620 */ cpu->r[3] = cpu->r[6];
|
|
/* 028D5624 */ /* nop */
|
|
/* 028D5628 */ _t41 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D5628 */ rbrew_write32(cpu->mem, _t41, cpu->r[24]);
|
|
/* 028D562C */ cpu->r[6] = cpu->r[31];
|
|
/* 028D5630 */ cpu->r[9] = rbrew_rlwinm(cpu->r[10], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D5634 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D5638 */ cpu->r[9] = cpu->r[9] ^ 0x00000001u;
|
|
/* 028D563C */ cpu->r[5] = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D5640 */ _t42 = cpu->r[1] + 0x00000008u;
|
|
/* 028D5640 */ rbrew_write32(cpu->mem, _t42, cpu->r[9]);
|
|
/* 028D5644 */ Gambit_fn_028CE44C(cpu);
|
|
L_028D5648: ; // 0x28d5648
|
|
/* 028D5648 */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
L_028D564C: ; // 0x28d564c
|
|
/* 028D564C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D5650 */ cpu->r[31] = cpu->r[29];
|
|
/* 028D5654 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5654 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028D5654 */ if (_t44) goto L_028D5680; else goto L_028D5658;
|
|
L_028D5658: ; // 0x28d5658
|
|
/* 028D5658 */ _t45 = cpu->r[26] + 0x00000000u;
|
|
/* 028D5658 */ cpu->r[11] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028D565C */ _t46 = cpu->r[11] + 0x0000005Cu;
|
|
/* 028D565C */ cpu->r[0] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028D5660 */ cpu->ctr = cpu->r[0];
|
|
/* 028D5664 */ cpu->r[3] = cpu->r[26];
|
|
/* 028D5668 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D566C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5670 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028D5674 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D5678 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5678 */ _t48 = _t47 & 0x00000001u;
|
|
/* 028D5678 */ if (_t48) goto L_028D567C; else goto L_028D55E0;
|
|
L_028D567C: ; // 0x28d567c
|
|
/* 028D567C */ goto L_028D568C;
|
|
L_028D5680: ; // 0x28d5680
|
|
/* 028D5680 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028D5684 */ cpu->r[29] = 0x00000000u;
|
|
/* 028D5688 */ _t49 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5688 */ _t50 = _t49 & 0x00000001u;
|
|
/* 028D5688 */ if (_t50) goto L_028D568C; else goto L_028D55E0;
|
|
L_028D568C: ; // 0x28d568c
|
|
/* 028D568C */ _t51 = cpu->r[28] + 0x00000000u;
|
|
/* 028D568C */ cpu->r[4] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028D5690 */ _t52 = cpu->r[4] + 0x0000008Cu;
|
|
/* 028D5690 */ cpu->r[5] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028D5694 */ cpu->ctr = cpu->r[5];
|
|
/* 028D5698 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D569C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D56A0 */ _t53 = cpu->r[3] + 0x00000000u;
|
|
/* 028D56A0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028D56A4 */ _t54 = cpu->r[6] + 0x0000001Cu;
|
|
/* 028D56A4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028D56A8 */ cpu->ctr = cpu->r[7];
|
|
/* 028D56AC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D56B0 */ cpu->r[3] = cpu->r[25];
|
|
/* 028D56B4 */ /* nop */
|
|
/* 028D56B8 */ _t55 = cpu->r[1] + 0x00000048u;
|
|
/* 028D56B8 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t55);
|
|
/* 028D56BC */ _t56 = cpu->r[1] + 0x00000058u;
|
|
/* 028D56BC */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t56);
|
|
/* 028D56C0 */ _t57 = cpu->r[1] + 0x00000040u;
|
|
/* 028D56C0 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t57);
|
|
/* 028D56C4 */ _t58 = cpu->r[1] + 0x00000068u;
|
|
/* 028D56C4 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t58);
|
|
/* 028D56C8 */ _t59 = cpu->r[1] + 0x00000050u;
|
|
/* 028D56C8 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t59);
|
|
/* 028D56CC */ _t60 = cpu->r[1] + 0x00000060u;
|
|
/* 028D56CC */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t60);
|
|
/* 028D56D0 */ _t61 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D56D0 */ _t62 = _t61 & 0x00000001u;
|
|
/* 028D56D0 */ if (_t62) goto L_028D56D4; // else: addr-0 trap, fall-through
|
|
L_028D56D4: ; // 0x28d56d4
|
|
/* 028D56D4 */ _t63 = cpu->r[1] + 0x00000074u;
|
|
/* 028D56D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028D56D8 */ cpu->lr = cpu->r[0];
|
|
/* 028D56DC */ cpu->r[1] = cpu->r[1] + 0x00000070u;
|
|
/* 028D56E0 */ return;
|
|
L_028D56E4: ; // 0x28d56e4
|
|
/* 028D56E4 */ _t64 = cpu->r[27] + 0x00000000u;
|
|
/* 028D56E4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028D56E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028D56EC */ _t65 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D56EC */ _t66 = _t65 & 0x00000001u;
|
|
/* 028D56EC */ if (_t66) goto L_028D56F0; else goto L_028D58A8;
|
|
L_028D56F0: ; // 0x28d56f0
|
|
/* 028D56F0 */ _t67 = cpu->r[28] + 0x00000000u;
|
|
/* 028D56F0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028D56F4 */ _t68 = cpu->r[9] + 0x0000008Cu;
|
|
/* 028D56F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028D56F8 */ cpu->ctr = cpu->r[0];
|
|
/* 028D56FC */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5700 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5704 */ _t69 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5704 */ cpu->r[12] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028D5708 */ _t70 = cpu->r[12] + 0x00000014u;
|
|
/* 028D5708 */ cpu->r[7] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028D570C */ cpu->ctr = cpu->r[7];
|
|
/* 028D5710 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5714 */ _t71 = cpu->r[26] + 0x00000000u;
|
|
/* 028D5714 */ cpu->r[9] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028D5718 */ _t72 = cpu->r[9] + 0x0000008Cu;
|
|
/* 028D5718 */ cpu->r[10] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028D571C */ cpu->ctr = cpu->r[10];
|
|
/* 028D5720 */ cpu->r[3] = cpu->r[26];
|
|
/* 028D5724 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5728 */ _t73 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5728 */ cpu->r[11] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028D572C */ _t74 = cpu->r[11] + 0x00000014u;
|
|
/* 028D572C */ cpu->r[0] = rbrew_read32(cpu->mem, _t74);
|
|
/* 028D5730 */ cpu->ctr = cpu->r[0];
|
|
/* 028D5734 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5738 */ _t75 = cpu->r[28] + 0x00000000u;
|
|
/* 028D5738 */ cpu->r[4] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028D573C */ _t76 = cpu->r[4] + 0x00000044u;
|
|
/* 028D573C */ cpu->r[5] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028D5740 */ cpu->ctr = cpu->r[5];
|
|
/* 028D5744 */ cpu->r[24] = 0x00000000u;
|
|
/* 028D5748 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D574C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5750 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5754 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D5758 */ cpu->r[29] = cpu->r[28];
|
|
/* 028D575C */ _t77 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D575C */ _t78 = _t77 & 0x00000001u;
|
|
/* 028D575C */ if (_t78) goto L_028D578C; else goto L_028D5760;
|
|
L_028D5760: ; // 0x28d5760
|
|
/* 028D5760 */ _t79 = cpu->r[29] + 0x00000000u;
|
|
/* 028D5760 */ cpu->r[6] = rbrew_read32(cpu->mem, _t79);
|
|
/* 028D5764 */ _t80 = cpu->r[6] + 0x0000005Cu;
|
|
/* 028D5764 */ cpu->r[7] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028D5768 */ cpu->ctr = cpu->r[7];
|
|
/* 028D576C */ cpu->r[4] = cpu->r[30];
|
|
/* 028D5770 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D5774 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5778 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], 0x00000000u);
|
|
/* 028D577C */ cpu->r[25] = 0x00000000u;
|
|
/* 028D5780 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D5784 */ _t81 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5784 */ _t82 = _t81 & 0x00000001u;
|
|
/* 028D5784 */ if (_t82) goto L_028D581C; else goto L_028D5788;
|
|
L_028D5788: ; // 0x28d5788
|
|
/* 028D5788 */ goto L_028D579C;
|
|
L_028D578C: ; // 0x28d578c
|
|
/* 028D578C */ cpu->r[31] = 0x00000000u;
|
|
/* 028D5790 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], 0x00000000u);
|
|
/* 028D5794 */ cpu->r[25] = cpu->r[31];
|
|
/* 028D5798 */ _t83 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5798 */ _t84 = _t83 & 0x00000001u;
|
|
/* 028D5798 */ if (_t84) goto L_028D581C; else goto L_028D579C;
|
|
L_028D579C: ; // 0x28d579c
|
|
/* 028D579C */ _t85 = cpu->r[30] + 0x00000004u;
|
|
/* 028D579C */ cpu->r[0] = rbrew_read32(cpu->mem, _t85);
|
|
/* 028D57A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000002u);
|
|
/* 028D57A4 */ _t86 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D57A4 */ _t87 = _t86 & 0x00000001u;
|
|
/* 028D57A4 */ if (_t87) goto L_028D57DC; else goto L_028D57A8;
|
|
L_028D57A8: ; // 0x28d57a8
|
|
/* 028D57A8 */ _t88 = cpu->r[28] + 0x00000000u;
|
|
/* 028D57A8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t88);
|
|
/* 028D57AC */ _t89 = cpu->r[8] + 0x00000034u;
|
|
/* 028D57AC */ cpu->r[9] = rbrew_read32(cpu->mem, _t89);
|
|
/* 028D57B0 */ cpu->ctr = cpu->r[9];
|
|
/* 028D57B4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D57B8 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D57BC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D57C0 */ _t90 = cpu->r[26] + 0x00000000u;
|
|
/* 028D57C0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t90);
|
|
/* 028D57C4 */ _t91 = cpu->r[11] + 0x00000014u;
|
|
/* 028D57C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t91);
|
|
/* 028D57C8 */ cpu->ctr = cpu->r[0];
|
|
/* 028D57CC */ cpu->r[3] = cpu->r[26];
|
|
/* 028D57D0 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D57D4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D57D8 */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
L_028D57DC: ; // 0x28d57dc
|
|
/* 028D57DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D57E0 */ cpu->r[30] = cpu->r[31];
|
|
/* 028D57E4 */ _t92 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D57E4 */ _t93 = _t92 & 0x00000001u;
|
|
/* 028D57E4 */ if (_t93) goto L_028D5810; else goto L_028D57E8;
|
|
L_028D57E8: ; // 0x28d57e8
|
|
/* 028D57E8 */ _t94 = cpu->r[29] + 0x00000000u;
|
|
/* 028D57E8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t94);
|
|
/* 028D57EC */ _t95 = cpu->r[5] + 0x0000005Cu;
|
|
/* 028D57EC */ cpu->r[6] = rbrew_read32(cpu->mem, _t95);
|
|
/* 028D57F0 */ cpu->ctr = cpu->r[6];
|
|
/* 028D57F4 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D57F8 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D57FC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5800 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[25]);
|
|
/* 028D5804 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D5808 */ _t96 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5808 */ _t97 = _t96 & 0x00000001u;
|
|
/* 028D5808 */ if (_t97) goto L_028D580C; else goto L_028D579C;
|
|
L_028D580C: ; // 0x28d580c
|
|
/* 028D580C */ goto L_028D581C;
|
|
L_028D5810: ; // 0x28d5810
|
|
/* 028D5810 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[25]);
|
|
/* 028D5814 */ cpu->r[31] = 0x00000000u;
|
|
/* 028D5818 */ _t98 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5818 */ _t99 = _t98 & 0x00000001u;
|
|
/* 028D5818 */ if (_t99) goto L_028D581C; else goto L_028D579C;
|
|
L_028D581C: ; // 0x28d581c
|
|
/* 028D581C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], 0x00000000u);
|
|
/* 028D5820 */ _t100 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D5820 */ _t101 = _t100 & 0x00000001u;
|
|
/* 028D5820 */ if (_t101) goto L_028D5824; else goto L_028D582C;
|
|
L_028D5824: ; // 0x28d5824
|
|
/* 028D5824 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D5828 */ Gambit_fn_028D54B8(cpu);
|
|
L_028D582C: ; // 0x28d582c
|
|
/* 028D582C */ _t102 = cpu->r[26] + 0x00000000u;
|
|
/* 028D582C */ cpu->r[7] = rbrew_read32(cpu->mem, _t102);
|
|
/* 028D5830 */ _t103 = cpu->r[7] + 0x0000008Cu;
|
|
/* 028D5830 */ cpu->r[8] = rbrew_read32(cpu->mem, _t103);
|
|
/* 028D5834 */ cpu->ctr = cpu->r[8];
|
|
/* 028D5838 */ cpu->r[3] = cpu->r[26];
|
|
/* 028D583C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5840 */ _t104 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5840 */ cpu->r[9] = rbrew_read32(cpu->mem, _t104);
|
|
/* 028D5844 */ _t105 = cpu->r[9] + 0x0000001Cu;
|
|
/* 028D5844 */ cpu->r[10] = rbrew_read32(cpu->mem, _t105);
|
|
/* 028D5848 */ cpu->ctr = cpu->r[10];
|
|
/* 028D584C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5850 */ _t106 = cpu->r[28] + 0x00000000u;
|
|
/* 028D5850 */ cpu->r[12] = rbrew_read32(cpu->mem, _t106);
|
|
/* 028D5854 */ _t107 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D5854 */ cpu->r[0] = rbrew_read32(cpu->mem, _t107);
|
|
/* 028D5858 */ cpu->ctr = cpu->r[0];
|
|
/* 028D585C */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5860 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5864 */ _t108 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5864 */ cpu->r[4] = rbrew_read32(cpu->mem, _t108);
|
|
/* 028D5868 */ _t109 = cpu->r[4] + 0x0000001Cu;
|
|
/* 028D5868 */ cpu->r[5] = rbrew_read32(cpu->mem, _t109);
|
|
/* 028D586C */ cpu->ctr = cpu->r[5];
|
|
/* 028D5870 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D5874: ; // 0x28d5874
|
|
/* 028D5874 */ /* nop */
|
|
/* 028D5878 */ _t110 = cpu->r[1] + 0x00000048u;
|
|
/* 028D5878 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t110);
|
|
/* 028D587C */ _t111 = cpu->r[1] + 0x00000068u;
|
|
/* 028D587C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t111);
|
|
/* 028D5880 */ _t112 = cpu->r[1] + 0x00000040u;
|
|
/* 028D5880 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t112);
|
|
/* 028D5884 */ _t113 = cpu->r[1] + 0x00000058u;
|
|
/* 028D5884 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t113);
|
|
/* 028D5888 */ _t114 = cpu->r[1] + 0x00000060u;
|
|
/* 028D5888 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t114);
|
|
/* 028D588C */ _t115 = cpu->r[1] + 0x00000050u;
|
|
/* 028D588C */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t115);
|
|
/* 028D5890 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D5894 */ _t116 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5894 */ _t117 = _t116 & 0x00000001u;
|
|
/* 028D5894 */ if (_t117) goto L_028D5898; // else: addr-0 trap, fall-through
|
|
L_028D5898: ; // 0x28d5898
|
|
/* 028D5898 */ _t118 = cpu->r[1] + 0x00000074u;
|
|
/* 028D5898 */ cpu->r[0] = rbrew_read32(cpu->mem, _t118);
|
|
/* 028D589C */ cpu->lr = cpu->r[0];
|
|
/* 028D58A0 */ cpu->r[1] = cpu->r[1] + 0x00000070u;
|
|
/* 028D58A4 */ return;
|
|
L_028D58A8: ; // 0x28d58a8
|
|
/* 028D58A8 */ _t119 = cpu->r[28] + 0x00000000u;
|
|
/* 028D58A8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t119);
|
|
/* 028D58AC */ _t120 = cpu->r[7] + 0x0000008Cu;
|
|
/* 028D58AC */ cpu->r[8] = rbrew_read32(cpu->mem, _t120);
|
|
/* 028D58B0 */ cpu->ctr = cpu->r[8];
|
|
/* 028D58B4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D58B8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D58BC */ _t121 = cpu->r[3] + 0x00000000u;
|
|
/* 028D58BC */ cpu->r[10] = rbrew_read32(cpu->mem, _t121);
|
|
/* 028D58C0 */ _t122 = cpu->r[10] + 0x00000014u;
|
|
/* 028D58C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t122);
|
|
/* 028D58C4 */ cpu->ctr = cpu->r[0];
|
|
/* 028D58C8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D58CC */ _t123 = cpu->r[26] + 0x00000000u;
|
|
/* 028D58CC */ cpu->r[12] = rbrew_read32(cpu->mem, _t123);
|
|
/* 028D58D0 */ _t124 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D58D0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t124);
|
|
/* 028D58D4 */ cpu->ctr = cpu->r[4];
|
|
/* 028D58D8 */ cpu->r[3] = cpu->r[26];
|
|
/* 028D58DC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D58E0 */ _t125 = cpu->r[3] + 0x00000000u;
|
|
/* 028D58E0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t125);
|
|
/* 028D58E4 */ _t126 = cpu->r[5] + 0x00000014u;
|
|
/* 028D58E4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t126);
|
|
/* 028D58E8 */ cpu->ctr = cpu->r[7];
|
|
/* 028D58EC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D58F0 */ _t127 = cpu->r[28] + 0x00000000u;
|
|
/* 028D58F0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t127);
|
|
/* 028D58F4 */ _t128 = cpu->r[8] + 0x00000084u;
|
|
/* 028D58F4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t128);
|
|
/* 028D58F8 */ cpu->r[4] = 0x028D0000u;
|
|
/* 028D58FC */ cpu->ctr = cpu->r[9];
|
|
/* 028D5900 */ cpu->r[4] = cpu->r[4] + 0x00005CA4u;
|
|
/* 028D5904 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5908 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D590C */ _t129 = cpu->r[28] + 0x00000000u;
|
|
/* 028D590C */ cpu->r[10] = rbrew_read32(cpu->mem, _t129);
|
|
/* 028D5910 */ _t130 = cpu->r[10] + 0x00000044u;
|
|
/* 028D5910 */ cpu->r[11] = rbrew_read32(cpu->mem, _t130);
|
|
/* 028D5914 */ cpu->ctr = cpu->r[11];
|
|
/* 028D5918 */ cpu->r[24] = 0x00000000u;
|
|
/* 028D591C */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5920 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5924 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5928 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D592C */ cpu->r[29] = cpu->r[28];
|
|
/* 028D5930 */ _t131 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5930 */ _t132 = _t131 & 0x00000001u;
|
|
/* 028D5930 */ if (_t132) goto L_028D5960; else goto L_028D5934;
|
|
L_028D5934: ; // 0x28d5934
|
|
/* 028D5934 */ _t133 = cpu->r[29] + 0x00000000u;
|
|
/* 028D5934 */ cpu->r[12] = rbrew_read32(cpu->mem, _t133);
|
|
/* 028D5938 */ _t134 = cpu->r[12] + 0x0000005Cu;
|
|
/* 028D5938 */ cpu->r[0] = rbrew_read32(cpu->mem, _t134);
|
|
/* 028D593C */ cpu->ctr = cpu->r[0];
|
|
/* 028D5940 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D5944 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D5948 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D594C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], 0x00000000u);
|
|
/* 028D5950 */ cpu->r[25] = 0x00000000u;
|
|
/* 028D5954 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D5958 */ _t135 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5958 */ _t136 = _t135 & 0x00000001u;
|
|
/* 028D5958 */ if (_t136) goto L_028D5A04; else goto L_028D595C;
|
|
L_028D595C: ; // 0x28d595c
|
|
/* 028D595C */ goto L_028D5970;
|
|
L_028D5960: ; // 0x28d5960
|
|
/* 028D5960 */ cpu->r[31] = 0x00000000u;
|
|
/* 028D5964 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], 0x00000000u);
|
|
/* 028D5968 */ cpu->r[25] = cpu->r[31];
|
|
/* 028D596C */ _t137 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D596C */ _t138 = _t137 & 0x00000001u;
|
|
/* 028D596C */ if (_t138) goto L_028D5A04; else goto L_028D5970;
|
|
L_028D5970: ; // 0x28d5970
|
|
/* 028D5970 */ _t139 = cpu->r[30] + 0x00000004u;
|
|
/* 028D5970 */ cpu->r[10] = rbrew_read32(cpu->mem, _t139);
|
|
/* 028D5974 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000002u);
|
|
/* 028D5978 */ _t140 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5978 */ _t141 = _t140 & 0x00000001u;
|
|
/* 028D5978 */ if (_t141) goto L_028D59C4; else goto L_028D597C;
|
|
L_028D597C: ; // 0x28d597c
|
|
/* 028D597C */ _t142 = cpu->r[28] + 0x00000000u;
|
|
/* 028D597C */ cpu->r[5] = rbrew_read32(cpu->mem, _t142);
|
|
/* 028D5980 */ _t143 = cpu->r[5] + 0x00000034u;
|
|
/* 028D5980 */ cpu->r[6] = rbrew_read32(cpu->mem, _t143);
|
|
/* 028D5984 */ cpu->ctr = cpu->r[6];
|
|
/* 028D5988 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D598C */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5990 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5994 */ _t144 = cpu->r[26] + 0x00000000u;
|
|
/* 028D5994 */ cpu->r[7] = rbrew_read32(cpu->mem, _t144);
|
|
/* 028D5998 */ _t145 = cpu->r[7] + 0x00000014u;
|
|
/* 028D5998 */ cpu->r[8] = rbrew_read32(cpu->mem, _t145);
|
|
/* 028D599C */ cpu->ctr = cpu->r[8];
|
|
/* 028D59A0 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D59A4 */ cpu->r[3] = cpu->r[26];
|
|
/* 028D59A8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D59AC */ cpu->r[3] = cpu->r[27];
|
|
/* 028D59B0 */ Gambit_fn_028D54B8(cpu);
|
|
/* 028D59B4 */ _t146 = cpu->r[27] + 0x00000000u;
|
|
/* 028D59B4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t146);
|
|
/* 028D59B8 */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
/* 028D59BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], cpu->r[9]);
|
|
/* 028D59C0 */ _t147 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D59C0 */ _t148 = _t147 & 0x00000001u;
|
|
/* 028D59C0 */ if (_t148) goto L_028D59C4; else goto L_028D5A04;
|
|
L_028D59C4: ; // 0x28d59c4
|
|
/* 028D59C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D59C8 */ cpu->r[30] = cpu->r[31];
|
|
/* 028D59CC */ _t149 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D59CC */ _t150 = _t149 & 0x00000001u;
|
|
/* 028D59CC */ if (_t150) goto L_028D59F8; else goto L_028D59D0;
|
|
L_028D59D0: ; // 0x28d59d0
|
|
/* 028D59D0 */ _t151 = cpu->r[29] + 0x00000000u;
|
|
/* 028D59D0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t151);
|
|
/* 028D59D4 */ _t152 = cpu->r[10] + 0x0000005Cu;
|
|
/* 028D59D4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t152);
|
|
/* 028D59D8 */ cpu->ctr = cpu->r[11];
|
|
/* 028D59DC */ cpu->r[3] = cpu->r[29];
|
|
/* 028D59E0 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D59E4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D59E8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[25]);
|
|
/* 028D59EC */ cpu->r[31] = cpu->r[3];
|
|
/* 028D59F0 */ _t153 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D59F0 */ _t154 = _t153 & 0x00000001u;
|
|
/* 028D59F0 */ if (_t154) goto L_028D59F4; else goto L_028D5970;
|
|
L_028D59F4: ; // 0x28d59f4
|
|
/* 028D59F4 */ goto L_028D5A04;
|
|
L_028D59F8: ; // 0x28d59f8
|
|
/* 028D59F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[25]);
|
|
/* 028D59FC */ cpu->r[31] = 0x00000000u;
|
|
/* 028D5A00 */ _t155 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5A00 */ _t156 = _t155 & 0x00000001u;
|
|
/* 028D5A00 */ if (_t156) goto L_028D5A04; else goto L_028D5970;
|
|
L_028D5A04: ; // 0x28d5a04
|
|
/* 028D5A04 */ _t157 = cpu->r[26] + 0x00000000u;
|
|
/* 028D5A04 */ cpu->r[12] = rbrew_read32(cpu->mem, _t157);
|
|
/* 028D5A08 */ _t158 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D5A08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t158);
|
|
/* 028D5A0C */ cpu->ctr = cpu->r[0];
|
|
/* 028D5A10 */ cpu->r[3] = cpu->r[26];
|
|
/* 028D5A14 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5A18 */ _t159 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5A18 */ cpu->r[4] = rbrew_read32(cpu->mem, _t159);
|
|
/* 028D5A1C */ _t160 = cpu->r[4] + 0x0000001Cu;
|
|
/* 028D5A1C */ cpu->r[5] = rbrew_read32(cpu->mem, _t160);
|
|
/* 028D5A20 */ cpu->ctr = cpu->r[5];
|
|
/* 028D5A24 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5A28 */ _t161 = cpu->r[28] + 0x00000000u;
|
|
/* 028D5A28 */ cpu->r[6] = rbrew_read32(cpu->mem, _t161);
|
|
/* 028D5A2C */ _t162 = cpu->r[6] + 0x0000008Cu;
|
|
/* 028D5A2C */ cpu->r[7] = rbrew_read32(cpu->mem, _t162);
|
|
/* 028D5A30 */ cpu->ctr = cpu->r[7];
|
|
/* 028D5A34 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5A38 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5A3C */ _t163 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5A3C */ cpu->r[8] = rbrew_read32(cpu->mem, _t163);
|
|
/* 028D5A40 */ _t164 = cpu->r[8] + 0x0000001Cu;
|
|
/* 028D5A40 */ cpu->r[9] = rbrew_read32(cpu->mem, _t164);
|
|
/* 028D5A44 */ cpu->ctr = cpu->r[9];
|
|
/* 028D5A48 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5A4C */ _t165 = cpu->r[28] + 0x00000000u;
|
|
/* 028D5A4C */ cpu->r[10] = rbrew_read32(cpu->mem, _t165);
|
|
/* 028D5A50 */ _t166 = cpu->r[10] + 0x0000008Cu;
|
|
/* 028D5A50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t166);
|
|
/* 028D5A54 */ cpu->ctr = cpu->r[0];
|
|
/* 028D5A58 */ cpu->r[25] = 0x00000000u;
|
|
/* 028D5A5C */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5A60 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5A64 */ _t167 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5A64 */ cpu->r[12] = rbrew_read32(cpu->mem, _t167);
|
|
/* 028D5A68 */ _t168 = cpu->r[12] + 0x00000014u;
|
|
/* 028D5A68 */ cpu->r[4] = rbrew_read32(cpu->mem, _t168);
|
|
/* 028D5A6C */ cpu->ctr = cpu->r[4];
|
|
/* 028D5A70 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5A74 */ _t169 = cpu->r[28] + 0x00000000u;
|
|
/* 028D5A74 */ cpu->r[5] = rbrew_read32(cpu->mem, _t169);
|
|
/* 028D5A78 */ _t170 = cpu->r[5] + 0x00000044u;
|
|
/* 028D5A78 */ cpu->r[6] = rbrew_read32(cpu->mem, _t170);
|
|
/* 028D5A7C */ _t171 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028D5A7C */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t171);
|
|
/* 028D5A80 */ cpu->ctr = cpu->r[6];
|
|
/* 028D5A84 */ _t172 = cpu->r[27] + 0x00000010u;
|
|
/* 028D5A84 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t172);
|
|
/* 028D5A88 */ _t173 = cpu->r[27] + 0x00000008u;
|
|
/* 028D5A88 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t173);
|
|
/* 028D5A8C */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5A90 */ _t174 = cpu->r[27] + 0x00000004u;
|
|
/* 028D5A90 */ cpu->r[23] = rbrew_read32(cpu->mem, _t174);
|
|
/* 028D5A94 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5A98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5A9C */ cpu->r[29] = cpu->r[28];
|
|
/* 028D5AA0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D5AA4 */ _t175 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5AA4 */ _t176 = _t175 & 0x00000001u;
|
|
/* 028D5AA4 */ if (_t176) goto L_028D5AD4; else goto L_028D5AA8;
|
|
L_028D5AA8: ; // 0x28d5aa8
|
|
/* 028D5AA8 */ _t177 = cpu->r[29] + 0x00000000u;
|
|
/* 028D5AA8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t177);
|
|
/* 028D5AAC */ _t178 = cpu->r[7] + 0x0000005Cu;
|
|
/* 028D5AAC */ cpu->r[8] = rbrew_read32(cpu->mem, _t178);
|
|
/* 028D5AB0 */ cpu->ctr = cpu->r[8];
|
|
/* 028D5AB4 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D5AB8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D5ABC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5AC0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000000u);
|
|
/* 028D5AC4 */ cpu->r[30] = 0x00000000u;
|
|
/* 028D5AC8 */ cpu->r[26] = cpu->r[3];
|
|
/* 028D5ACC */ _t179 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5ACC */ _t180 = _t179 & 0x00000001u;
|
|
/* 028D5ACC */ if (_t180) goto L_028D5BE0; else goto L_028D5AD0;
|
|
L_028D5AD0: ; // 0x28d5ad0
|
|
/* 028D5AD0 */ goto L_028D5AE4;
|
|
L_028D5AD4: ; // 0x28d5ad4
|
|
/* 028D5AD4 */ cpu->r[26] = 0x00000000u;
|
|
/* 028D5AD8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000000u);
|
|
/* 028D5ADC */ cpu->r[30] = cpu->r[26];
|
|
/* 028D5AE0 */ _t181 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5AE0 */ _t182 = _t181 & 0x00000001u;
|
|
/* 028D5AE0 */ if (_t182) goto L_028D5BE0; else goto L_028D5AE4;
|
|
L_028D5AE4: ; // 0x28d5ae4
|
|
/* 028D5AE4 */ cpu->r[24] = 0x00000000u;
|
|
L_028D5AE8: ; // 0x28d5ae8
|
|
/* 028D5AE8 */ _t183 = cpu->r[31] + 0x00000004u;
|
|
/* 028D5AE8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t183);
|
|
/* 028D5AEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000002u);
|
|
/* 028D5AF0 */ _t184 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5AF0 */ _t185 = _t184 & 0x00000001u;
|
|
/* 028D5AF0 */ if (_t185) goto L_028D5BA0; else goto L_028D5AF4;
|
|
L_028D5AF4: ; // 0x28d5af4
|
|
/* 028D5AF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 028D5AF8 */ _t186 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D5AF8 */ _t187 = _t186 & 0x00000001u;
|
|
/* 028D5AF8 */ if (_t187) goto L_028D5AFC; else goto L_028D5B54;
|
|
L_028D5AFC: ; // 0x28d5afc
|
|
/* 028D5AFC */ cpu->f[1] = cpu->f[29];
|
|
/* 028D5B00 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D5B04 */ Gambit_fn_028BE6D4(cpu);
|
|
/* 028D5B08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5B0C */ _t188 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5B0C */ _t189 = _t188 & 0x00000001u;
|
|
/* 028D5B0C */ if (_t189) goto L_028D5BA0; else goto L_028D5B10;
|
|
L_028D5B10: ; // 0x28d5b10
|
|
/* 028D5B10 */ _t190 = cpu->r[31] + 0x00000114u;
|
|
/* 028D5B10 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t190);
|
|
/* 028D5B14 */ _t191 = cpu->r[31] + 0x00000118u;
|
|
/* 028D5B14 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t191);
|
|
/* 028D5B18 */ cpu->f[9] = cpu->f[9] * cpu->f[30];
|
|
/* 028D5B1C */ cpu->f[10] = cpu->f[10] * cpu->f[31];
|
|
/* 028D5B20 */ _t192 = cpu->r[31] + 0x00000114u;
|
|
/* 028D5B20 */ rbrew_write_f32(cpu->mem, _t192, cpu->f[9]);
|
|
/* 028D5B24 */ _t193 = cpu->r[31] + 0x00000118u;
|
|
/* 028D5B24 */ rbrew_write_f32(cpu->mem, _t193, cpu->f[10]);
|
|
/* 028D5B28 */ _t194 = cpu->r[27] + 0x00000008u;
|
|
/* 028D5B28 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t194);
|
|
/* 028D5B2C */ _t195 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028D5B2C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t195);
|
|
/* 028D5B30 */ cpu->f[29] = cpu->f[29] + cpu->f[11];
|
|
/* 028D5B34 */ _t196 = cpu->r[27] + 0x00000010u;
|
|
/* 028D5B34 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t196);
|
|
/* 028D5B38 */ cpu->f[30] = cpu->f[30] * cpu->f[12];
|
|
/* 028D5B3C */ cpu->r[31] = cpu->r[26];
|
|
/* 028D5B40 */ cpu->r[23] = cpu->r[23] + 0xFFFFFFFFu;
|
|
/* 028D5B44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028D5B48 */ cpu->f[31] = cpu->f[31] * cpu->f[13];
|
|
/* 028D5B4C */ _t197 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5B4C */ _t198 = _t197 & 0x00000001u;
|
|
/* 028D5B4C */ if (_t198) goto L_028D5B50; else goto L_028D5BAC;
|
|
L_028D5B50: ; // 0x28d5b50
|
|
/* 028D5B50 */ goto L_028D5BD4;
|
|
L_028D5B54: ; // 0x28d5b54
|
|
/* 028D5B54 */ _t199 = cpu->r[28] + 0x00000000u;
|
|
/* 028D5B54 */ cpu->r[10] = rbrew_read32(cpu->mem, _t199);
|
|
/* 028D5B58 */ _t200 = cpu->r[10] + 0x00000034u;
|
|
/* 028D5B58 */ cpu->r[11] = rbrew_read32(cpu->mem, _t200);
|
|
/* 028D5B5C */ cpu->ctr = cpu->r[11];
|
|
/* 028D5B60 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5B64 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D5B68 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5B6C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D5B70 */ Gambit_fn_028BDCFC(cpu);
|
|
/* 028D5B74 */ Gambit_fn_028C2A3C(cpu);
|
|
/* 028D5B78 */ cpu->r[9] = cpu->r[3];
|
|
/* 028D5B78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028D5B7C */ _t201 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5B7C */ _t202 = _t201 & 0x00000001u;
|
|
/* 028D5B7C */ if (_t202) goto L_028D5B9C; else goto L_028D5B80;
|
|
L_028D5B80: ; // 0x28d5b80
|
|
/* 028D5B80 */ _t203 = cpu->r[1] + 0x00000010u;
|
|
/* 028D5B80 */ rbrew_write32(cpu->mem, _t203, cpu->r[24]);
|
|
/* 028D5B84 */ cpu->r[3] = cpu->r[9];
|
|
/* 028D5B88 */ cpu->r[6] = cpu->r[31];
|
|
/* 028D5B8C */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 028D5B90 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028D5B94 */ _t204 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5B94 */ rbrew_write32(cpu->mem, _t204, cpu->r[24]);
|
|
/* 028D5B98 */ Gambit_fn_028CE44C(cpu);
|
|
L_028D5B9C: ; // 0x28d5b9c
|
|
/* 028D5B9C */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
L_028D5BA0: ; // 0x28d5ba0
|
|
/* 028D5BA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028D5BA4 */ cpu->r[31] = cpu->r[26];
|
|
/* 028D5BA8 */ _t205 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5BA8 */ _t206 = _t205 & 0x00000001u;
|
|
/* 028D5BA8 */ if (_t206) goto L_028D5BD4; else goto L_028D5BAC;
|
|
L_028D5BAC: ; // 0x28d5bac
|
|
/* 028D5BAC */ _t207 = cpu->r[29] + 0x00000000u;
|
|
/* 028D5BAC */ cpu->r[12] = rbrew_read32(cpu->mem, _t207);
|
|
/* 028D5BB0 */ _t208 = cpu->r[12] + 0x0000005Cu;
|
|
/* 028D5BB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t208);
|
|
/* 028D5BB4 */ cpu->ctr = cpu->r[0];
|
|
/* 028D5BB8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D5BBC */ cpu->r[4] = cpu->r[31];
|
|
/* 028D5BC0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5BC4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028D5BC8 */ cpu->r[26] = cpu->r[3];
|
|
/* 028D5BCC */ _t209 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5BCC */ _t210 = _t209 & 0x00000001u;
|
|
/* 028D5BCC */ if (_t210) goto L_028D5BD0; else goto L_028D5AE8;
|
|
L_028D5BD0: ; // 0x28d5bd0
|
|
/* 028D5BD0 */ goto L_028D5BE0;
|
|
L_028D5BD4: ; // 0x28d5bd4
|
|
/* 028D5BD4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028D5BD8 */ cpu->r[26] = 0x00000000u;
|
|
/* 028D5BDC */ _t211 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5BDC */ _t212 = _t211 & 0x00000001u;
|
|
/* 028D5BDC */ if (_t212) goto L_028D5BE0; else goto L_028D5AE8;
|
|
L_028D5BE0: ; // 0x28d5be0
|
|
/* 028D5BE0 */ _t213 = cpu->r[28] + 0x00000000u;
|
|
/* 028D5BE0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t213);
|
|
/* 028D5BE4 */ _t214 = cpu->r[4] + 0x0000008Cu;
|
|
/* 028D5BE4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t214);
|
|
/* 028D5BE8 */ cpu->ctr = cpu->r[0];
|
|
/* 028D5BEC */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5BF0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5BF4 */ _t215 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5BF4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t215);
|
|
/* 028D5BF8 */ _t216 = cpu->r[6] + 0x0000001Cu;
|
|
/* 028D5BF8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t216);
|
|
/* 028D5BFC */ cpu->ctr = cpu->r[0];
|
|
/* 028D5C00 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5C04 */ cpu->r[3] = cpu->r[25];
|
|
/* 028D5C08 */ /* nop */
|
|
/* 028D5C0C */ _t217 = cpu->r[1] + 0x00000048u;
|
|
/* 028D5C0C */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t217);
|
|
/* 028D5C10 */ _t218 = cpu->r[1] + 0x00000058u;
|
|
/* 028D5C10 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t218);
|
|
/* 028D5C14 */ _t219 = cpu->r[1] + 0x00000040u;
|
|
/* 028D5C14 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t219);
|
|
/* 028D5C18 */ _t220 = cpu->r[1] + 0x00000068u;
|
|
/* 028D5C18 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t220);
|
|
/* 028D5C1C */ _t221 = cpu->r[1] + 0x00000050u;
|
|
/* 028D5C1C */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t221);
|
|
/* 028D5C20 */ _t222 = cpu->r[1] + 0x00000060u;
|
|
/* 028D5C20 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t222);
|
|
/* 028D5C24 */ _t223 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5C24 */ _t224 = _t223 & 0x00000001u;
|
|
/* 028D5C24 */ if (_t224) goto L_028D5C28; // else: addr-0 trap, fall-through
|
|
L_028D5C28: ; // 0x28d5c28
|
|
/* 028D5C28 */ _t225 = cpu->r[1] + 0x00000074u;
|
|
/* 028D5C28 */ cpu->r[0] = rbrew_read32(cpu->mem, _t225);
|
|
/* 028D5C2C */ cpu->lr = cpu->r[0];
|
|
/* 028D5C30 */ cpu->r[1] = cpu->r[1] + 0x00000070u;
|
|
/* 028D5C34 */ return;
|
|
}
|
|
|
|
// fn_028D54D8 @ 0x28d54d8
|
|
void Gambit_fn_028D54D8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112, _t113, _t114, _t115, _t116, _t117, _t118, _t119, _t120, _t121, _t122, _t123, _t124, _t125, _t126, _t127, _t128, _t129, _t130, _t131, _t132, _t133, _t134, _t135, _t136, _t137, _t138, _t139, _t140, _t141, _t142, _t143, _t144, _t145, _t146, _t147, _t148, _t149, _t150, _t151, _t152, _t153, _t154, _t155, _t156, _t157, _t158, _t159, _t160, _t161, _t162, _t163, _t164, _t165, _t166, _t167, _t168, _t169, _t170, _t171, _t172, _t173, _t174, _t175, _t176, _t177, _t178, _t179, _t180, _t181, _t182, _t183, _t184, _t185, _t186, _t187, _t188, _t189, _t190, _t191, _t192, _t193, _t194, _t195, _t196, _t197, _t198, _t199, _t200, _t201, _t202, _t203, _t204, _t205, _t206, _t207, _t208, _t209, _t210, _t211, _t212, _t213, _t214, _t215, _t216, _t217, _t218, _t219, _t220, _t221, _t222, _t223, _t224, _t225;
|
|
|
|
L_028D54D8: ; // 0x28d54d8
|
|
/* 028D54D8 */ _t0 = cpu->r[1] + 0xFFFFFF90u;
|
|
/* 028D54D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D54D8 */ cpu->r[1] = _t0;
|
|
/* 028D54DC */ _t1 = cpu->r[1] + 0x00000050u;
|
|
/* 028D54DC */ rbrew_write_f64(cpu->mem, _t1, cpu->f[30]);
|
|
/* 028D54E0 */ /* nop */
|
|
/* 028D54E4 */ _t2 = cpu->r[1] + 0x00000040u;
|
|
/* 028D54E4 */ rbrew_write_f64(cpu->mem, _t2, cpu->f[29]);
|
|
/* 028D54E8 */ _t3 = cpu->r[1] + 0x00000060u;
|
|
/* 028D54E8 */ rbrew_write_f64(cpu->mem, _t3, cpu->f[31]);
|
|
/* 028D54EC */ /* nop */
|
|
/* 028D54F0 */ _t4 = cpu->r[1] + 0x00000058u;
|
|
/* 028D54F0 */ rbrew_write_f32(cpu->mem, _t4, cpu->f[30]);
|
|
/* 028D54F4 */ _t5 = cpu->r[1] + 0x00000048u;
|
|
/* 028D54F4 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[29]);
|
|
/* 028D54F8 */ /* nop */
|
|
/* 028D54FC */ _t6 = cpu->r[1] + 0x00000074u;
|
|
/* 028D54FC */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028D5500 */ _t7 = cpu->r[1] + 0x00000068u;
|
|
/* 028D5500 */ rbrew_write_f32(cpu->mem, _t7, cpu->f[31]);
|
|
/* 028D5504 */ /* nop */
|
|
/* 028D5508 */ cpu->r[28] = cpu->r[4];
|
|
/* 028D5508 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028D550C */ cpu->r[26] = cpu->r[5];
|
|
/* 028D5510 */ cpu->r[27] = cpu->r[3];
|
|
/* 028D5514 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5514 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D5514 */ if (_t9) goto L_028D5874; else goto L_028D5518;
|
|
L_028D5518: ; // 0x28d5518
|
|
/* 028D5518 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028D551C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D551C */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D551C */ if (_t11) goto L_028D5874; else goto L_028D5520;
|
|
L_028D5520: ; // 0x28d5520
|
|
/* 028D5520 */ _t12 = cpu->r[28] + 0x00000000u;
|
|
/* 028D5520 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D5524 */ _t13 = cpu->r[11] + 0x00000074u;
|
|
/* 028D5524 */ cpu->r[6] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D5528 */ cpu->ctr = cpu->r[6];
|
|
/* 028D552C */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5530 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5534 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5538 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5538 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028D5538 */ if (_t15) goto L_028D5874; else goto L_028D553C;
|
|
L_028D553C: ; // 0x28d553c
|
|
/* 028D553C */ cpu->r[3] = cpu->r[27];
|
|
/* 028D5540 */ Gambit_fn_028D5488(cpu);
|
|
/* 028D5544 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5548 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5548 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D5548 */ if (_t17) goto L_028D56E4; else goto L_028D554C;
|
|
L_028D554C: ; // 0x28d554c
|
|
/* 028D554C */ _t18 = cpu->r[28] + 0x00000000u;
|
|
/* 028D554C */ cpu->r[8] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D5550 */ _t19 = cpu->r[8] + 0x0000008Cu;
|
|
/* 028D5550 */ cpu->r[9] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D5554 */ cpu->ctr = cpu->r[9];
|
|
/* 028D5558 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D555C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5560 */ _t20 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5560 */ cpu->r[10] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D5564 */ _t21 = cpu->r[10] + 0x00000014u;
|
|
/* 028D5564 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D5568 */ cpu->ctr = cpu->r[0];
|
|
/* 028D556C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5570 */ _t22 = cpu->r[28] + 0x00000000u;
|
|
/* 028D5570 */ cpu->r[12] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D5574 */ _t23 = cpu->r[12] + 0x00000044u;
|
|
/* 028D5574 */ cpu->r[4] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D5578 */ cpu->ctr = cpu->r[4];
|
|
/* 028D557C */ cpu->r[25] = 0x00000000u;
|
|
/* 028D5580 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5584 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5588 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D558C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D5590 */ cpu->r[26] = cpu->r[28];
|
|
/* 028D5594 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5594 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D5594 */ if (_t25) goto L_028D55C4; else goto L_028D5598;
|
|
L_028D5598: ; // 0x28d5598
|
|
/* 028D5598 */ _t26 = cpu->r[26] + 0x00000000u;
|
|
/* 028D5598 */ cpu->r[5] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D559C */ _t27 = cpu->r[5] + 0x0000005Cu;
|
|
/* 028D559C */ cpu->r[6] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D55A0 */ cpu->ctr = cpu->r[6];
|
|
/* 028D55A4 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D55A8 */ cpu->r[3] = cpu->r[26];
|
|
/* 028D55AC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D55B0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000000u);
|
|
/* 028D55B4 */ cpu->r[30] = 0x00000000u;
|
|
/* 028D55B8 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D55BC */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D55BC */ _t29 = _t28 & 0x00000001u;
|
|
/* 028D55BC */ if (_t29) goto L_028D568C; else goto L_028D55C0;
|
|
L_028D55C0: ; // 0x28d55c0
|
|
/* 028D55C0 */ goto L_028D55D4;
|
|
L_028D55C4: ; // 0x28d55c4
|
|
/* 028D55C4 */ cpu->r[29] = 0x00000000u;
|
|
/* 028D55C8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000000u);
|
|
/* 028D55CC */ cpu->r[30] = cpu->r[29];
|
|
/* 028D55D0 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D55D0 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028D55D0 */ if (_t31) goto L_028D568C; else goto L_028D55D4;
|
|
L_028D55D4: ; // 0x28d55d4
|
|
/* 028D55D4 */ cpu->r[8] = 0x10140000u;
|
|
/* 028D55D8 */ _t32 = cpu->r[8] + 0xFFFFA8F4u;
|
|
/* 028D55D8 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t32);
|
|
/* 028D55DC */ cpu->r[24] = 0x00000000u;
|
|
L_028D55E0: ; // 0x28d55e0
|
|
/* 028D55E0 */ _t33 = cpu->r[31] + 0x00000004u;
|
|
/* 028D55E0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028D55E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000002u);
|
|
/* 028D55E8 */ _t34 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D55E8 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028D55E8 */ if (_t35) goto L_028D564C; else goto L_028D55EC;
|
|
L_028D55EC: ; // 0x28d55ec
|
|
/* 028D55EC */ _t36 = cpu->r[28] + 0x00000000u;
|
|
/* 028D55EC */ cpu->r[7] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028D55F0 */ _t37 = cpu->r[7] + 0x00000034u;
|
|
/* 028D55F0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028D55F4 */ cpu->ctr = cpu->r[8];
|
|
/* 028D55F8 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D55FC */ cpu->r[4] = cpu->r[31];
|
|
/* 028D5600 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5604 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D5608 */ Gambit_fn_028BDCFC(cpu);
|
|
/* 028D560C */ Gambit_fn_028C2A3C(cpu);
|
|
/* 028D5610 */ cpu->r[6] = cpu->r[3];
|
|
/* 028D5610 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028D5614 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5614 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028D5614 */ if (_t39) goto L_028D5648; else goto L_028D5618;
|
|
L_028D5618: ; // 0x28d5618
|
|
/* 028D5618 */ _t40 = cpu->r[27] + 0x00000018u;
|
|
/* 028D5618 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t40);
|
|
/* 028D561C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[31]);
|
|
/* 028D5620 */ cpu->r[3] = cpu->r[6];
|
|
/* 028D5624 */ /* nop */
|
|
/* 028D5628 */ _t41 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D5628 */ rbrew_write32(cpu->mem, _t41, cpu->r[24]);
|
|
/* 028D562C */ cpu->r[6] = cpu->r[31];
|
|
/* 028D5630 */ cpu->r[9] = rbrew_rlwinm(cpu->r[10], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D5634 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D5638 */ cpu->r[9] = cpu->r[9] ^ 0x00000001u;
|
|
/* 028D563C */ cpu->r[5] = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D5640 */ _t42 = cpu->r[1] + 0x00000008u;
|
|
/* 028D5640 */ rbrew_write32(cpu->mem, _t42, cpu->r[9]);
|
|
/* 028D5644 */ Gambit_fn_028CE44C(cpu);
|
|
L_028D5648: ; // 0x28d5648
|
|
/* 028D5648 */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
L_028D564C: ; // 0x28d564c
|
|
/* 028D564C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D5650 */ cpu->r[31] = cpu->r[29];
|
|
/* 028D5654 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5654 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028D5654 */ if (_t44) goto L_028D5680; else goto L_028D5658;
|
|
L_028D5658: ; // 0x28d5658
|
|
/* 028D5658 */ _t45 = cpu->r[26] + 0x00000000u;
|
|
/* 028D5658 */ cpu->r[11] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028D565C */ _t46 = cpu->r[11] + 0x0000005Cu;
|
|
/* 028D565C */ cpu->r[0] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028D5660 */ cpu->ctr = cpu->r[0];
|
|
/* 028D5664 */ cpu->r[3] = cpu->r[26];
|
|
/* 028D5668 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D566C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5670 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028D5674 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D5678 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5678 */ _t48 = _t47 & 0x00000001u;
|
|
/* 028D5678 */ if (_t48) goto L_028D567C; else goto L_028D55E0;
|
|
L_028D567C: ; // 0x28d567c
|
|
/* 028D567C */ goto L_028D568C;
|
|
L_028D5680: ; // 0x28d5680
|
|
/* 028D5680 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028D5684 */ cpu->r[29] = 0x00000000u;
|
|
/* 028D5688 */ _t49 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5688 */ _t50 = _t49 & 0x00000001u;
|
|
/* 028D5688 */ if (_t50) goto L_028D568C; else goto L_028D55E0;
|
|
L_028D568C: ; // 0x28d568c
|
|
/* 028D568C */ _t51 = cpu->r[28] + 0x00000000u;
|
|
/* 028D568C */ cpu->r[4] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028D5690 */ _t52 = cpu->r[4] + 0x0000008Cu;
|
|
/* 028D5690 */ cpu->r[5] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028D5694 */ cpu->ctr = cpu->r[5];
|
|
/* 028D5698 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D569C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D56A0 */ _t53 = cpu->r[3] + 0x00000000u;
|
|
/* 028D56A0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028D56A4 */ _t54 = cpu->r[6] + 0x0000001Cu;
|
|
/* 028D56A4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028D56A8 */ cpu->ctr = cpu->r[7];
|
|
/* 028D56AC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D56B0 */ cpu->r[3] = cpu->r[25];
|
|
/* 028D56B4 */ /* nop */
|
|
/* 028D56B8 */ _t55 = cpu->r[1] + 0x00000048u;
|
|
/* 028D56B8 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t55);
|
|
/* 028D56BC */ _t56 = cpu->r[1] + 0x00000058u;
|
|
/* 028D56BC */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t56);
|
|
/* 028D56C0 */ _t57 = cpu->r[1] + 0x00000040u;
|
|
/* 028D56C0 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t57);
|
|
/* 028D56C4 */ _t58 = cpu->r[1] + 0x00000068u;
|
|
/* 028D56C4 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t58);
|
|
/* 028D56C8 */ _t59 = cpu->r[1] + 0x00000050u;
|
|
/* 028D56C8 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t59);
|
|
/* 028D56CC */ _t60 = cpu->r[1] + 0x00000060u;
|
|
/* 028D56CC */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t60);
|
|
/* 028D56D0 */ _t61 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D56D0 */ _t62 = _t61 & 0x00000001u;
|
|
/* 028D56D0 */ if (_t62) goto L_028D56D4; // else: addr-0 trap, fall-through
|
|
L_028D56D4: ; // 0x28d56d4
|
|
/* 028D56D4 */ _t63 = cpu->r[1] + 0x00000074u;
|
|
/* 028D56D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028D56D8 */ cpu->lr = cpu->r[0];
|
|
/* 028D56DC */ cpu->r[1] = cpu->r[1] + 0x00000070u;
|
|
/* 028D56E0 */ return;
|
|
L_028D56E4: ; // 0x28d56e4
|
|
/* 028D56E4 */ _t64 = cpu->r[27] + 0x00000000u;
|
|
/* 028D56E4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028D56E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028D56EC */ _t65 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D56EC */ _t66 = _t65 & 0x00000001u;
|
|
/* 028D56EC */ if (_t66) goto L_028D56F0; else goto L_028D58A8;
|
|
L_028D56F0: ; // 0x28d56f0
|
|
/* 028D56F0 */ _t67 = cpu->r[28] + 0x00000000u;
|
|
/* 028D56F0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028D56F4 */ _t68 = cpu->r[9] + 0x0000008Cu;
|
|
/* 028D56F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028D56F8 */ cpu->ctr = cpu->r[0];
|
|
/* 028D56FC */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5700 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5704 */ _t69 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5704 */ cpu->r[12] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028D5708 */ _t70 = cpu->r[12] + 0x00000014u;
|
|
/* 028D5708 */ cpu->r[7] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028D570C */ cpu->ctr = cpu->r[7];
|
|
/* 028D5710 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5714 */ _t71 = cpu->r[26] + 0x00000000u;
|
|
/* 028D5714 */ cpu->r[9] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028D5718 */ _t72 = cpu->r[9] + 0x0000008Cu;
|
|
/* 028D5718 */ cpu->r[10] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028D571C */ cpu->ctr = cpu->r[10];
|
|
/* 028D5720 */ cpu->r[3] = cpu->r[26];
|
|
/* 028D5724 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5728 */ _t73 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5728 */ cpu->r[11] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028D572C */ _t74 = cpu->r[11] + 0x00000014u;
|
|
/* 028D572C */ cpu->r[0] = rbrew_read32(cpu->mem, _t74);
|
|
/* 028D5730 */ cpu->ctr = cpu->r[0];
|
|
/* 028D5734 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5738 */ _t75 = cpu->r[28] + 0x00000000u;
|
|
/* 028D5738 */ cpu->r[4] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028D573C */ _t76 = cpu->r[4] + 0x00000044u;
|
|
/* 028D573C */ cpu->r[5] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028D5740 */ cpu->ctr = cpu->r[5];
|
|
/* 028D5744 */ cpu->r[24] = 0x00000000u;
|
|
/* 028D5748 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D574C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5750 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5754 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D5758 */ cpu->r[29] = cpu->r[28];
|
|
/* 028D575C */ _t77 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D575C */ _t78 = _t77 & 0x00000001u;
|
|
/* 028D575C */ if (_t78) goto L_028D578C; else goto L_028D5760;
|
|
L_028D5760: ; // 0x28d5760
|
|
/* 028D5760 */ _t79 = cpu->r[29] + 0x00000000u;
|
|
/* 028D5760 */ cpu->r[6] = rbrew_read32(cpu->mem, _t79);
|
|
/* 028D5764 */ _t80 = cpu->r[6] + 0x0000005Cu;
|
|
/* 028D5764 */ cpu->r[7] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028D5768 */ cpu->ctr = cpu->r[7];
|
|
/* 028D576C */ cpu->r[4] = cpu->r[30];
|
|
/* 028D5770 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D5774 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5778 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], 0x00000000u);
|
|
/* 028D577C */ cpu->r[25] = 0x00000000u;
|
|
/* 028D5780 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D5784 */ _t81 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5784 */ _t82 = _t81 & 0x00000001u;
|
|
/* 028D5784 */ if (_t82) goto L_028D581C; else goto L_028D5788;
|
|
L_028D5788: ; // 0x28d5788
|
|
/* 028D5788 */ goto L_028D579C;
|
|
L_028D578C: ; // 0x28d578c
|
|
/* 028D578C */ cpu->r[31] = 0x00000000u;
|
|
/* 028D5790 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], 0x00000000u);
|
|
/* 028D5794 */ cpu->r[25] = cpu->r[31];
|
|
/* 028D5798 */ _t83 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5798 */ _t84 = _t83 & 0x00000001u;
|
|
/* 028D5798 */ if (_t84) goto L_028D581C; else goto L_028D579C;
|
|
L_028D579C: ; // 0x28d579c
|
|
/* 028D579C */ _t85 = cpu->r[30] + 0x00000004u;
|
|
/* 028D579C */ cpu->r[0] = rbrew_read32(cpu->mem, _t85);
|
|
/* 028D57A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000002u);
|
|
/* 028D57A4 */ _t86 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D57A4 */ _t87 = _t86 & 0x00000001u;
|
|
/* 028D57A4 */ if (_t87) goto L_028D57DC; else goto L_028D57A8;
|
|
L_028D57A8: ; // 0x28d57a8
|
|
/* 028D57A8 */ _t88 = cpu->r[28] + 0x00000000u;
|
|
/* 028D57A8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t88);
|
|
/* 028D57AC */ _t89 = cpu->r[8] + 0x00000034u;
|
|
/* 028D57AC */ cpu->r[9] = rbrew_read32(cpu->mem, _t89);
|
|
/* 028D57B0 */ cpu->ctr = cpu->r[9];
|
|
/* 028D57B4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D57B8 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D57BC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D57C0 */ _t90 = cpu->r[26] + 0x00000000u;
|
|
/* 028D57C0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t90);
|
|
/* 028D57C4 */ _t91 = cpu->r[11] + 0x00000014u;
|
|
/* 028D57C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t91);
|
|
/* 028D57C8 */ cpu->ctr = cpu->r[0];
|
|
/* 028D57CC */ cpu->r[3] = cpu->r[26];
|
|
/* 028D57D0 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D57D4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D57D8 */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
L_028D57DC: ; // 0x28d57dc
|
|
/* 028D57DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D57E0 */ cpu->r[30] = cpu->r[31];
|
|
/* 028D57E4 */ _t92 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D57E4 */ _t93 = _t92 & 0x00000001u;
|
|
/* 028D57E4 */ if (_t93) goto L_028D5810; else goto L_028D57E8;
|
|
L_028D57E8: ; // 0x28d57e8
|
|
/* 028D57E8 */ _t94 = cpu->r[29] + 0x00000000u;
|
|
/* 028D57E8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t94);
|
|
/* 028D57EC */ _t95 = cpu->r[5] + 0x0000005Cu;
|
|
/* 028D57EC */ cpu->r[6] = rbrew_read32(cpu->mem, _t95);
|
|
/* 028D57F0 */ cpu->ctr = cpu->r[6];
|
|
/* 028D57F4 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D57F8 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D57FC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5800 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[25]);
|
|
/* 028D5804 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D5808 */ _t96 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5808 */ _t97 = _t96 & 0x00000001u;
|
|
/* 028D5808 */ if (_t97) goto L_028D580C; else goto L_028D579C;
|
|
L_028D580C: ; // 0x28d580c
|
|
/* 028D580C */ goto L_028D581C;
|
|
L_028D5810: ; // 0x28d5810
|
|
/* 028D5810 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[25]);
|
|
/* 028D5814 */ cpu->r[31] = 0x00000000u;
|
|
/* 028D5818 */ _t98 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5818 */ _t99 = _t98 & 0x00000001u;
|
|
/* 028D5818 */ if (_t99) goto L_028D581C; else goto L_028D579C;
|
|
L_028D581C: ; // 0x28d581c
|
|
/* 028D581C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], 0x00000000u);
|
|
/* 028D5820 */ _t100 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D5820 */ _t101 = _t100 & 0x00000001u;
|
|
/* 028D5820 */ if (_t101) goto L_028D5824; else goto L_028D582C;
|
|
L_028D5824: ; // 0x28d5824
|
|
/* 028D5824 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D5828 */ Gambit_fn_028D54B8(cpu);
|
|
L_028D582C: ; // 0x28d582c
|
|
/* 028D582C */ _t102 = cpu->r[26] + 0x00000000u;
|
|
/* 028D582C */ cpu->r[7] = rbrew_read32(cpu->mem, _t102);
|
|
/* 028D5830 */ _t103 = cpu->r[7] + 0x0000008Cu;
|
|
/* 028D5830 */ cpu->r[8] = rbrew_read32(cpu->mem, _t103);
|
|
/* 028D5834 */ cpu->ctr = cpu->r[8];
|
|
/* 028D5838 */ cpu->r[3] = cpu->r[26];
|
|
/* 028D583C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5840 */ _t104 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5840 */ cpu->r[9] = rbrew_read32(cpu->mem, _t104);
|
|
/* 028D5844 */ _t105 = cpu->r[9] + 0x0000001Cu;
|
|
/* 028D5844 */ cpu->r[10] = rbrew_read32(cpu->mem, _t105);
|
|
/* 028D5848 */ cpu->ctr = cpu->r[10];
|
|
/* 028D584C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5850 */ _t106 = cpu->r[28] + 0x00000000u;
|
|
/* 028D5850 */ cpu->r[12] = rbrew_read32(cpu->mem, _t106);
|
|
/* 028D5854 */ _t107 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D5854 */ cpu->r[0] = rbrew_read32(cpu->mem, _t107);
|
|
/* 028D5858 */ cpu->ctr = cpu->r[0];
|
|
/* 028D585C */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5860 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5864 */ _t108 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5864 */ cpu->r[4] = rbrew_read32(cpu->mem, _t108);
|
|
/* 028D5868 */ _t109 = cpu->r[4] + 0x0000001Cu;
|
|
/* 028D5868 */ cpu->r[5] = rbrew_read32(cpu->mem, _t109);
|
|
/* 028D586C */ cpu->ctr = cpu->r[5];
|
|
/* 028D5870 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D5874: ; // 0x28d5874
|
|
/* 028D5874 */ /* nop */
|
|
/* 028D5878 */ _t110 = cpu->r[1] + 0x00000048u;
|
|
/* 028D5878 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t110);
|
|
/* 028D587C */ _t111 = cpu->r[1] + 0x00000068u;
|
|
/* 028D587C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t111);
|
|
/* 028D5880 */ _t112 = cpu->r[1] + 0x00000040u;
|
|
/* 028D5880 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t112);
|
|
/* 028D5884 */ _t113 = cpu->r[1] + 0x00000058u;
|
|
/* 028D5884 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t113);
|
|
/* 028D5888 */ _t114 = cpu->r[1] + 0x00000060u;
|
|
/* 028D5888 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t114);
|
|
/* 028D588C */ _t115 = cpu->r[1] + 0x00000050u;
|
|
/* 028D588C */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t115);
|
|
/* 028D5890 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D5894 */ _t116 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5894 */ _t117 = _t116 & 0x00000001u;
|
|
/* 028D5894 */ if (_t117) goto L_028D5898; // else: addr-0 trap, fall-through
|
|
L_028D5898: ; // 0x28d5898
|
|
/* 028D5898 */ _t118 = cpu->r[1] + 0x00000074u;
|
|
/* 028D5898 */ cpu->r[0] = rbrew_read32(cpu->mem, _t118);
|
|
/* 028D589C */ cpu->lr = cpu->r[0];
|
|
/* 028D58A0 */ cpu->r[1] = cpu->r[1] + 0x00000070u;
|
|
/* 028D58A4 */ return;
|
|
L_028D58A8: ; // 0x28d58a8
|
|
/* 028D58A8 */ _t119 = cpu->r[28] + 0x00000000u;
|
|
/* 028D58A8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t119);
|
|
/* 028D58AC */ _t120 = cpu->r[7] + 0x0000008Cu;
|
|
/* 028D58AC */ cpu->r[8] = rbrew_read32(cpu->mem, _t120);
|
|
/* 028D58B0 */ cpu->ctr = cpu->r[8];
|
|
/* 028D58B4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D58B8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D58BC */ _t121 = cpu->r[3] + 0x00000000u;
|
|
/* 028D58BC */ cpu->r[10] = rbrew_read32(cpu->mem, _t121);
|
|
/* 028D58C0 */ _t122 = cpu->r[10] + 0x00000014u;
|
|
/* 028D58C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t122);
|
|
/* 028D58C4 */ cpu->ctr = cpu->r[0];
|
|
/* 028D58C8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D58CC */ _t123 = cpu->r[26] + 0x00000000u;
|
|
/* 028D58CC */ cpu->r[12] = rbrew_read32(cpu->mem, _t123);
|
|
/* 028D58D0 */ _t124 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D58D0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t124);
|
|
/* 028D58D4 */ cpu->ctr = cpu->r[4];
|
|
/* 028D58D8 */ cpu->r[3] = cpu->r[26];
|
|
/* 028D58DC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D58E0 */ _t125 = cpu->r[3] + 0x00000000u;
|
|
/* 028D58E0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t125);
|
|
/* 028D58E4 */ _t126 = cpu->r[5] + 0x00000014u;
|
|
/* 028D58E4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t126);
|
|
/* 028D58E8 */ cpu->ctr = cpu->r[7];
|
|
/* 028D58EC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D58F0 */ _t127 = cpu->r[28] + 0x00000000u;
|
|
/* 028D58F0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t127);
|
|
/* 028D58F4 */ _t128 = cpu->r[8] + 0x00000084u;
|
|
/* 028D58F4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t128);
|
|
/* 028D58F8 */ cpu->r[4] = 0x028D0000u;
|
|
/* 028D58FC */ cpu->ctr = cpu->r[9];
|
|
/* 028D5900 */ cpu->r[4] = cpu->r[4] + 0x00005CA4u;
|
|
/* 028D5904 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5908 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D590C */ _t129 = cpu->r[28] + 0x00000000u;
|
|
/* 028D590C */ cpu->r[10] = rbrew_read32(cpu->mem, _t129);
|
|
/* 028D5910 */ _t130 = cpu->r[10] + 0x00000044u;
|
|
/* 028D5910 */ cpu->r[11] = rbrew_read32(cpu->mem, _t130);
|
|
/* 028D5914 */ cpu->ctr = cpu->r[11];
|
|
/* 028D5918 */ cpu->r[24] = 0x00000000u;
|
|
/* 028D591C */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5920 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5924 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5928 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D592C */ cpu->r[29] = cpu->r[28];
|
|
/* 028D5930 */ _t131 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5930 */ _t132 = _t131 & 0x00000001u;
|
|
/* 028D5930 */ if (_t132) goto L_028D5960; else goto L_028D5934;
|
|
L_028D5934: ; // 0x28d5934
|
|
/* 028D5934 */ _t133 = cpu->r[29] + 0x00000000u;
|
|
/* 028D5934 */ cpu->r[12] = rbrew_read32(cpu->mem, _t133);
|
|
/* 028D5938 */ _t134 = cpu->r[12] + 0x0000005Cu;
|
|
/* 028D5938 */ cpu->r[0] = rbrew_read32(cpu->mem, _t134);
|
|
/* 028D593C */ cpu->ctr = cpu->r[0];
|
|
/* 028D5940 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D5944 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D5948 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D594C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], 0x00000000u);
|
|
/* 028D5950 */ cpu->r[25] = 0x00000000u;
|
|
/* 028D5954 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D5958 */ _t135 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5958 */ _t136 = _t135 & 0x00000001u;
|
|
/* 028D5958 */ if (_t136) goto L_028D5A04; else goto L_028D595C;
|
|
L_028D595C: ; // 0x28d595c
|
|
/* 028D595C */ goto L_028D5970;
|
|
L_028D5960: ; // 0x28d5960
|
|
/* 028D5960 */ cpu->r[31] = 0x00000000u;
|
|
/* 028D5964 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], 0x00000000u);
|
|
/* 028D5968 */ cpu->r[25] = cpu->r[31];
|
|
/* 028D596C */ _t137 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D596C */ _t138 = _t137 & 0x00000001u;
|
|
/* 028D596C */ if (_t138) goto L_028D5A04; else goto L_028D5970;
|
|
L_028D5970: ; // 0x28d5970
|
|
/* 028D5970 */ _t139 = cpu->r[30] + 0x00000004u;
|
|
/* 028D5970 */ cpu->r[10] = rbrew_read32(cpu->mem, _t139);
|
|
/* 028D5974 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000002u);
|
|
/* 028D5978 */ _t140 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5978 */ _t141 = _t140 & 0x00000001u;
|
|
/* 028D5978 */ if (_t141) goto L_028D59C4; else goto L_028D597C;
|
|
L_028D597C: ; // 0x28d597c
|
|
/* 028D597C */ _t142 = cpu->r[28] + 0x00000000u;
|
|
/* 028D597C */ cpu->r[5] = rbrew_read32(cpu->mem, _t142);
|
|
/* 028D5980 */ _t143 = cpu->r[5] + 0x00000034u;
|
|
/* 028D5980 */ cpu->r[6] = rbrew_read32(cpu->mem, _t143);
|
|
/* 028D5984 */ cpu->ctr = cpu->r[6];
|
|
/* 028D5988 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D598C */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5990 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5994 */ _t144 = cpu->r[26] + 0x00000000u;
|
|
/* 028D5994 */ cpu->r[7] = rbrew_read32(cpu->mem, _t144);
|
|
/* 028D5998 */ _t145 = cpu->r[7] + 0x00000014u;
|
|
/* 028D5998 */ cpu->r[8] = rbrew_read32(cpu->mem, _t145);
|
|
/* 028D599C */ cpu->ctr = cpu->r[8];
|
|
/* 028D59A0 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D59A4 */ cpu->r[3] = cpu->r[26];
|
|
/* 028D59A8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D59AC */ cpu->r[3] = cpu->r[27];
|
|
/* 028D59B0 */ Gambit_fn_028D54B8(cpu);
|
|
/* 028D59B4 */ _t146 = cpu->r[27] + 0x00000000u;
|
|
/* 028D59B4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t146);
|
|
/* 028D59B8 */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
/* 028D59BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], cpu->r[9]);
|
|
/* 028D59C0 */ _t147 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D59C0 */ _t148 = _t147 & 0x00000001u;
|
|
/* 028D59C0 */ if (_t148) goto L_028D59C4; else goto L_028D5A04;
|
|
L_028D59C4: ; // 0x28d59c4
|
|
/* 028D59C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D59C8 */ cpu->r[30] = cpu->r[31];
|
|
/* 028D59CC */ _t149 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D59CC */ _t150 = _t149 & 0x00000001u;
|
|
/* 028D59CC */ if (_t150) goto L_028D59F8; else goto L_028D59D0;
|
|
L_028D59D0: ; // 0x28d59d0
|
|
/* 028D59D0 */ _t151 = cpu->r[29] + 0x00000000u;
|
|
/* 028D59D0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t151);
|
|
/* 028D59D4 */ _t152 = cpu->r[10] + 0x0000005Cu;
|
|
/* 028D59D4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t152);
|
|
/* 028D59D8 */ cpu->ctr = cpu->r[11];
|
|
/* 028D59DC */ cpu->r[3] = cpu->r[29];
|
|
/* 028D59E0 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D59E4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D59E8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[25]);
|
|
/* 028D59EC */ cpu->r[31] = cpu->r[3];
|
|
/* 028D59F0 */ _t153 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D59F0 */ _t154 = _t153 & 0x00000001u;
|
|
/* 028D59F0 */ if (_t154) goto L_028D59F4; else goto L_028D5970;
|
|
L_028D59F4: ; // 0x28d59f4
|
|
/* 028D59F4 */ goto L_028D5A04;
|
|
L_028D59F8: ; // 0x28d59f8
|
|
/* 028D59F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[25]);
|
|
/* 028D59FC */ cpu->r[31] = 0x00000000u;
|
|
/* 028D5A00 */ _t155 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5A00 */ _t156 = _t155 & 0x00000001u;
|
|
/* 028D5A00 */ if (_t156) goto L_028D5A04; else goto L_028D5970;
|
|
L_028D5A04: ; // 0x28d5a04
|
|
/* 028D5A04 */ _t157 = cpu->r[26] + 0x00000000u;
|
|
/* 028D5A04 */ cpu->r[12] = rbrew_read32(cpu->mem, _t157);
|
|
/* 028D5A08 */ _t158 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028D5A08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t158);
|
|
/* 028D5A0C */ cpu->ctr = cpu->r[0];
|
|
/* 028D5A10 */ cpu->r[3] = cpu->r[26];
|
|
/* 028D5A14 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5A18 */ _t159 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5A18 */ cpu->r[4] = rbrew_read32(cpu->mem, _t159);
|
|
/* 028D5A1C */ _t160 = cpu->r[4] + 0x0000001Cu;
|
|
/* 028D5A1C */ cpu->r[5] = rbrew_read32(cpu->mem, _t160);
|
|
/* 028D5A20 */ cpu->ctr = cpu->r[5];
|
|
/* 028D5A24 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5A28 */ _t161 = cpu->r[28] + 0x00000000u;
|
|
/* 028D5A28 */ cpu->r[6] = rbrew_read32(cpu->mem, _t161);
|
|
/* 028D5A2C */ _t162 = cpu->r[6] + 0x0000008Cu;
|
|
/* 028D5A2C */ cpu->r[7] = rbrew_read32(cpu->mem, _t162);
|
|
/* 028D5A30 */ cpu->ctr = cpu->r[7];
|
|
/* 028D5A34 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5A38 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5A3C */ _t163 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5A3C */ cpu->r[8] = rbrew_read32(cpu->mem, _t163);
|
|
/* 028D5A40 */ _t164 = cpu->r[8] + 0x0000001Cu;
|
|
/* 028D5A40 */ cpu->r[9] = rbrew_read32(cpu->mem, _t164);
|
|
/* 028D5A44 */ cpu->ctr = cpu->r[9];
|
|
/* 028D5A48 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5A4C */ _t165 = cpu->r[28] + 0x00000000u;
|
|
/* 028D5A4C */ cpu->r[10] = rbrew_read32(cpu->mem, _t165);
|
|
/* 028D5A50 */ _t166 = cpu->r[10] + 0x0000008Cu;
|
|
/* 028D5A50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t166);
|
|
/* 028D5A54 */ cpu->ctr = cpu->r[0];
|
|
/* 028D5A58 */ cpu->r[25] = 0x00000000u;
|
|
/* 028D5A5C */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5A60 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5A64 */ _t167 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5A64 */ cpu->r[12] = rbrew_read32(cpu->mem, _t167);
|
|
/* 028D5A68 */ _t168 = cpu->r[12] + 0x00000014u;
|
|
/* 028D5A68 */ cpu->r[4] = rbrew_read32(cpu->mem, _t168);
|
|
/* 028D5A6C */ cpu->ctr = cpu->r[4];
|
|
/* 028D5A70 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5A74 */ _t169 = cpu->r[28] + 0x00000000u;
|
|
/* 028D5A74 */ cpu->r[5] = rbrew_read32(cpu->mem, _t169);
|
|
/* 028D5A78 */ _t170 = cpu->r[5] + 0x00000044u;
|
|
/* 028D5A78 */ cpu->r[6] = rbrew_read32(cpu->mem, _t170);
|
|
/* 028D5A7C */ _t171 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028D5A7C */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t171);
|
|
/* 028D5A80 */ cpu->ctr = cpu->r[6];
|
|
/* 028D5A84 */ _t172 = cpu->r[27] + 0x00000010u;
|
|
/* 028D5A84 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t172);
|
|
/* 028D5A88 */ _t173 = cpu->r[27] + 0x00000008u;
|
|
/* 028D5A88 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t173);
|
|
/* 028D5A8C */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5A90 */ _t174 = cpu->r[27] + 0x00000004u;
|
|
/* 028D5A90 */ cpu->r[23] = rbrew_read32(cpu->mem, _t174);
|
|
/* 028D5A94 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5A98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5A9C */ cpu->r[29] = cpu->r[28];
|
|
/* 028D5AA0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D5AA4 */ _t175 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5AA4 */ _t176 = _t175 & 0x00000001u;
|
|
/* 028D5AA4 */ if (_t176) goto L_028D5AD4; else goto L_028D5AA8;
|
|
L_028D5AA8: ; // 0x28d5aa8
|
|
/* 028D5AA8 */ _t177 = cpu->r[29] + 0x00000000u;
|
|
/* 028D5AA8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t177);
|
|
/* 028D5AAC */ _t178 = cpu->r[7] + 0x0000005Cu;
|
|
/* 028D5AAC */ cpu->r[8] = rbrew_read32(cpu->mem, _t178);
|
|
/* 028D5AB0 */ cpu->ctr = cpu->r[8];
|
|
/* 028D5AB4 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D5AB8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D5ABC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5AC0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000000u);
|
|
/* 028D5AC4 */ cpu->r[30] = 0x00000000u;
|
|
/* 028D5AC8 */ cpu->r[26] = cpu->r[3];
|
|
/* 028D5ACC */ _t179 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5ACC */ _t180 = _t179 & 0x00000001u;
|
|
/* 028D5ACC */ if (_t180) goto L_028D5BE0; else goto L_028D5AD0;
|
|
L_028D5AD0: ; // 0x28d5ad0
|
|
/* 028D5AD0 */ goto L_028D5AE4;
|
|
L_028D5AD4: ; // 0x28d5ad4
|
|
/* 028D5AD4 */ cpu->r[26] = 0x00000000u;
|
|
/* 028D5AD8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000000u);
|
|
/* 028D5ADC */ cpu->r[30] = cpu->r[26];
|
|
/* 028D5AE0 */ _t181 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5AE0 */ _t182 = _t181 & 0x00000001u;
|
|
/* 028D5AE0 */ if (_t182) goto L_028D5BE0; else goto L_028D5AE4;
|
|
L_028D5AE4: ; // 0x28d5ae4
|
|
/* 028D5AE4 */ cpu->r[24] = 0x00000000u;
|
|
L_028D5AE8: ; // 0x28d5ae8
|
|
/* 028D5AE8 */ _t183 = cpu->r[31] + 0x00000004u;
|
|
/* 028D5AE8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t183);
|
|
/* 028D5AEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000002u);
|
|
/* 028D5AF0 */ _t184 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5AF0 */ _t185 = _t184 & 0x00000001u;
|
|
/* 028D5AF0 */ if (_t185) goto L_028D5BA0; else goto L_028D5AF4;
|
|
L_028D5AF4: ; // 0x28d5af4
|
|
/* 028D5AF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 028D5AF8 */ _t186 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D5AF8 */ _t187 = _t186 & 0x00000001u;
|
|
/* 028D5AF8 */ if (_t187) goto L_028D5AFC; else goto L_028D5B54;
|
|
L_028D5AFC: ; // 0x28d5afc
|
|
/* 028D5AFC */ cpu->f[1] = cpu->f[29];
|
|
/* 028D5B00 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D5B04 */ Gambit_fn_028BE6D4(cpu);
|
|
/* 028D5B08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5B0C */ _t188 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5B0C */ _t189 = _t188 & 0x00000001u;
|
|
/* 028D5B0C */ if (_t189) goto L_028D5BA0; else goto L_028D5B10;
|
|
L_028D5B10: ; // 0x28d5b10
|
|
/* 028D5B10 */ _t190 = cpu->r[31] + 0x00000114u;
|
|
/* 028D5B10 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t190);
|
|
/* 028D5B14 */ _t191 = cpu->r[31] + 0x00000118u;
|
|
/* 028D5B14 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t191);
|
|
/* 028D5B18 */ cpu->f[9] = cpu->f[9] * cpu->f[30];
|
|
/* 028D5B1C */ cpu->f[10] = cpu->f[10] * cpu->f[31];
|
|
/* 028D5B20 */ _t192 = cpu->r[31] + 0x00000114u;
|
|
/* 028D5B20 */ rbrew_write_f32(cpu->mem, _t192, cpu->f[9]);
|
|
/* 028D5B24 */ _t193 = cpu->r[31] + 0x00000118u;
|
|
/* 028D5B24 */ rbrew_write_f32(cpu->mem, _t193, cpu->f[10]);
|
|
/* 028D5B28 */ _t194 = cpu->r[27] + 0x00000008u;
|
|
/* 028D5B28 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t194);
|
|
/* 028D5B2C */ _t195 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028D5B2C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t195);
|
|
/* 028D5B30 */ cpu->f[29] = cpu->f[29] + cpu->f[11];
|
|
/* 028D5B34 */ _t196 = cpu->r[27] + 0x00000010u;
|
|
/* 028D5B34 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t196);
|
|
/* 028D5B38 */ cpu->f[30] = cpu->f[30] * cpu->f[12];
|
|
/* 028D5B3C */ cpu->r[31] = cpu->r[26];
|
|
/* 028D5B40 */ cpu->r[23] = cpu->r[23] + 0xFFFFFFFFu;
|
|
/* 028D5B44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028D5B48 */ cpu->f[31] = cpu->f[31] * cpu->f[13];
|
|
/* 028D5B4C */ _t197 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5B4C */ _t198 = _t197 & 0x00000001u;
|
|
/* 028D5B4C */ if (_t198) goto L_028D5B50; else goto L_028D5BAC;
|
|
L_028D5B50: ; // 0x28d5b50
|
|
/* 028D5B50 */ goto L_028D5BD4;
|
|
L_028D5B54: ; // 0x28d5b54
|
|
/* 028D5B54 */ _t199 = cpu->r[28] + 0x00000000u;
|
|
/* 028D5B54 */ cpu->r[10] = rbrew_read32(cpu->mem, _t199);
|
|
/* 028D5B58 */ _t200 = cpu->r[10] + 0x00000034u;
|
|
/* 028D5B58 */ cpu->r[11] = rbrew_read32(cpu->mem, _t200);
|
|
/* 028D5B5C */ cpu->ctr = cpu->r[11];
|
|
/* 028D5B60 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5B64 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D5B68 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5B6C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D5B70 */ Gambit_fn_028BDCFC(cpu);
|
|
/* 028D5B74 */ Gambit_fn_028C2A3C(cpu);
|
|
/* 028D5B78 */ cpu->r[9] = cpu->r[3];
|
|
/* 028D5B78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028D5B7C */ _t201 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5B7C */ _t202 = _t201 & 0x00000001u;
|
|
/* 028D5B7C */ if (_t202) goto L_028D5B9C; else goto L_028D5B80;
|
|
L_028D5B80: ; // 0x28d5b80
|
|
/* 028D5B80 */ _t203 = cpu->r[1] + 0x00000010u;
|
|
/* 028D5B80 */ rbrew_write32(cpu->mem, _t203, cpu->r[24]);
|
|
/* 028D5B84 */ cpu->r[3] = cpu->r[9];
|
|
/* 028D5B88 */ cpu->r[6] = cpu->r[31];
|
|
/* 028D5B8C */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 028D5B90 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028D5B94 */ _t204 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5B94 */ rbrew_write32(cpu->mem, _t204, cpu->r[24]);
|
|
/* 028D5B98 */ Gambit_fn_028CE44C(cpu);
|
|
L_028D5B9C: ; // 0x28d5b9c
|
|
/* 028D5B9C */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
L_028D5BA0: ; // 0x28d5ba0
|
|
/* 028D5BA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028D5BA4 */ cpu->r[31] = cpu->r[26];
|
|
/* 028D5BA8 */ _t205 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5BA8 */ _t206 = _t205 & 0x00000001u;
|
|
/* 028D5BA8 */ if (_t206) goto L_028D5BD4; else goto L_028D5BAC;
|
|
L_028D5BAC: ; // 0x28d5bac
|
|
/* 028D5BAC */ _t207 = cpu->r[29] + 0x00000000u;
|
|
/* 028D5BAC */ cpu->r[12] = rbrew_read32(cpu->mem, _t207);
|
|
/* 028D5BB0 */ _t208 = cpu->r[12] + 0x0000005Cu;
|
|
/* 028D5BB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t208);
|
|
/* 028D5BB4 */ cpu->ctr = cpu->r[0];
|
|
/* 028D5BB8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D5BBC */ cpu->r[4] = cpu->r[31];
|
|
/* 028D5BC0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5BC4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028D5BC8 */ cpu->r[26] = cpu->r[3];
|
|
/* 028D5BCC */ _t209 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5BCC */ _t210 = _t209 & 0x00000001u;
|
|
/* 028D5BCC */ if (_t210) goto L_028D5BD0; else goto L_028D5AE8;
|
|
L_028D5BD0: ; // 0x28d5bd0
|
|
/* 028D5BD0 */ goto L_028D5BE0;
|
|
L_028D5BD4: ; // 0x28d5bd4
|
|
/* 028D5BD4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028D5BD8 */ cpu->r[26] = 0x00000000u;
|
|
/* 028D5BDC */ _t211 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5BDC */ _t212 = _t211 & 0x00000001u;
|
|
/* 028D5BDC */ if (_t212) goto L_028D5BE0; else goto L_028D5AE8;
|
|
L_028D5BE0: ; // 0x28d5be0
|
|
/* 028D5BE0 */ _t213 = cpu->r[28] + 0x00000000u;
|
|
/* 028D5BE0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t213);
|
|
/* 028D5BE4 */ _t214 = cpu->r[4] + 0x0000008Cu;
|
|
/* 028D5BE4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t214);
|
|
/* 028D5BE8 */ cpu->ctr = cpu->r[0];
|
|
/* 028D5BEC */ cpu->r[3] = cpu->r[28];
|
|
/* 028D5BF0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5BF4 */ _t215 = cpu->r[3] + 0x00000000u;
|
|
/* 028D5BF4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t215);
|
|
/* 028D5BF8 */ _t216 = cpu->r[6] + 0x0000001Cu;
|
|
/* 028D5BF8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t216);
|
|
/* 028D5BFC */ cpu->ctr = cpu->r[0];
|
|
/* 028D5C00 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5C04 */ cpu->r[3] = cpu->r[25];
|
|
/* 028D5C08 */ /* nop */
|
|
/* 028D5C0C */ _t217 = cpu->r[1] + 0x00000048u;
|
|
/* 028D5C0C */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t217);
|
|
/* 028D5C10 */ _t218 = cpu->r[1] + 0x00000058u;
|
|
/* 028D5C10 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t218);
|
|
/* 028D5C14 */ _t219 = cpu->r[1] + 0x00000040u;
|
|
/* 028D5C14 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t219);
|
|
/* 028D5C18 */ _t220 = cpu->r[1] + 0x00000068u;
|
|
/* 028D5C18 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t220);
|
|
/* 028D5C1C */ _t221 = cpu->r[1] + 0x00000050u;
|
|
/* 028D5C1C */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t221);
|
|
/* 028D5C20 */ _t222 = cpu->r[1] + 0x00000060u;
|
|
/* 028D5C20 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t222);
|
|
/* 028D5C24 */ _t223 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5C24 */ _t224 = _t223 & 0x00000001u;
|
|
/* 028D5C24 */ if (_t224) goto L_028D5C28; // else: addr-0 trap, fall-through
|
|
L_028D5C28: ; // 0x28d5c28
|
|
/* 028D5C28 */ _t225 = cpu->r[1] + 0x00000074u;
|
|
/* 028D5C28 */ cpu->r[0] = rbrew_read32(cpu->mem, _t225);
|
|
/* 028D5C2C */ cpu->lr = cpu->r[0];
|
|
/* 028D5C30 */ cpu->r[1] = cpu->r[1] + 0x00000070u;
|
|
/* 028D5C34 */ return;
|
|
}
|
|
|
|
// fn_028D5C38 @ 0x28d5c38
|
|
void Gambit_fn_028D5C38(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028D5C38: ; // 0x28d5c38
|
|
/* 028D5C38 */ cpu->r[0] = cpu->lr;
|
|
/* 028D5C3C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D5C3C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D5C3C */ cpu->r[1] = _t0;
|
|
/* 028D5C40 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D5C40 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D5C44 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D5C48 */ cpu->r[3] = cpu->r[31] + 0x00000018u;
|
|
/* 028D5C4C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5C4C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D5C50 */ Gambit_fn_028ED3D8(cpu);
|
|
/* 028D5C54 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D5C58 */ _t3 = cpu->r[31] + 0x00000018u;
|
|
/* 028D5C58 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t3);
|
|
/* 028D5C5C */ _t4 = cpu->r[12] + 0xFFFFA8F4u;
|
|
/* 028D5C5C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028D5C60 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[0]);
|
|
/* 028D5C64 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5C64 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D5C64 */ if (_t6) goto L_028D5C7C; else goto L_028D5C68;
|
|
L_028D5C68: ; // 0x28d5c68
|
|
/* 028D5C68 */ _t7 = cpu->r[31] + 0x00000014u;
|
|
/* 028D5C68 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028D5C6C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[0]);
|
|
/* 028D5C70 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5C70 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D5C70 */ if (_t9) goto L_028D5C7C; else goto L_028D5C74;
|
|
L_028D5C74: ; // 0x28d5c74
|
|
/* 028D5C74 */ cpu->r[3] = cpu->r[31] + 0x00000018u;
|
|
/* 028D5C78 */ Gambit_fn_028ED440(cpu);
|
|
L_028D5C7C: ; // 0x28d5c7c
|
|
/* 028D5C7C */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5C7C */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D5C80 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D5C80 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D5C84 */ cpu->lr = cpu->r[0];
|
|
/* 028D5C88 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D5C8C */ return;
|
|
}
|
|
|
|
// fn_028D5C3C @ 0x28d5c3c
|
|
void Gambit_fn_028D5C3C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028D5C3C: ; // 0x28d5c3c
|
|
/* 028D5C3C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D5C3C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D5C3C */ cpu->r[1] = _t0;
|
|
/* 028D5C40 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D5C40 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D5C44 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D5C48 */ cpu->r[3] = cpu->r[31] + 0x00000018u;
|
|
/* 028D5C4C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5C4C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D5C50 */ Gambit_fn_028ED3D8(cpu);
|
|
/* 028D5C54 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D5C58 */ _t3 = cpu->r[31] + 0x00000018u;
|
|
/* 028D5C58 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t3);
|
|
/* 028D5C5C */ _t4 = cpu->r[12] + 0xFFFFA8F4u;
|
|
/* 028D5C5C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028D5C60 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[0]);
|
|
/* 028D5C64 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5C64 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D5C64 */ if (_t6) goto L_028D5C7C; else goto L_028D5C68;
|
|
L_028D5C68: ; // 0x28d5c68
|
|
/* 028D5C68 */ _t7 = cpu->r[31] + 0x00000014u;
|
|
/* 028D5C68 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028D5C6C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[0]);
|
|
/* 028D5C70 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5C70 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D5C70 */ if (_t9) goto L_028D5C7C; else goto L_028D5C74;
|
|
L_028D5C74: ; // 0x28d5c74
|
|
/* 028D5C74 */ cpu->r[3] = cpu->r[31] + 0x00000018u;
|
|
/* 028D5C78 */ Gambit_fn_028ED440(cpu);
|
|
L_028D5C7C: ; // 0x28d5c7c
|
|
/* 028D5C7C */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5C7C */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D5C80 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D5C80 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D5C84 */ cpu->lr = cpu->r[0];
|
|
/* 028D5C88 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D5C8C */ return;
|
|
}
|
|
|
|
// fn_028D5C90 @ 0x28d5c90
|
|
void Gambit_fn_028D5C90(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D5C90: ; // 0x28d5c90
|
|
/* 028D5C90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5C94 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5C94 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D5C94 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D5C94 */ goto L_028D5C98;
|
|
L_028D5C98: ; // 0x28d5c98
|
|
/* 028D5C98 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D5C98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D5C9C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5C9C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D5C9C */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D5C9C */ goto L_028D5CA0;
|
|
L_028D5CA0: ; // 0x28d5ca0
|
|
/* 028D5CA0 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D5CA4 @ 0x28d5ca4
|
|
void Gambit_fn_028D5CA4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23;
|
|
|
|
L_028D5CA4: ; // 0x28d5ca4
|
|
/* 028D5CA4 */ cpu->r[0] = cpu->lr;
|
|
/* 028D5CA8 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028D5CA8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D5CA8 */ cpu->r[1] = _t0;
|
|
/* 028D5CAC */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028D5CAC */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028D5CB0 */ /* nop */
|
|
/* 028D5CB4 */ _t2 = cpu->r[1] + 0x00000020u;
|
|
/* 028D5CB4 */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028D5CB8 */ _t3 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D5CB8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D5CBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5CC0 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5CC0 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028D5CC4 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D5CC8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5CC8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D5CC8 */ if (_t6) goto L_028D5CD4; else goto L_028D5CCC;
|
|
L_028D5CCC: ; // 0x28d5ccc
|
|
/* 028D5CCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D5CD0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5CD0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D5CD0 */ if (_t8) goto L_028D5CD4; else goto L_028D5CF8;
|
|
L_028D5CD4: ; // 0x28d5cd4
|
|
/* 028D5CD4 */ _t9 = cpu->r[1] + 0x00000020u;
|
|
/* 028D5CD4 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028D5CD8 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5CD8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D5CDC */ _t11 = cpu->r[1] + 0x00000018u;
|
|
/* 028D5CDC */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t11);
|
|
/* 028D5CE0 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D5CE4 */ _t12 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5CE4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D5CE4 */ if (_t13) goto L_028D5CE8; // else: addr-0 trap, fall-through
|
|
L_028D5CE8: ; // 0x28d5ce8
|
|
/* 028D5CE8 */ _t14 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D5CE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D5CEC */ cpu->lr = cpu->r[0];
|
|
/* 028D5CF0 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D5CF4 */ return;
|
|
L_028D5CF8: ; // 0x28d5cf8
|
|
/* 028D5CF8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D5CFC */ _t15 = cpu->r[11] + 0xFFFFA91Cu;
|
|
/* 028D5CFC */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028D5D00 */ Gambit_fn_028BF288(cpu);
|
|
/* 028D5D04 */ cpu->f[0] = cpu->f[1] * cpu->f[31];
|
|
/* 028D5D08 */ cpu->f[0] = (uint32_t)(int32_t)cpu->f[0];
|
|
/* 028D5D0C */ cpu->r[0] = cpu->r[1] + 0x00000008u;
|
|
/* 028D5D10 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D5D14 */ /* nop */
|
|
/* 028D5D18 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028D5D18 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D5D1C */ Gambit_fn_028BF288(cpu);
|
|
/* 028D5D20 */ cpu->f[0] = cpu->f[1] * cpu->f[31];
|
|
/* 028D5D24 */ cpu->f[0] = (uint32_t)(int32_t)cpu->f[0];
|
|
/* 028D5D28 */ cpu->r[0] = cpu->r[1] + 0x00000008u;
|
|
/* 028D5D2C */ /* nop */
|
|
/* 028D5D30 */ _t17 = cpu->r[1] + 0x00000020u;
|
|
/* 028D5D30 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028D5D34 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028D5D34 */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D5D38 */ _t19 = cpu->r[1] + 0x00000018u;
|
|
/* 028D5D38 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t19);
|
|
/* 028D5D3C */ cpu->r[3] = cpu->r[12] - cpu->r[31];
|
|
/* 028D5D40 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5D40 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D5D44 */ _t21 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5D44 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028D5D44 */ if (_t22) goto L_028D5D48; // else: addr-0 trap, fall-through
|
|
L_028D5D48: ; // 0x28d5d48
|
|
/* 028D5D48 */ _t23 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D5D48 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D5D4C */ cpu->lr = cpu->r[0];
|
|
/* 028D5D50 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D5D54 */ return;
|
|
}
|
|
|
|
// fn_028D5CA8 @ 0x28d5ca8
|
|
void Gambit_fn_028D5CA8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23;
|
|
|
|
L_028D5CA8: ; // 0x28d5ca8
|
|
/* 028D5CA8 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028D5CA8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D5CA8 */ cpu->r[1] = _t0;
|
|
/* 028D5CAC */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028D5CAC */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028D5CB0 */ /* nop */
|
|
/* 028D5CB4 */ _t2 = cpu->r[1] + 0x00000020u;
|
|
/* 028D5CB4 */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028D5CB8 */ _t3 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D5CB8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D5CBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5CC0 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5CC0 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028D5CC4 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D5CC8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5CC8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D5CC8 */ if (_t6) goto L_028D5CD4; else goto L_028D5CCC;
|
|
L_028D5CCC: ; // 0x28d5ccc
|
|
/* 028D5CCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D5CD0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5CD0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D5CD0 */ if (_t8) goto L_028D5CD4; else goto L_028D5CF8;
|
|
L_028D5CD4: ; // 0x28d5cd4
|
|
/* 028D5CD4 */ _t9 = cpu->r[1] + 0x00000020u;
|
|
/* 028D5CD4 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028D5CD8 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5CD8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D5CDC */ _t11 = cpu->r[1] + 0x00000018u;
|
|
/* 028D5CDC */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t11);
|
|
/* 028D5CE0 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D5CE4 */ _t12 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5CE4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D5CE4 */ if (_t13) goto L_028D5CE8; // else: addr-0 trap, fall-through
|
|
L_028D5CE8: ; // 0x28d5ce8
|
|
/* 028D5CE8 */ _t14 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D5CE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D5CEC */ cpu->lr = cpu->r[0];
|
|
/* 028D5CF0 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D5CF4 */ return;
|
|
L_028D5CF8: ; // 0x28d5cf8
|
|
/* 028D5CF8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D5CFC */ _t15 = cpu->r[11] + 0xFFFFA91Cu;
|
|
/* 028D5CFC */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028D5D00 */ Gambit_fn_028BF288(cpu);
|
|
/* 028D5D04 */ cpu->f[0] = cpu->f[1] * cpu->f[31];
|
|
/* 028D5D08 */ cpu->f[0] = (uint32_t)(int32_t)cpu->f[0];
|
|
/* 028D5D0C */ cpu->r[0] = cpu->r[1] + 0x00000008u;
|
|
/* 028D5D10 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D5D14 */ /* nop */
|
|
/* 028D5D18 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028D5D18 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D5D1C */ Gambit_fn_028BF288(cpu);
|
|
/* 028D5D20 */ cpu->f[0] = cpu->f[1] * cpu->f[31];
|
|
/* 028D5D24 */ cpu->f[0] = (uint32_t)(int32_t)cpu->f[0];
|
|
/* 028D5D28 */ cpu->r[0] = cpu->r[1] + 0x00000008u;
|
|
/* 028D5D2C */ /* nop */
|
|
/* 028D5D30 */ _t17 = cpu->r[1] + 0x00000020u;
|
|
/* 028D5D30 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028D5D34 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028D5D34 */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D5D38 */ _t19 = cpu->r[1] + 0x00000018u;
|
|
/* 028D5D38 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t19);
|
|
/* 028D5D3C */ cpu->r[3] = cpu->r[12] - cpu->r[31];
|
|
/* 028D5D40 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5D40 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D5D44 */ _t21 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5D44 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028D5D44 */ if (_t22) goto L_028D5D48; // else: addr-0 trap, fall-through
|
|
L_028D5D48: ; // 0x28d5d48
|
|
/* 028D5D48 */ _t23 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D5D48 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D5D4C */ cpu->lr = cpu->r[0];
|
|
/* 028D5D50 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D5D54 */ return;
|
|
}
|
|
|
|
// fn_028D5D58 @ 0x28d5d58
|
|
void Gambit_fn_028D5D58(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028D5D58: ; // 0x28d5d58
|
|
/* 028D5D58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5D5C */ _t0 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5D5C */ _t1 = _t0 & 0x00000001u;
|
|
/* 028D5D5C */ if (_t1) goto L_028D5D90; else goto L_028D5D60;
|
|
L_028D5D60: ; // 0x28d5d60
|
|
/* 028D5D60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028D5D64 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5D64 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028D5D64 */ if (_t3) goto L_028D5D90; else goto L_028D5D68;
|
|
L_028D5D68: ; // 0x28d5d68
|
|
/* 028D5D68 */ _t4 = cpu->r[3] + 0x00000010u;
|
|
/* 028D5D68 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028D5D6C */ _t5 = cpu->r[4] + 0x00000010u;
|
|
/* 028D5D6C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 028D5D70 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[0]);
|
|
/* 028D5D74 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5D74 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D5D74 */ if (_t7) goto L_028D5D78; else goto L_028D5D80;
|
|
L_028D5D78: ; // 0x28d5d78
|
|
/* 028D5D78 */ cpu->r[3] = 0x00000001u;
|
|
/* 028D5D7C */ return;
|
|
L_028D5D80: ; // 0x28d5d80
|
|
/* 028D5D80 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[0]);
|
|
/* 028D5D84 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D5D84 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D5D84 */ if (_t9) goto L_028D5D88; else goto L_028D5D90;
|
|
L_028D5D88: ; // 0x28d5d88
|
|
/* 028D5D88 */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 028D5D8C */ return;
|
|
L_028D5D90: ; // 0x28d5d90
|
|
/* 028D5D90 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D5D94 */ return;
|
|
}
|
|
|
|
// fn_028D5D98 @ 0x28d5d98
|
|
void Gambit_fn_028D5D98(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028D5D98: ; // 0x28d5d98
|
|
/* 028D5D98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5D9C */ _t0 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5D9C */ _t1 = _t0 & 0x00000001u;
|
|
/* 028D5D9C */ if (_t1) goto L_028D5DD0; else goto L_028D5DA0;
|
|
L_028D5DA0: ; // 0x28d5da0
|
|
/* 028D5DA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028D5DA4 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5DA4 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028D5DA4 */ if (_t3) goto L_028D5DD0; else goto L_028D5DA8;
|
|
L_028D5DA8: ; // 0x28d5da8
|
|
/* 028D5DA8 */ _t4 = cpu->r[3] + 0x00000010u;
|
|
/* 028D5DA8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028D5DAC */ _t5 = cpu->r[4] + 0x00000010u;
|
|
/* 028D5DAC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 028D5DB0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[0]);
|
|
/* 028D5DB4 */ _t6 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D5DB4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D5DB4 */ if (_t7) goto L_028D5DB8; else goto L_028D5DC0;
|
|
L_028D5DB8: ; // 0x28d5db8
|
|
/* 028D5DB8 */ cpu->r[3] = 0x00000001u;
|
|
/* 028D5DBC */ return;
|
|
L_028D5DC0: ; // 0x28d5dc0
|
|
/* 028D5DC0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[0]);
|
|
/* 028D5DC4 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D5DC4 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D5DC4 */ if (_t9) goto L_028D5DC8; else goto L_028D5DD0;
|
|
L_028D5DC8: ; // 0x28d5dc8
|
|
/* 028D5DC8 */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 028D5DCC */ return;
|
|
L_028D5DD0: ; // 0x28d5dd0
|
|
/* 028D5DD0 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D5DD4 */ return;
|
|
}
|
|
|
|
// fn_028D5DE4 @ 0x28d5de4
|
|
void Gambit_fn_028D5DE4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028D5DE4: ; // 0x28d5de4
|
|
/* 028D5DE4 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028D5DE4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D5DE4 */ cpu->r[1] = _t0;
|
|
/* 028D5DE8 */ Gambit_fn_028D5D58(cpu);
|
|
/* 028D5DEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5DF0 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5DF0 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028D5DF0 */ if (_t2) goto L_028D5DF4; else goto L_028D5DFC;
|
|
L_028D5DF4: ; // 0x28d5df4
|
|
/* 028D5DF4 */ cpu->r[3] = cpu->r[0];
|
|
/* 028D5DF8 */ Gambit_fn_028D5CA4(cpu);
|
|
L_028D5DFC: ; // 0x28d5dfc
|
|
/* 028D5DFC */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D5DFC */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D5E00 */ cpu->lr = cpu->r[0];
|
|
/* 028D5E04 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D5E08 */ return;
|
|
}
|
|
|
|
// fn_028D5E18 @ 0x28d5e18
|
|
void Gambit_fn_028D5E18(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028D5E18: ; // 0x28d5e18
|
|
/* 028D5E18 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028D5E18 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D5E18 */ cpu->r[1] = _t0;
|
|
/* 028D5E1C */ Gambit_fn_028D5D98(cpu);
|
|
/* 028D5E20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5E24 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5E24 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028D5E24 */ if (_t2) goto L_028D5E28; else goto L_028D5E30;
|
|
L_028D5E28: ; // 0x28d5e28
|
|
/* 028D5E28 */ cpu->r[3] = cpu->r[0];
|
|
/* 028D5E2C */ Gambit_fn_028D5CA4(cpu);
|
|
L_028D5E30: ; // 0x28d5e30
|
|
/* 028D5E30 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D5E30 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D5E34 */ cpu->lr = cpu->r[0];
|
|
/* 028D5E38 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D5E3C */ return;
|
|
}
|
|
|
|
// fn_028D5E44 @ 0x28d5e44
|
|
void Gambit_fn_028D5E44(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028D5E44: ; // 0x28d5e44
|
|
/* 028D5E44 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D5E44 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D5E44 */ cpu->r[1] = _t0;
|
|
/* 028D5E48 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D5E48 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D5E4C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D5E4C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D5E50 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D5E54 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D5E58 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5E58 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D5E5C */ Gambit_fn_028D5CA4(cpu);
|
|
/* 028D5E60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5E64 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5E64 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D5E64 */ if (_t5) goto L_028D5E68; else goto L_028D5E74;
|
|
L_028D5E68: ; // 0x28d5e68
|
|
/* 028D5E68 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D5E6C */ cpu->r[4] = cpu->r[31];
|
|
/* 028D5E70 */ Gambit_fn_028D5D58(cpu);
|
|
L_028D5E74: ; // 0x28d5e74
|
|
/* 028D5E74 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5E74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D5E78 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028D5E78 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D5E7C */ cpu->lr = cpu->r[0];
|
|
/* 028D5E80 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D5E80 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D5E84 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D5E88 */ return;
|
|
}
|
|
|
|
// fn_028D5E90 @ 0x28d5e90
|
|
void Gambit_fn_028D5E90(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028D5E90: ; // 0x28d5e90
|
|
/* 028D5E90 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D5E90 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D5E90 */ cpu->r[1] = _t0;
|
|
/* 028D5E94 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D5E94 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D5E98 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D5E98 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D5E9C */ cpu->r[30] = cpu->r[3];
|
|
/* 028D5EA0 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D5EA4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5EA4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D5EA8 */ Gambit_fn_028D5CA4(cpu);
|
|
/* 028D5EAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5EB0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5EB0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D5EB0 */ if (_t5) goto L_028D5EB4; else goto L_028D5EC0;
|
|
L_028D5EB4: ; // 0x28d5eb4
|
|
/* 028D5EB4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D5EB8 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D5EBC */ Gambit_fn_028D5D98(cpu);
|
|
L_028D5EC0: ; // 0x28d5ec0
|
|
/* 028D5EC0 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5EC0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D5EC4 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028D5EC4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D5EC8 */ cpu->lr = cpu->r[0];
|
|
/* 028D5ECC */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D5ECC */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D5ED0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D5ED4 */ return;
|
|
}
|
|
|
|
// fn_028D5ED8 @ 0x28d5ed8
|
|
void Gambit_fn_028D5ED8(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028D5ED8: ; // 0x28d5ed8
|
|
/* 028D5ED8 */ _t0 = cpu->r[3] + 0x000000DCu;
|
|
/* 028D5ED8 */ rbrew_write32(cpu->mem, _t0, cpu->r[4]);
|
|
/* 028D5EDC */ return;
|
|
}
|
|
|
|
// fn_028D5EE0 @ 0x28d5ee0
|
|
void Gambit_fn_028D5EE0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72;
|
|
|
|
L_028D5EE0: ; // 0x28d5ee0
|
|
/* 028D5EE0 */ cpu->r[0] = cpu->lr;
|
|
/* 028D5EE4 */ _t0 = cpu->r[1] + 0xFFFFFF60u;
|
|
/* 028D5EE4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D5EE4 */ cpu->r[1] = _t0;
|
|
/* 028D5EE8 */ _t1 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028D5EE8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D5EEC */ cpu->r[31] = cpu->r[3];
|
|
/* 028D5EF0 */ cpu->r[4] = cpu->r[31] + 0x00000110u;
|
|
/* 028D5EF4 */ cpu->r[3] = cpu->r[1] + 0x00000038u;
|
|
/* 028D5EF8 */ _t2 = cpu->r[1] + 0x000000A4u;
|
|
/* 028D5EF8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D5EFC */ Gambit_fn_0200D450(cpu);
|
|
/* 028D5F00 */ _t3 = cpu->r[31] + 0x000000DCu;
|
|
/* 028D5F00 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D5F04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5F08 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5F08 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D5F08 */ if (_t5) goto L_028D5F4C; else goto L_028D5F0C;
|
|
L_028D5F0C: ; // 0x28d5f0c
|
|
/* 028D5F0C */ _t6 = cpu->r[3] + 0x00000008u;
|
|
/* 028D5F0C */ cpu->r[6] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D5F10 */ _t7 = cpu->r[6] + 0x0000003Cu;
|
|
/* 028D5F10 */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D5F14 */ cpu->ctr = cpu->r[8];
|
|
/* 028D5F18 */ cpu->r[4] = cpu->r[31] + 0x000000E0u;
|
|
/* 028D5F1C */ cpu->r[5] = cpu->r[31] + 0x00000140u;
|
|
/* 028D5F20 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5F24 */ cpu->r[3] = cpu->r[31] + 0x000000E0u;
|
|
/* 028D5F28 */ cpu->r[4] = cpu->r[31] + 0x00000110u;
|
|
/* 028D5F2C */ Gambit_fn_02C69628(cpu);
|
|
/* 028D5F30 */ cpu->r[3] = cpu->r[1] + 0x00000044u;
|
|
/* 028D5F34 */ cpu->r[4] = cpu->r[31] + 0x00000110u;
|
|
/* 028D5F38 */ Gambit_fn_0200D450(cpu);
|
|
/* 028D5F3C */ _t8 = cpu->r[31] + 0x0000017Cu;
|
|
/* 028D5F3C */ cpu->r[8] = rbrew_read8(cpu->mem, _t8);
|
|
/* 028D5F40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028D5F44 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5F44 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D5F44 */ if (_t10) goto L_028D5FB0; else goto L_028D5F48;
|
|
L_028D5F48: ; // 0x28d5f48
|
|
/* 028D5F48 */ goto L_028D5F7C;
|
|
L_028D5F4C: ; // 0x28d5f4c
|
|
/* 028D5F4C */ cpu->r[3] = cpu->r[31] + 0x000000E0u;
|
|
/* 028D5F50 */ cpu->r[4] = cpu->r[31] + 0x00000140u;
|
|
/* 028D5F54 */ Gambit_fn_02C69510(cpu);
|
|
/* 028D5F58 */ cpu->r[3] = cpu->r[31] + 0x000000E0u;
|
|
/* 028D5F5C */ cpu->r[4] = cpu->r[31] + 0x00000110u;
|
|
/* 028D5F60 */ Gambit_fn_02C69628(cpu);
|
|
/* 028D5F64 */ cpu->r[3] = cpu->r[1] + 0x00000044u;
|
|
/* 028D5F68 */ cpu->r[4] = cpu->r[31] + 0x00000110u;
|
|
/* 028D5F6C */ Gambit_fn_0200D450(cpu);
|
|
/* 028D5F70 */ _t11 = cpu->r[31] + 0x0000017Cu;
|
|
/* 028D5F70 */ cpu->r[8] = rbrew_read8(cpu->mem, _t11);
|
|
/* 028D5F74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028D5F78 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5F78 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D5F78 */ if (_t13) goto L_028D5FB0; else goto L_028D5F7C;
|
|
L_028D5F7C: ; // 0x28d5f7c
|
|
/* 028D5F7C */ cpu->r[11] = 0x101F0000u;
|
|
/* 028D5F80 */ _t14 = cpu->r[11] + 0x00006338u;
|
|
/* 028D5F80 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028D5F80 */ cpu->r[11] = _t14;
|
|
/* 028D5F84 */ _t15 = cpu->r[31] + 0x00000170u;
|
|
/* 028D5F84 */ rbrew_write_f32(cpu->mem, _t15, cpu->f[13]);
|
|
/* 028D5F88 */ _t16 = cpu->r[11] + 0x00000004u;
|
|
/* 028D5F88 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028D5F8C */ cpu->r[0] = 0x00000000u;
|
|
/* 028D5F90 */ _t17 = cpu->r[31] + 0x00000174u;
|
|
/* 028D5F90 */ rbrew_write_f32(cpu->mem, _t17, cpu->f[12]);
|
|
/* 028D5F94 */ _t18 = cpu->r[11] + 0x00000008u;
|
|
/* 028D5F94 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t18);
|
|
/* 028D5F98 */ _t19 = cpu->r[31] + 0x0000017Cu;
|
|
/* 028D5F98 */ rbrew_write8(cpu->mem, _t19, (uint8_t)cpu->r[0]);
|
|
/* 028D5F9C */ _t20 = cpu->r[31] + 0x000000CCu;
|
|
/* 028D5F9C */ cpu->r[0] = rbrew_read8(cpu->mem, _t20);
|
|
/* 028D5FA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D5FA4 */ _t21 = cpu->r[31] + 0x00000178u;
|
|
/* 028D5FA4 */ rbrew_write_f32(cpu->mem, _t21, cpu->f[0]);
|
|
/* 028D5FA8 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5FA8 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028D5FA8 */ if (_t23) goto L_028D60C4; else goto L_028D5FAC;
|
|
L_028D5FAC: ; // 0x28d5fac
|
|
/* 028D5FAC */ goto L_028D600C;
|
|
L_028D5FB0: ; // 0x28d5fb0
|
|
/* 028D5FB0 */ /* nop */
|
|
/* 028D5FB4 */ /* nop */
|
|
/* 028D5FB8 */ _t24 = cpu->r[1] + 0x00000040u;
|
|
/* 028D5FB8 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 028D5FBC */ /* nop */
|
|
/* 028D5FC0 */ _t25 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028D5FC0 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 028D5FC4 */ /* nop */
|
|
/* 028D5FC8 */ _t26 = cpu->r[1] + 0x00000018u;
|
|
/* 028D5FC8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D5FCC */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5FCC */ cpu->r[9] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D5FD0 */ cpu->f[13] = cpu->f[12] - cpu->f[11];
|
|
/* 028D5FD4 */ _t28 = cpu->r[1] + 0x00000024u;
|
|
/* 028D5FD4 */ rbrew_write32(cpu->mem, _t28, cpu->r[10]);
|
|
/* 028D5FD8 */ _t29 = cpu->r[1] + 0x00000024u;
|
|
/* 028D5FD8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t29);
|
|
/* 028D5FDC */ _t30 = cpu->r[1] + 0x00000020u;
|
|
/* 028D5FDC */ rbrew_write32(cpu->mem, _t30, cpu->r[9]);
|
|
/* 028D5FE0 */ _t31 = cpu->r[1] + 0x00000020u;
|
|
/* 028D5FE0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 028D5FE4 */ _t32 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D5FE4 */ rbrew_write_f32(cpu->mem, _t32, cpu->f[13]);
|
|
/* 028D5FE8 */ _t33 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D5FE8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028D5FEC */ _t34 = cpu->r[31] + 0x00000170u;
|
|
/* 028D5FEC */ rbrew_write_f32(cpu->mem, _t34, cpu->f[0]);
|
|
/* 028D5FF0 */ _t35 = cpu->r[31] + 0x000000CCu;
|
|
/* 028D5FF0 */ cpu->r[0] = rbrew_read8(cpu->mem, _t35);
|
|
/* 028D5FF4 */ _t36 = cpu->r[1] + 0x00000028u;
|
|
/* 028D5FF4 */ rbrew_write32(cpu->mem, _t36, cpu->r[12]);
|
|
/* 028D5FF8 */ _t37 = cpu->r[1] + 0x00000028u;
|
|
/* 028D5FF8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 028D5FFC */ _t38 = cpu->r[31] + 0x00000174u;
|
|
/* 028D5FFC */ rbrew_write_f32(cpu->mem, _t38, cpu->f[12]);
|
|
/* 028D6000 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D6004 */ _t39 = cpu->r[31] + 0x00000178u;
|
|
/* 028D6004 */ rbrew_write_f32(cpu->mem, _t39, cpu->f[0]);
|
|
/* 028D6008 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6008 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028D6008 */ if (_t41) goto L_028D60C4; else goto L_028D600C;
|
|
L_028D600C: ; // 0x28d600c
|
|
/* 028D600C */ cpu->r[9] = 0x00000003u;
|
|
/* 028D6010 */ cpu->r[5] = cpu->r[31] + 0x0000010Cu;
|
|
/* 028D6014 */ cpu->ctr = cpu->r[9];
|
|
/* 028D6018 */ cpu->r[7] = cpu->r[1] + 0x00000064u;
|
|
L_028D601C: ; // 0x28d601c
|
|
/* 028D601C */ _t42 = cpu->r[5] + 0x00000004u;
|
|
/* 028D601C */ cpu->r[10] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028D6020 */ _t43 = cpu->r[7] + 0x00000004u;
|
|
/* 028D6020 */ rbrew_write32(cpu->mem, _t43, cpu->r[10]);
|
|
/* 028D6024 */ _t44 = cpu->r[5] + 0x00000008u;
|
|
/* 028D6024 */ cpu->r[11] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028D6028 */ _t45 = cpu->r[7] + 0x00000008u;
|
|
/* 028D6028 */ rbrew_write32(cpu->mem, _t45, cpu->r[11]);
|
|
/* 028D602C */ _t46 = cpu->r[5] + 0x0000000Cu;
|
|
/* 028D602C */ cpu->r[12] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028D6030 */ _t47 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028D6030 */ rbrew_write32(cpu->mem, _t47, cpu->r[12]);
|
|
/* 028D6034 */ _t48 = cpu->r[5] + 0x00000010u;
|
|
/* 028D6034 */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028D6034 */ cpu->r[5] = _t48;
|
|
/* 028D6038 */ _t49 = cpu->r[7] + 0x00000010u;
|
|
/* 028D6038 */ rbrew_write32(cpu->mem, _t49, cpu->r[0]);
|
|
/* 028D6038 */ cpu->r[7] = _t49;
|
|
/* 028D603C */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028D603C */ _t50 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028D603C */ _t51 = _t50 >> (0x00000002u & 31u);
|
|
/* 028D603C */ _t52 = _t51 & 0x00000001u;
|
|
/* 028D603C */ if (_t52) goto L_028D601C; else goto L_028D6040;
|
|
L_028D6040: ; // 0x28d6040
|
|
/* 028D6040 */ cpu->r[5] = 0x00000002u;
|
|
/* 028D6044 */ cpu->r[4] = cpu->r[31] + 0x00000110u;
|
|
/* 028D6048 */ cpu->r[3] = cpu->r[1] + 0x0000005Cu;
|
|
/* 028D604C */ Gambit_fn_0200D42C(cpu);
|
|
/* 028D6050 */ _t53 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028D6050 */ cpu->r[7] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028D6054 */ _t54 = cpu->r[1] + 0x00000060u;
|
|
/* 028D6054 */ cpu->r[9] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028D6058 */ _t55 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D6058 */ rbrew_write32(cpu->mem, _t55, cpu->r[7]);
|
|
/* 028D605C */ _t56 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D605C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t56);
|
|
/* 028D6060 */ _t57 = cpu->r[1] + 0x00000064u;
|
|
/* 028D6060 */ cpu->r[10] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028D6064 */ _t58 = cpu->r[1] + 0x00000030u;
|
|
/* 028D6064 */ rbrew_write32(cpu->mem, _t58, cpu->r[9]);
|
|
/* 028D6068 */ _t59 = cpu->r[1] + 0x00000030u;
|
|
/* 028D6068 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t59);
|
|
/* 028D606C */ cpu->f[13] = -cpu->f[13];
|
|
/* 028D6070 */ _t60 = cpu->r[1] + 0x00000034u;
|
|
/* 028D6070 */ rbrew_write32(cpu->mem, _t60, cpu->r[10]);
|
|
/* 028D6074 */ _t61 = cpu->r[1] + 0x00000034u;
|
|
/* 028D6074 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t61);
|
|
/* 028D6078 */ cpu->f[0] = -cpu->f[0];
|
|
/* 028D607C */ _t62 = cpu->r[1] + 0x00000008u;
|
|
/* 028D607C */ rbrew_write_f32(cpu->mem, _t62, cpu->f[13]);
|
|
/* 028D6080 */ _t63 = cpu->r[1] + 0x00000008u;
|
|
/* 028D6080 */ cpu->r[5] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028D6084 */ cpu->f[13] = -cpu->f[12];
|
|
/* 028D6088 */ _t64 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6088 */ rbrew_write_f32(cpu->mem, _t64, cpu->f[0]);
|
|
/* 028D608C */ _t65 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D608C */ cpu->r[7] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028D6090 */ _t66 = cpu->r[1] + 0x00000050u;
|
|
/* 028D6090 */ rbrew_write32(cpu->mem, _t66, cpu->r[5]);
|
|
/* 028D6094 */ cpu->r[11] = cpu->r[1] + 0x00000050u;
|
|
/* 028D6098 */ _t67 = cpu->r[1] + 0x00000010u;
|
|
/* 028D6098 */ rbrew_write_f32(cpu->mem, _t67, cpu->f[13]);
|
|
/* 028D609C */ _t68 = cpu->r[1] + 0x00000010u;
|
|
/* 028D609C */ cpu->r[8] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028D60A0 */ cpu->r[5] = cpu->r[11];
|
|
/* 028D60A4 */ cpu->r[3] = cpu->r[1] + 0x00000068u;
|
|
/* 028D60A8 */ _t69 = cpu->r[1] + 0x00000054u;
|
|
/* 028D60A8 */ rbrew_write32(cpu->mem, _t69, cpu->r[7]);
|
|
/* 028D60AC */ cpu->r[4] = 0x00000002u;
|
|
/* 028D60B0 */ _t70 = cpu->r[1] + 0x00000058u;
|
|
/* 028D60B0 */ rbrew_write32(cpu->mem, _t70, cpu->r[8]);
|
|
/* 028D60B4 */ Gambit_fn_0204F22C(cpu);
|
|
/* 028D60B8 */ cpu->r[4] = cpu->r[1] + 0x00000068u;
|
|
/* 028D60BC */ cpu->r[3] = cpu->r[31] + 0x00000068u;
|
|
/* 028D60C0 */ Gambit_fn_028DA7F8(cpu);
|
|
L_028D60C4: ; // 0x28d60c4
|
|
/* 028D60C4 */ _t71 = cpu->r[1] + 0x000000A4u;
|
|
/* 028D60C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028D60C8 */ _t72 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028D60C8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028D60CC */ cpu->lr = cpu->r[0];
|
|
/* 028D60D0 */ cpu->r[1] = cpu->r[1] + 0x000000A0u;
|
|
/* 028D60D4 */ return;
|
|
}
|
|
|
|
// fn_028D5EE4 @ 0x28d5ee4
|
|
void Gambit_fn_028D5EE4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72;
|
|
|
|
L_028D5EE4: ; // 0x28d5ee4
|
|
/* 028D5EE4 */ _t0 = cpu->r[1] + 0xFFFFFF60u;
|
|
/* 028D5EE4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D5EE4 */ cpu->r[1] = _t0;
|
|
/* 028D5EE8 */ _t1 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028D5EE8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D5EEC */ cpu->r[31] = cpu->r[3];
|
|
/* 028D5EF0 */ cpu->r[4] = cpu->r[31] + 0x00000110u;
|
|
/* 028D5EF4 */ cpu->r[3] = cpu->r[1] + 0x00000038u;
|
|
/* 028D5EF8 */ _t2 = cpu->r[1] + 0x000000A4u;
|
|
/* 028D5EF8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D5EFC */ Gambit_fn_0200D450(cpu);
|
|
/* 028D5F00 */ _t3 = cpu->r[31] + 0x000000DCu;
|
|
/* 028D5F00 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D5F04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D5F08 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5F08 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D5F08 */ if (_t5) goto L_028D5F4C; else goto L_028D5F0C;
|
|
L_028D5F0C: ; // 0x28d5f0c
|
|
/* 028D5F0C */ _t6 = cpu->r[3] + 0x00000008u;
|
|
/* 028D5F0C */ cpu->r[6] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D5F10 */ _t7 = cpu->r[6] + 0x0000003Cu;
|
|
/* 028D5F10 */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D5F14 */ cpu->ctr = cpu->r[8];
|
|
/* 028D5F18 */ cpu->r[4] = cpu->r[31] + 0x000000E0u;
|
|
/* 028D5F1C */ cpu->r[5] = cpu->r[31] + 0x00000140u;
|
|
/* 028D5F20 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D5F24 */ cpu->r[3] = cpu->r[31] + 0x000000E0u;
|
|
/* 028D5F28 */ cpu->r[4] = cpu->r[31] + 0x00000110u;
|
|
/* 028D5F2C */ Gambit_fn_02C69628(cpu);
|
|
/* 028D5F30 */ cpu->r[3] = cpu->r[1] + 0x00000044u;
|
|
/* 028D5F34 */ cpu->r[4] = cpu->r[31] + 0x00000110u;
|
|
/* 028D5F38 */ Gambit_fn_0200D450(cpu);
|
|
/* 028D5F3C */ _t8 = cpu->r[31] + 0x0000017Cu;
|
|
/* 028D5F3C */ cpu->r[8] = rbrew_read8(cpu->mem, _t8);
|
|
/* 028D5F40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028D5F44 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5F44 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D5F44 */ if (_t10) goto L_028D5FB0; else goto L_028D5F48;
|
|
L_028D5F48: ; // 0x28d5f48
|
|
/* 028D5F48 */ goto L_028D5F7C;
|
|
L_028D5F4C: ; // 0x28d5f4c
|
|
/* 028D5F4C */ cpu->r[3] = cpu->r[31] + 0x000000E0u;
|
|
/* 028D5F50 */ cpu->r[4] = cpu->r[31] + 0x00000140u;
|
|
/* 028D5F54 */ Gambit_fn_02C69510(cpu);
|
|
/* 028D5F58 */ cpu->r[3] = cpu->r[31] + 0x000000E0u;
|
|
/* 028D5F5C */ cpu->r[4] = cpu->r[31] + 0x00000110u;
|
|
/* 028D5F60 */ Gambit_fn_02C69628(cpu);
|
|
/* 028D5F64 */ cpu->r[3] = cpu->r[1] + 0x00000044u;
|
|
/* 028D5F68 */ cpu->r[4] = cpu->r[31] + 0x00000110u;
|
|
/* 028D5F6C */ Gambit_fn_0200D450(cpu);
|
|
/* 028D5F70 */ _t11 = cpu->r[31] + 0x0000017Cu;
|
|
/* 028D5F70 */ cpu->r[8] = rbrew_read8(cpu->mem, _t11);
|
|
/* 028D5F74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028D5F78 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5F78 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D5F78 */ if (_t13) goto L_028D5FB0; else goto L_028D5F7C;
|
|
L_028D5F7C: ; // 0x28d5f7c
|
|
/* 028D5F7C */ cpu->r[11] = 0x101F0000u;
|
|
/* 028D5F80 */ _t14 = cpu->r[11] + 0x00006338u;
|
|
/* 028D5F80 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028D5F80 */ cpu->r[11] = _t14;
|
|
/* 028D5F84 */ _t15 = cpu->r[31] + 0x00000170u;
|
|
/* 028D5F84 */ rbrew_write_f32(cpu->mem, _t15, cpu->f[13]);
|
|
/* 028D5F88 */ _t16 = cpu->r[11] + 0x00000004u;
|
|
/* 028D5F88 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028D5F8C */ cpu->r[0] = 0x00000000u;
|
|
/* 028D5F90 */ _t17 = cpu->r[31] + 0x00000174u;
|
|
/* 028D5F90 */ rbrew_write_f32(cpu->mem, _t17, cpu->f[12]);
|
|
/* 028D5F94 */ _t18 = cpu->r[11] + 0x00000008u;
|
|
/* 028D5F94 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t18);
|
|
/* 028D5F98 */ _t19 = cpu->r[31] + 0x0000017Cu;
|
|
/* 028D5F98 */ rbrew_write8(cpu->mem, _t19, (uint8_t)cpu->r[0]);
|
|
/* 028D5F9C */ _t20 = cpu->r[31] + 0x000000CCu;
|
|
/* 028D5F9C */ cpu->r[0] = rbrew_read8(cpu->mem, _t20);
|
|
/* 028D5FA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D5FA4 */ _t21 = cpu->r[31] + 0x00000178u;
|
|
/* 028D5FA4 */ rbrew_write_f32(cpu->mem, _t21, cpu->f[0]);
|
|
/* 028D5FA8 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D5FA8 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028D5FA8 */ if (_t23) goto L_028D60C4; else goto L_028D5FAC;
|
|
L_028D5FAC: ; // 0x28d5fac
|
|
/* 028D5FAC */ goto L_028D600C;
|
|
L_028D5FB0: ; // 0x28d5fb0
|
|
/* 028D5FB0 */ /* nop */
|
|
/* 028D5FB4 */ /* nop */
|
|
/* 028D5FB8 */ _t24 = cpu->r[1] + 0x00000040u;
|
|
/* 028D5FB8 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 028D5FBC */ /* nop */
|
|
/* 028D5FC0 */ _t25 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028D5FC0 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 028D5FC4 */ /* nop */
|
|
/* 028D5FC8 */ _t26 = cpu->r[1] + 0x00000018u;
|
|
/* 028D5FC8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D5FCC */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 028D5FCC */ cpu->r[9] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D5FD0 */ cpu->f[13] = cpu->f[12] - cpu->f[11];
|
|
/* 028D5FD4 */ _t28 = cpu->r[1] + 0x00000024u;
|
|
/* 028D5FD4 */ rbrew_write32(cpu->mem, _t28, cpu->r[10]);
|
|
/* 028D5FD8 */ _t29 = cpu->r[1] + 0x00000024u;
|
|
/* 028D5FD8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t29);
|
|
/* 028D5FDC */ _t30 = cpu->r[1] + 0x00000020u;
|
|
/* 028D5FDC */ rbrew_write32(cpu->mem, _t30, cpu->r[9]);
|
|
/* 028D5FE0 */ _t31 = cpu->r[1] + 0x00000020u;
|
|
/* 028D5FE0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 028D5FE4 */ _t32 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D5FE4 */ rbrew_write_f32(cpu->mem, _t32, cpu->f[13]);
|
|
/* 028D5FE8 */ _t33 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D5FE8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028D5FEC */ _t34 = cpu->r[31] + 0x00000170u;
|
|
/* 028D5FEC */ rbrew_write_f32(cpu->mem, _t34, cpu->f[0]);
|
|
/* 028D5FF0 */ _t35 = cpu->r[31] + 0x000000CCu;
|
|
/* 028D5FF0 */ cpu->r[0] = rbrew_read8(cpu->mem, _t35);
|
|
/* 028D5FF4 */ _t36 = cpu->r[1] + 0x00000028u;
|
|
/* 028D5FF4 */ rbrew_write32(cpu->mem, _t36, cpu->r[12]);
|
|
/* 028D5FF8 */ _t37 = cpu->r[1] + 0x00000028u;
|
|
/* 028D5FF8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 028D5FFC */ _t38 = cpu->r[31] + 0x00000174u;
|
|
/* 028D5FFC */ rbrew_write_f32(cpu->mem, _t38, cpu->f[12]);
|
|
/* 028D6000 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D6004 */ _t39 = cpu->r[31] + 0x00000178u;
|
|
/* 028D6004 */ rbrew_write_f32(cpu->mem, _t39, cpu->f[0]);
|
|
/* 028D6008 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6008 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028D6008 */ if (_t41) goto L_028D60C4; else goto L_028D600C;
|
|
L_028D600C: ; // 0x28d600c
|
|
/* 028D600C */ cpu->r[9] = 0x00000003u;
|
|
/* 028D6010 */ cpu->r[5] = cpu->r[31] + 0x0000010Cu;
|
|
/* 028D6014 */ cpu->ctr = cpu->r[9];
|
|
/* 028D6018 */ cpu->r[7] = cpu->r[1] + 0x00000064u;
|
|
L_028D601C: ; // 0x28d601c
|
|
/* 028D601C */ _t42 = cpu->r[5] + 0x00000004u;
|
|
/* 028D601C */ cpu->r[10] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028D6020 */ _t43 = cpu->r[7] + 0x00000004u;
|
|
/* 028D6020 */ rbrew_write32(cpu->mem, _t43, cpu->r[10]);
|
|
/* 028D6024 */ _t44 = cpu->r[5] + 0x00000008u;
|
|
/* 028D6024 */ cpu->r[11] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028D6028 */ _t45 = cpu->r[7] + 0x00000008u;
|
|
/* 028D6028 */ rbrew_write32(cpu->mem, _t45, cpu->r[11]);
|
|
/* 028D602C */ _t46 = cpu->r[5] + 0x0000000Cu;
|
|
/* 028D602C */ cpu->r[12] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028D6030 */ _t47 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028D6030 */ rbrew_write32(cpu->mem, _t47, cpu->r[12]);
|
|
/* 028D6034 */ _t48 = cpu->r[5] + 0x00000010u;
|
|
/* 028D6034 */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028D6034 */ cpu->r[5] = _t48;
|
|
/* 028D6038 */ _t49 = cpu->r[7] + 0x00000010u;
|
|
/* 028D6038 */ rbrew_write32(cpu->mem, _t49, cpu->r[0]);
|
|
/* 028D6038 */ cpu->r[7] = _t49;
|
|
/* 028D603C */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028D603C */ _t50 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028D603C */ _t51 = _t50 >> (0x00000002u & 31u);
|
|
/* 028D603C */ _t52 = _t51 & 0x00000001u;
|
|
/* 028D603C */ if (_t52) goto L_028D601C; else goto L_028D6040;
|
|
L_028D6040: ; // 0x28d6040
|
|
/* 028D6040 */ cpu->r[5] = 0x00000002u;
|
|
/* 028D6044 */ cpu->r[4] = cpu->r[31] + 0x00000110u;
|
|
/* 028D6048 */ cpu->r[3] = cpu->r[1] + 0x0000005Cu;
|
|
/* 028D604C */ Gambit_fn_0200D42C(cpu);
|
|
/* 028D6050 */ _t53 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028D6050 */ cpu->r[7] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028D6054 */ _t54 = cpu->r[1] + 0x00000060u;
|
|
/* 028D6054 */ cpu->r[9] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028D6058 */ _t55 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D6058 */ rbrew_write32(cpu->mem, _t55, cpu->r[7]);
|
|
/* 028D605C */ _t56 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D605C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t56);
|
|
/* 028D6060 */ _t57 = cpu->r[1] + 0x00000064u;
|
|
/* 028D6060 */ cpu->r[10] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028D6064 */ _t58 = cpu->r[1] + 0x00000030u;
|
|
/* 028D6064 */ rbrew_write32(cpu->mem, _t58, cpu->r[9]);
|
|
/* 028D6068 */ _t59 = cpu->r[1] + 0x00000030u;
|
|
/* 028D6068 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t59);
|
|
/* 028D606C */ cpu->f[13] = -cpu->f[13];
|
|
/* 028D6070 */ _t60 = cpu->r[1] + 0x00000034u;
|
|
/* 028D6070 */ rbrew_write32(cpu->mem, _t60, cpu->r[10]);
|
|
/* 028D6074 */ _t61 = cpu->r[1] + 0x00000034u;
|
|
/* 028D6074 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t61);
|
|
/* 028D6078 */ cpu->f[0] = -cpu->f[0];
|
|
/* 028D607C */ _t62 = cpu->r[1] + 0x00000008u;
|
|
/* 028D607C */ rbrew_write_f32(cpu->mem, _t62, cpu->f[13]);
|
|
/* 028D6080 */ _t63 = cpu->r[1] + 0x00000008u;
|
|
/* 028D6080 */ cpu->r[5] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028D6084 */ cpu->f[13] = -cpu->f[12];
|
|
/* 028D6088 */ _t64 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6088 */ rbrew_write_f32(cpu->mem, _t64, cpu->f[0]);
|
|
/* 028D608C */ _t65 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D608C */ cpu->r[7] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028D6090 */ _t66 = cpu->r[1] + 0x00000050u;
|
|
/* 028D6090 */ rbrew_write32(cpu->mem, _t66, cpu->r[5]);
|
|
/* 028D6094 */ cpu->r[11] = cpu->r[1] + 0x00000050u;
|
|
/* 028D6098 */ _t67 = cpu->r[1] + 0x00000010u;
|
|
/* 028D6098 */ rbrew_write_f32(cpu->mem, _t67, cpu->f[13]);
|
|
/* 028D609C */ _t68 = cpu->r[1] + 0x00000010u;
|
|
/* 028D609C */ cpu->r[8] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028D60A0 */ cpu->r[5] = cpu->r[11];
|
|
/* 028D60A4 */ cpu->r[3] = cpu->r[1] + 0x00000068u;
|
|
/* 028D60A8 */ _t69 = cpu->r[1] + 0x00000054u;
|
|
/* 028D60A8 */ rbrew_write32(cpu->mem, _t69, cpu->r[7]);
|
|
/* 028D60AC */ cpu->r[4] = 0x00000002u;
|
|
/* 028D60B0 */ _t70 = cpu->r[1] + 0x00000058u;
|
|
/* 028D60B0 */ rbrew_write32(cpu->mem, _t70, cpu->r[8]);
|
|
/* 028D60B4 */ Gambit_fn_0204F22C(cpu);
|
|
/* 028D60B8 */ cpu->r[4] = cpu->r[1] + 0x00000068u;
|
|
/* 028D60BC */ cpu->r[3] = cpu->r[31] + 0x00000068u;
|
|
/* 028D60C0 */ Gambit_fn_028DA7F8(cpu);
|
|
L_028D60C4: ; // 0x28d60c4
|
|
/* 028D60C4 */ _t71 = cpu->r[1] + 0x000000A4u;
|
|
/* 028D60C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028D60C8 */ _t72 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028D60C8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028D60CC */ cpu->lr = cpu->r[0];
|
|
/* 028D60D0 */ cpu->r[1] = cpu->r[1] + 0x000000A0u;
|
|
/* 028D60D4 */ return;
|
|
}
|
|
|
|
// fn_028D60D8 @ 0x28d60d8
|
|
void Gambit_fn_028D60D8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028D60D8: ; // 0x28d60d8
|
|
/* 028D60D8 */ cpu->r[0] = cpu->lr;
|
|
/* 028D60DC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D60DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D60DC */ cpu->r[1] = _t0;
|
|
/* 028D60E0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D60E0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D60E4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D60E4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D60E8 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D60E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D60EC */ cpu->r[30] = cpu->r[3];
|
|
/* 028D60F0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D60F0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D60F4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D60F4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D60F4 */ if (_t5) goto L_028D6120; else goto L_028D60F8;
|
|
L_028D60F8: ; // 0x28d60f8
|
|
/* 028D60F8 */ cpu->r[4] = cpu->r[5];
|
|
/* 028D60FC */ cpu->r[5] = cpu->r[31];
|
|
/* 028D6100 */ cpu->r[3] = cpu->r[30] + 0x000000E0u;
|
|
/* 028D6104 */ Gambit_fn_02C69468(cpu);
|
|
/* 028D6108 */ _t6 = cpu->r[30] + 0x000000D0u;
|
|
/* 028D6108 */ cpu->r[0] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028D610C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D6110 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6110 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D6110 */ if (_t8) goto L_028D6120; else goto L_028D6114;
|
|
L_028D6114: ; // 0x28d6114
|
|
/* 028D6114 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6118 */ _t9 = cpu->r[12] + 0xFFFFA9D4u;
|
|
/* 028D6118 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028D611C */ _t10 = cpu->r[31] + 0x00000008u;
|
|
/* 028D611C */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
L_028D6120: ; // 0x28d6120
|
|
/* 028D6120 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6120 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D6124 */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 028D6124 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D6128 */ cpu->lr = cpu->r[0];
|
|
/* 028D612C */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D612C */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D6130 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D6134 */ return;
|
|
}
|
|
|
|
// fn_028D60DC @ 0x28d60dc
|
|
void Gambit_fn_028D60DC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028D60DC: ; // 0x28d60dc
|
|
/* 028D60DC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D60DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D60DC */ cpu->r[1] = _t0;
|
|
/* 028D60E0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D60E0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D60E4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D60E4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D60E8 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D60E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D60EC */ cpu->r[30] = cpu->r[3];
|
|
/* 028D60F0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D60F0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D60F4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D60F4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D60F4 */ if (_t5) goto L_028D6120; else goto L_028D60F8;
|
|
L_028D60F8: ; // 0x28d60f8
|
|
/* 028D60F8 */ cpu->r[4] = cpu->r[5];
|
|
/* 028D60FC */ cpu->r[5] = cpu->r[31];
|
|
/* 028D6100 */ cpu->r[3] = cpu->r[30] + 0x000000E0u;
|
|
/* 028D6104 */ Gambit_fn_02C69468(cpu);
|
|
/* 028D6108 */ _t6 = cpu->r[30] + 0x000000D0u;
|
|
/* 028D6108 */ cpu->r[0] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028D610C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D6110 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6110 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D6110 */ if (_t8) goto L_028D6120; else goto L_028D6114;
|
|
L_028D6114: ; // 0x28d6114
|
|
/* 028D6114 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6118 */ _t9 = cpu->r[12] + 0xFFFFA9D4u;
|
|
/* 028D6118 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028D611C */ _t10 = cpu->r[31] + 0x00000008u;
|
|
/* 028D611C */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
L_028D6120: ; // 0x28d6120
|
|
/* 028D6120 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6120 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D6124 */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 028D6124 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D6128 */ cpu->lr = cpu->r[0];
|
|
/* 028D612C */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D612C */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D6130 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D6134 */ return;
|
|
}
|
|
|
|
// fn_028D6138 @ 0x28d6138
|
|
void Gambit_fn_028D6138(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22;
|
|
|
|
L_028D6138: ; // 0x28d6138
|
|
/* 028D6138 */ cpu->r[0] = cpu->lr;
|
|
/* 028D613C */ _t0 = cpu->r[1] + 0xFFFFFFC0u;
|
|
/* 028D613C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D613C */ cpu->r[1] = _t0;
|
|
/* 028D6140 */ _t1 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D6140 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D6144 */ _t2 = cpu->r[1] + 0x00000044u;
|
|
/* 028D6144 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D6148 */ _t3 = cpu->r[3] + 0x000000D0u;
|
|
/* 028D6148 */ cpu->r[0] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028D614C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D6150 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D6154 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6154 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D6154 */ if (_t5) goto L_028D6170; else goto L_028D6158;
|
|
L_028D6158: ; // 0x28d6158
|
|
/* 028D6158 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D615C */ cpu->r[5] = cpu->r[31];
|
|
/* 028D6160 */ Gambit_fn_028D60D8(cpu);
|
|
/* 028D6164 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028D6168 */ Gambit_fn_02C69350(cpu);
|
|
/* 028D616C */ goto L_028D61D4;
|
|
L_028D6170: ; // 0x28d6170
|
|
/* 028D6170 */ cpu->r[4] = cpu->r[3] + 0x00000110u;
|
|
/* 028D6174 */ cpu->r[3] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D6178 */ Gambit_fn_0200D450(cpu);
|
|
/* 028D617C */ /* nop */
|
|
/* 028D6180 */ /* nop */
|
|
/* 028D6184 */ _t6 = cpu->r[1] + 0x00000034u;
|
|
/* 028D6184 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028D6188 */ /* nop */
|
|
/* 028D618C */ _t7 = cpu->r[31] + 0x00000008u;
|
|
/* 028D618C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028D6190 */ /* nop */
|
|
/* 028D6194 */ _t8 = cpu->r[1] + 0x00000018u;
|
|
/* 028D6194 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D6198 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6198 */ cpu->r[11] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D619C */ cpu->f[0] = cpu->f[13] - cpu->f[0];
|
|
/* 028D61A0 */ _t10 = cpu->r[1] + 0x00000024u;
|
|
/* 028D61A0 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028D61A4 */ _t11 = cpu->r[1] + 0x00000020u;
|
|
/* 028D61A4 */ rbrew_write32(cpu->mem, _t11, cpu->r[11]);
|
|
/* 028D61A8 */ _t12 = cpu->r[1] + 0x00000020u;
|
|
/* 028D61A8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 028D61AC */ _t13 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D61AC */ rbrew_write_f32(cpu->mem, _t13, cpu->f[0]);
|
|
/* 028D61B0 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D61B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D61B4 */ _t15 = cpu->r[1] + 0x00000024u;
|
|
/* 028D61B4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028D61B8 */ _t16 = cpu->r[1] + 0x00000028u;
|
|
/* 028D61B8 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 028D61BC */ _t17 = cpu->r[1] + 0x00000028u;
|
|
/* 028D61BC */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028D61C0 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D61C0 */ rbrew_write_f32(cpu->mem, _t18, cpu->f[0]);
|
|
/* 028D61C4 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028D61C4 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[13]);
|
|
/* 028D61C8 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028D61CC */ _t20 = cpu->r[1] + 0x00000010u;
|
|
/* 028D61CC */ rbrew_write_f32(cpu->mem, _t20, cpu->f[12]);
|
|
/* 028D61D0 */ Gambit_fn_02C69350(cpu);
|
|
L_028D61D4: ; // 0x28d61d4
|
|
/* 028D61D4 */ _t21 = cpu->r[1] + 0x00000044u;
|
|
/* 028D61D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D61D8 */ _t22 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D61D8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D61DC */ cpu->lr = cpu->r[0];
|
|
/* 028D61E0 */ cpu->r[1] = cpu->r[1] + 0x00000040u;
|
|
/* 028D61E4 */ return;
|
|
}
|
|
|
|
// fn_028D613C @ 0x28d613c
|
|
void Gambit_fn_028D613C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22;
|
|
|
|
L_028D613C: ; // 0x28d613c
|
|
/* 028D613C */ _t0 = cpu->r[1] + 0xFFFFFFC0u;
|
|
/* 028D613C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D613C */ cpu->r[1] = _t0;
|
|
/* 028D6140 */ _t1 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D6140 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D6144 */ _t2 = cpu->r[1] + 0x00000044u;
|
|
/* 028D6144 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D6148 */ _t3 = cpu->r[3] + 0x000000D0u;
|
|
/* 028D6148 */ cpu->r[0] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028D614C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D6150 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D6154 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6154 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D6154 */ if (_t5) goto L_028D6170; else goto L_028D6158;
|
|
L_028D6158: ; // 0x28d6158
|
|
/* 028D6158 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D615C */ cpu->r[5] = cpu->r[31];
|
|
/* 028D6160 */ Gambit_fn_028D60D8(cpu);
|
|
/* 028D6164 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028D6168 */ Gambit_fn_02C69350(cpu);
|
|
/* 028D616C */ goto L_028D61D4;
|
|
L_028D6170: ; // 0x28d6170
|
|
/* 028D6170 */ cpu->r[4] = cpu->r[3] + 0x00000110u;
|
|
/* 028D6174 */ cpu->r[3] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D6178 */ Gambit_fn_0200D450(cpu);
|
|
/* 028D617C */ /* nop */
|
|
/* 028D6180 */ /* nop */
|
|
/* 028D6184 */ _t6 = cpu->r[1] + 0x00000034u;
|
|
/* 028D6184 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028D6188 */ /* nop */
|
|
/* 028D618C */ _t7 = cpu->r[31] + 0x00000008u;
|
|
/* 028D618C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028D6190 */ /* nop */
|
|
/* 028D6194 */ _t8 = cpu->r[1] + 0x00000018u;
|
|
/* 028D6194 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D6198 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6198 */ cpu->r[11] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D619C */ cpu->f[0] = cpu->f[13] - cpu->f[0];
|
|
/* 028D61A0 */ _t10 = cpu->r[1] + 0x00000024u;
|
|
/* 028D61A0 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028D61A4 */ _t11 = cpu->r[1] + 0x00000020u;
|
|
/* 028D61A4 */ rbrew_write32(cpu->mem, _t11, cpu->r[11]);
|
|
/* 028D61A8 */ _t12 = cpu->r[1] + 0x00000020u;
|
|
/* 028D61A8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 028D61AC */ _t13 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D61AC */ rbrew_write_f32(cpu->mem, _t13, cpu->f[0]);
|
|
/* 028D61B0 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D61B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D61B4 */ _t15 = cpu->r[1] + 0x00000024u;
|
|
/* 028D61B4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028D61B8 */ _t16 = cpu->r[1] + 0x00000028u;
|
|
/* 028D61B8 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 028D61BC */ _t17 = cpu->r[1] + 0x00000028u;
|
|
/* 028D61BC */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028D61C0 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D61C0 */ rbrew_write_f32(cpu->mem, _t18, cpu->f[0]);
|
|
/* 028D61C4 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028D61C4 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[13]);
|
|
/* 028D61C8 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028D61CC */ _t20 = cpu->r[1] + 0x00000010u;
|
|
/* 028D61CC */ rbrew_write_f32(cpu->mem, _t20, cpu->f[12]);
|
|
/* 028D61D0 */ Gambit_fn_02C69350(cpu);
|
|
L_028D61D4: ; // 0x28d61d4
|
|
/* 028D61D4 */ _t21 = cpu->r[1] + 0x00000044u;
|
|
/* 028D61D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D61D8 */ _t22 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D61D8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D61DC */ cpu->lr = cpu->r[0];
|
|
/* 028D61E0 */ cpu->r[1] = cpu->r[1] + 0x00000040u;
|
|
/* 028D61E4 */ return;
|
|
}
|
|
|
|
// fn_028D61E8 @ 0x28d61e8
|
|
void Gambit_fn_028D61E8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21;
|
|
|
|
L_028D61E8: ; // 0x28d61e8
|
|
/* 028D61E8 */ cpu->r[0] = cpu->lr;
|
|
/* 028D61EC */ _t0 = cpu->r[1] + 0xFFFFFFB8u;
|
|
/* 028D61EC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D61EC */ cpu->r[1] = _t0;
|
|
/* 028D61F0 */ _t1 = cpu->r[1] + 0x00000044u;
|
|
/* 028D61F0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D61F4 */ _t2 = cpu->r[1] + 0x00000040u;
|
|
/* 028D61F4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D61F8 */ cpu->r[30] = cpu->r[4];
|
|
/* 028D61F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D61FC */ cpu->r[31] = cpu->r[5];
|
|
/* 028D6200 */ _t3 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D6200 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028D6204 */ _t4 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028D6204 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D6208 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D620C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D620C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D620C */ if (_t6) goto L_028D627C; else goto L_028D6210;
|
|
L_028D6210: ; // 0x28d6210
|
|
/* 028D6210 */ _t7 = cpu->r[29] + 0x000000D8u;
|
|
/* 028D6210 */ cpu->r[0] = rbrew_read8(cpu->mem, _t7);
|
|
/* 028D6214 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D6218 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6218 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D6218 */ if (_t9) goto L_028D6248; else goto L_028D621C;
|
|
L_028D621C: ; // 0x28d621c
|
|
/* 028D621C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D6220 */ cpu->r[3] = cpu->r[29] + 0x00000140u;
|
|
/* 028D6224 */ Gambit_fn_02C69510(cpu);
|
|
/* 028D6228 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D622C */ cpu->r[4] = cpu->r[31];
|
|
/* 028D6230 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028D6234 */ Gambit_fn_02C69544(cpu);
|
|
/* 028D6238 */ _t10 = cpu->r[29] + 0x000000D0u;
|
|
/* 028D6238 */ cpu->r[0] = rbrew_read8(cpu->mem, _t10);
|
|
/* 028D623C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D6240 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6240 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D6240 */ if (_t12) goto L_028D627C; else goto L_028D6244;
|
|
L_028D6244: ; // 0x28d6244
|
|
/* 028D6244 */ goto L_028D6270;
|
|
L_028D6248: ; // 0x28d6248
|
|
/* 028D6248 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D624C */ cpu->r[3] = cpu->r[29] + 0x000000E0u;
|
|
/* 028D6250 */ Gambit_fn_02C69510(cpu);
|
|
/* 028D6254 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D6258 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D625C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028D6260 */ Gambit_fn_02C69544(cpu);
|
|
/* 028D6264 */ _t13 = cpu->r[29] + 0x000000D0u;
|
|
/* 028D6264 */ cpu->r[0] = rbrew_read8(cpu->mem, _t13);
|
|
/* 028D6268 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D626C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D626C */ _t15 = _t14 & 0x00000001u;
|
|
/* 028D626C */ if (_t15) goto L_028D627C; else goto L_028D6270;
|
|
L_028D6270: ; // 0x28d6270
|
|
/* 028D6270 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6274 */ _t16 = cpu->r[12] + 0xFFFFA9D4u;
|
|
/* 028D6274 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028D6278 */ _t17 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028D6278 */ rbrew_write_f32(cpu->mem, _t17, cpu->f[0]);
|
|
L_028D627C: ; // 0x28d627c
|
|
/* 028D627C */ _t18 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D627C */ cpu->r[29] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D6280 */ _t19 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028D6280 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D6284 */ _t20 = cpu->r[1] + 0x00000040u;
|
|
/* 028D6284 */ cpu->r[30] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D6288 */ cpu->lr = cpu->r[0];
|
|
/* 028D628C */ _t21 = cpu->r[1] + 0x00000044u;
|
|
/* 028D628C */ cpu->r[31] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D6290 */ cpu->r[1] = cpu->r[1] + 0x00000048u;
|
|
/* 028D6294 */ return;
|
|
}
|
|
|
|
// fn_028D61EC @ 0x28d61ec
|
|
void Gambit_fn_028D61EC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21;
|
|
|
|
L_028D61EC: ; // 0x28d61ec
|
|
/* 028D61EC */ _t0 = cpu->r[1] + 0xFFFFFFB8u;
|
|
/* 028D61EC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D61EC */ cpu->r[1] = _t0;
|
|
/* 028D61F0 */ _t1 = cpu->r[1] + 0x00000044u;
|
|
/* 028D61F0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D61F4 */ _t2 = cpu->r[1] + 0x00000040u;
|
|
/* 028D61F4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D61F8 */ cpu->r[30] = cpu->r[4];
|
|
/* 028D61F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D61FC */ cpu->r[31] = cpu->r[5];
|
|
/* 028D6200 */ _t3 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D6200 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028D6204 */ _t4 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028D6204 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D6208 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D620C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D620C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D620C */ if (_t6) goto L_028D627C; else goto L_028D6210;
|
|
L_028D6210: ; // 0x28d6210
|
|
/* 028D6210 */ _t7 = cpu->r[29] + 0x000000D8u;
|
|
/* 028D6210 */ cpu->r[0] = rbrew_read8(cpu->mem, _t7);
|
|
/* 028D6214 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D6218 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6218 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D6218 */ if (_t9) goto L_028D6248; else goto L_028D621C;
|
|
L_028D621C: ; // 0x28d621c
|
|
/* 028D621C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D6220 */ cpu->r[3] = cpu->r[29] + 0x00000140u;
|
|
/* 028D6224 */ Gambit_fn_02C69510(cpu);
|
|
/* 028D6228 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D622C */ cpu->r[4] = cpu->r[31];
|
|
/* 028D6230 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028D6234 */ Gambit_fn_02C69544(cpu);
|
|
/* 028D6238 */ _t10 = cpu->r[29] + 0x000000D0u;
|
|
/* 028D6238 */ cpu->r[0] = rbrew_read8(cpu->mem, _t10);
|
|
/* 028D623C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D6240 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6240 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D6240 */ if (_t12) goto L_028D627C; else goto L_028D6244;
|
|
L_028D6244: ; // 0x28d6244
|
|
/* 028D6244 */ goto L_028D6270;
|
|
L_028D6248: ; // 0x28d6248
|
|
/* 028D6248 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D624C */ cpu->r[3] = cpu->r[29] + 0x000000E0u;
|
|
/* 028D6250 */ Gambit_fn_02C69510(cpu);
|
|
/* 028D6254 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D6258 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D625C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028D6260 */ Gambit_fn_02C69544(cpu);
|
|
/* 028D6264 */ _t13 = cpu->r[29] + 0x000000D0u;
|
|
/* 028D6264 */ cpu->r[0] = rbrew_read8(cpu->mem, _t13);
|
|
/* 028D6268 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D626C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D626C */ _t15 = _t14 & 0x00000001u;
|
|
/* 028D626C */ if (_t15) goto L_028D627C; else goto L_028D6270;
|
|
L_028D6270: ; // 0x28d6270
|
|
/* 028D6270 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6274 */ _t16 = cpu->r[12] + 0xFFFFA9D4u;
|
|
/* 028D6274 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028D6278 */ _t17 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028D6278 */ rbrew_write_f32(cpu->mem, _t17, cpu->f[0]);
|
|
L_028D627C: ; // 0x28d627c
|
|
/* 028D627C */ _t18 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D627C */ cpu->r[29] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D6280 */ _t19 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028D6280 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D6284 */ _t20 = cpu->r[1] + 0x00000040u;
|
|
/* 028D6284 */ cpu->r[30] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D6288 */ cpu->lr = cpu->r[0];
|
|
/* 028D628C */ _t21 = cpu->r[1] + 0x00000044u;
|
|
/* 028D628C */ cpu->r[31] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D6290 */ cpu->r[1] = cpu->r[1] + 0x00000048u;
|
|
/* 028D6294 */ return;
|
|
}
|
|
|
|
// fn_028D6298 @ 0x28d6298
|
|
void Gambit_fn_028D6298(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028D6298: ; // 0x28d6298
|
|
/* 028D6298 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028D6298 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028D629C */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028D62A0 */ cpu->r[12] = cpu->r[3] + cpu->r[12];
|
|
/* 028D62A4 */ _t1 = cpu->r[12] + 0x00000040u;
|
|
/* 028D62A4 */ rbrew_write_f32(cpu->mem, _t1, cpu->f[1]);
|
|
/* 028D62A8 */ return;
|
|
}
|
|
|
|
// fn_028D62AC @ 0x28d62ac
|
|
void Gambit_fn_028D62AC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112, _t113, _t114, _t115, _t116, _t117, _t118, _t119, _t120, _t121, _t122, _t123, _t124, _t125, _t126, _t127, _t128, _t129, _t130, _t131, _t132, _t133, _t134, _t135;
|
|
|
|
L_028D62AC: ; // 0x28d62ac
|
|
/* 028D62AC */ cpu->r[0] = cpu->lr;
|
|
/* 028D62B0 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 028D62B0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D62B0 */ cpu->r[1] = _t0;
|
|
/* 028D62B4 */ _t1 = cpu->r[1] + 0x00000028u;
|
|
/* 028D62B4 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028D62B8 */ /* nop */
|
|
/* 028D62BC */ _t2 = cpu->r[1] + 0x00000030u;
|
|
/* 028D62BC */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028D62C0 */ _t3 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D62C0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D62C4 */ /* nop */
|
|
/* 028D62C8 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D62C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D62CC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D62CC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D62CC */ if (_t5) goto L_028D62D0; else goto L_028D62E0;
|
|
L_028D62D0: ; // 0x28d62d0
|
|
/* 028D62D0 */ cpu->r[3] = 0x00000180u;
|
|
/* 028D62D4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D62D8 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D62D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D62DC */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D62DC */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D62DC */ if (_t7) goto L_028D661C; else goto L_028D62E0;
|
|
L_028D62E0: ; // 0x28d62e0
|
|
/* 028D62E0 */ cpu->r[30] = 0x10140000u;
|
|
/* 028D62E4 */ cpu->r[31] = 0x10110000u;
|
|
/* 028D62E8 */ cpu->r[27] = cpu->r[29];
|
|
/* 028D62E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028D62EC */ cpu->r[30] = cpu->r[30] + 0xFFFFA924u;
|
|
/* 028D62F0 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D62F0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D62F0 */ if (_t9) goto L_028D62F4; else goto L_028D6374;
|
|
L_028D62F4: ; // 0x28d62f4
|
|
/* 028D62F4 */ cpu->r[3] = 0x00000038u;
|
|
/* 028D62F8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D62FC */ cpu->r[27] = cpu->r[3];
|
|
/* 028D62FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028D6300 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6300 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D6300 */ if (_t11) goto L_028D6304; else goto L_028D6374;
|
|
L_028D6304: ; // 0x28d6304
|
|
/* 028D6304 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D6308 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D630C */ _t12 = cpu->r[11] + 0xFFFFA9D8u;
|
|
/* 028D630C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 028D6310 */ cpu->r[8] = 0x10140000u;
|
|
/* 028D6314 */ _t13 = cpu->r[31] + 0x00007399u;
|
|
/* 028D6314 */ cpu->r[31] = rbrew_read8(cpu->mem, _t13);
|
|
/* 028D6318 */ cpu->r[0] = cpu->r[0] + 0xFFFFAA04u;
|
|
/* 028D631C */ _t14 = cpu->r[8] + 0xFFFFA9D4u;
|
|
/* 028D631C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028D6320 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6324 */ _t15 = cpu->r[29] + 0x00000038u;
|
|
/* 028D6324 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028D6328 */ cpu->r[12] = cpu->r[12] + 0xFFFFA9ECu;
|
|
/* 028D632C */ _t16 = cpu->r[29] + 0x00000058u;
|
|
/* 028D632C */ rbrew_write_f32(cpu->mem, _t16, cpu->f[13]);
|
|
/* 028D6330 */ _t17 = cpu->r[29] + 0x00000008u;
|
|
/* 028D6330 */ rbrew_write32(cpu->mem, _t17, cpu->r[12]);
|
|
/* 028D6334 */ _t18 = cpu->r[29] + 0x0000005Cu;
|
|
/* 028D6334 */ rbrew_write_f32(cpu->mem, _t18, cpu->f[13]);
|
|
/* 028D6338 */ cpu->r[3] = cpu->r[29] + 0x00000060u;
|
|
/* 028D633C */ _t19 = cpu->r[29] + 0x0000003Cu;
|
|
/* 028D633C */ rbrew_write_f32(cpu->mem, _t19, cpu->f[31]);
|
|
/* 028D6340 */ Gambit_fn_028D68B4(cpu);
|
|
/* 028D6344 */ cpu->r[10] = 0x101F0000u;
|
|
/* 028D6348 */ cpu->r[12] = 0x00000000u;
|
|
/* 028D634C */ _t20 = cpu->r[29] + 0x000000D4u;
|
|
/* 028D634C */ rbrew_write_f32(cpu->mem, _t20, cpu->f[31]);
|
|
/* 028D6350 */ cpu->r[10] = cpu->r[10] + 0x00005E30u;
|
|
/* 028D6354 */ cpu->r[0] = 0x00000003u;
|
|
/* 028D6358 */ _t21 = cpu->r[29] + 0x000000DCu;
|
|
/* 028D6358 */ rbrew_write32(cpu->mem, _t21, cpu->r[12]);
|
|
/* 028D635C */ cpu->r[9] = cpu->r[29] + 0x000000DCu;
|
|
/* 028D6360 */ cpu->r[8] = cpu->r[10] + 0xFFFFFFFCu;
|
|
/* 028D6364 */ _t22 = cpu->r[29] + 0x000000D0u;
|
|
/* 028D6364 */ rbrew_write8(cpu->mem, _t22, (uint8_t)cpu->r[12]);
|
|
/* 028D6368 */ cpu->ctr = cpu->r[0];
|
|
/* 028D636C */ _t23 = cpu->r[29] + 0x000000D8u;
|
|
/* 028D636C */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[12]);
|
|
/* 028D6370 */ goto L_028D64B4;
|
|
L_028D6374: ; // 0x28d6374
|
|
/* 028D6374 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D6374 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D6378 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6378 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D6378 */ if (_t25) goto L_028D637C; else goto L_028D638C;
|
|
L_028D637C: ; // 0x28d637c
|
|
/* 028D637C */ cpu->r[3] = 0x00000008u;
|
|
/* 028D6380 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D6384 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D6388 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6388 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028D6388 */ if (_t27) goto L_028D639C; else goto L_028D638C;
|
|
L_028D638C: ; // 0x28d638c
|
|
/* 028D638C */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6390 */ _t28 = cpu->r[3] + 0x00000004u;
|
|
/* 028D6390 */ rbrew_write32(cpu->mem, _t28, cpu->r[30]);
|
|
/* 028D6394 */ cpu->r[12] = cpu->r[12] + 0xFFFFA920u;
|
|
/* 028D6398 */ _t29 = cpu->r[3] + 0x00000000u;
|
|
/* 028D6398 */ rbrew_write32(cpu->mem, _t29, cpu->r[12]);
|
|
L_028D639C: ; // 0x28d639c
|
|
/* 028D639C */ cpu->r[0] = 0x10140000u;
|
|
/* 028D63A0 */ cpu->r[0] = cpu->r[0] + 0xFFFFA98Cu;
|
|
/* 028D63A4 */ cpu->r[28] = cpu->r[27] + 0x0000000Cu;
|
|
/* 028D63A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028D63A8 */ _t30 = cpu->r[27] + 0x00000008u;
|
|
/* 028D63A8 */ rbrew_write32(cpu->mem, _t30, cpu->r[0]);
|
|
/* 028D63AC */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D63AC */ _t32 = _t31 & 0x00000001u;
|
|
/* 028D63AC */ if (_t32) goto L_028D63B0; else goto L_028D63D4;
|
|
L_028D63B0: ; // 0x28d63b0
|
|
/* 028D63B0 */ cpu->r[3] = 0x0000002Cu;
|
|
/* 028D63B4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D63B8 */ cpu->r[28] = cpu->r[3];
|
|
/* 028D63B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028D63BC */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D63BC */ _t34 = _t33 & 0x00000001u;
|
|
/* 028D63BC */ if (_t34) goto L_028D63C0; else goto L_028D63D4;
|
|
L_028D63C0: ; // 0x28d63c0
|
|
/* 028D63C0 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D63C4 */ _t35 = cpu->r[31] + 0x00007399u;
|
|
/* 028D63C4 */ cpu->r[31] = rbrew_read8(cpu->mem, _t35);
|
|
/* 028D63C8 */ cpu->r[11] = cpu->r[11] + 0xFFFFA9BCu;
|
|
/* 028D63CC */ _t36 = cpu->r[27] + 0x00000010u;
|
|
/* 028D63CC */ rbrew_write32(cpu->mem, _t36, cpu->r[11]);
|
|
/* 028D63D0 */ goto L_028D644C;
|
|
L_028D63D4: ; // 0x28d63d4
|
|
/* 028D63D4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D63D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D63D8 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D63D8 */ _t38 = _t37 & 0x00000001u;
|
|
/* 028D63D8 */ if (_t38) goto L_028D63DC; else goto L_028D6408;
|
|
L_028D63DC: ; // 0x28d63dc
|
|
/* 028D63DC */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028D63E0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D63E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D63E8 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D63E8 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028D63E8 */ if (_t40) goto L_028D63EC; else goto L_028D6408;
|
|
L_028D63EC: ; // 0x28d63ec
|
|
/* 028D63EC */ cpu->r[9] = 0x10140000u;
|
|
/* 028D63F0 */ _t41 = cpu->r[31] + 0x00007399u;
|
|
/* 028D63F0 */ cpu->r[31] = rbrew_read8(cpu->mem, _t41);
|
|
/* 028D63F4 */ cpu->r[9] = cpu->r[9] + 0xFFFFA9A4u;
|
|
/* 028D63F8 */ _t42 = cpu->r[28] + 0x00000000u;
|
|
/* 028D63F8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028D63FC */ _t43 = cpu->r[28] + 0x00000004u;
|
|
/* 028D63FC */ rbrew_write32(cpu->mem, _t43, cpu->r[9]);
|
|
/* 028D6400 */ _t44 = cpu->r[10] + 0x00000000u;
|
|
/* 028D6400 */ rbrew_write8(cpu->mem, _t44, (uint8_t)cpu->r[31]);
|
|
/* 028D6404 */ goto L_028D6440;
|
|
L_028D6408: ; // 0x28d6408
|
|
/* 028D6408 */ cpu->r[7] = 0x10140000u;
|
|
/* 028D640C */ cpu->r[6] = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D6410 */ cpu->r[7] = cpu->r[7] + 0xFFFFA93Cu;
|
|
/* 028D6414 */ _t45 = cpu->r[3] + 0x00000000u;
|
|
/* 028D6414 */ rbrew_write32(cpu->mem, _t45, cpu->r[6]);
|
|
/* 028D6418 */ cpu->r[8] = 0x00000020u;
|
|
/* 028D641C */ _t46 = cpu->r[3] + 0x00000004u;
|
|
/* 028D641C */ rbrew_write32(cpu->mem, _t46, cpu->r[7]);
|
|
/* 028D6420 */ _t47 = cpu->r[3] + 0x00000008u;
|
|
/* 028D6420 */ rbrew_write32(cpu->mem, _t47, cpu->r[8]);
|
|
/* 028D6424 */ _t48 = cpu->r[31] + 0x00007399u;
|
|
/* 028D6424 */ cpu->r[31] = rbrew_read8(cpu->mem, _t48);
|
|
/* 028D6428 */ cpu->r[9] = 0x10140000u;
|
|
/* 028D642C */ _t49 = cpu->r[28] + 0x00000000u;
|
|
/* 028D642C */ cpu->r[10] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028D6430 */ cpu->r[9] = cpu->r[9] + 0xFFFFA9A4u;
|
|
/* 028D6434 */ _t50 = cpu->r[28] + 0x0000002Bu;
|
|
/* 028D6434 */ rbrew_write8(cpu->mem, _t50, (uint8_t)cpu->r[31]);
|
|
/* 028D6438 */ _t51 = cpu->r[28] + 0x00000004u;
|
|
/* 028D6438 */ rbrew_write32(cpu->mem, _t51, cpu->r[9]);
|
|
/* 028D643C */ _t52 = cpu->r[10] + 0x00000000u;
|
|
/* 028D643C */ rbrew_write8(cpu->mem, _t52, (uint8_t)cpu->r[31]);
|
|
L_028D6440: ; // 0x28d6440
|
|
/* 028D6440 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D6444 */ cpu->r[11] = cpu->r[11] + 0xFFFFA9BCu;
|
|
/* 028D6448 */ _t53 = cpu->r[27] + 0x00000010u;
|
|
/* 028D6448 */ rbrew_write32(cpu->mem, _t53, cpu->r[11]);
|
|
L_028D644C: ; // 0x28d644c
|
|
/* 028D644C */ cpu->r[11] = 0x10140000u;
|
|
/* 028D6450 */ cpu->r[8] = 0x10140000u;
|
|
/* 028D6454 */ _t54 = cpu->r[11] + 0xFFFFA9D8u;
|
|
/* 028D6454 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t54);
|
|
/* 028D6458 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D645C */ _t55 = cpu->r[8] + 0xFFFFA9D4u;
|
|
/* 028D645C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t55);
|
|
/* 028D6460 */ _t56 = cpu->r[29] + 0x0000003Cu;
|
|
/* 028D6460 */ rbrew_write_f32(cpu->mem, _t56, cpu->f[31]);
|
|
/* 028D6464 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6468 */ _t57 = cpu->r[29] + 0x0000005Cu;
|
|
/* 028D6468 */ rbrew_write_f32(cpu->mem, _t57, cpu->f[13]);
|
|
/* 028D646C */ cpu->r[0] = cpu->r[0] + 0xFFFFAA04u;
|
|
/* 028D6470 */ _t58 = cpu->r[29] + 0x00000058u;
|
|
/* 028D6470 */ rbrew_write_f32(cpu->mem, _t58, cpu->f[13]);
|
|
/* 028D6474 */ cpu->r[12] = cpu->r[12] + 0xFFFFA9ECu;
|
|
/* 028D6478 */ _t59 = cpu->r[29] + 0x00000038u;
|
|
/* 028D6478 */ rbrew_write32(cpu->mem, _t59, cpu->r[0]);
|
|
/* 028D647C */ cpu->r[3] = cpu->r[29] + 0x00000060u;
|
|
/* 028D6480 */ _t60 = cpu->r[29] + 0x00000008u;
|
|
/* 028D6480 */ rbrew_write32(cpu->mem, _t60, cpu->r[12]);
|
|
/* 028D6484 */ Gambit_fn_028D68B4(cpu);
|
|
/* 028D6488 */ cpu->r[10] = 0x101F0000u;
|
|
/* 028D648C */ cpu->r[12] = 0x00000000u;
|
|
/* 028D6490 */ _t61 = cpu->r[29] + 0x000000D4u;
|
|
/* 028D6490 */ rbrew_write_f32(cpu->mem, _t61, cpu->f[31]);
|
|
/* 028D6494 */ cpu->r[10] = cpu->r[10] + 0x00005E30u;
|
|
/* 028D6498 */ cpu->r[0] = 0x00000003u;
|
|
/* 028D649C */ _t62 = cpu->r[29] + 0x000000DCu;
|
|
/* 028D649C */ rbrew_write32(cpu->mem, _t62, cpu->r[12]);
|
|
/* 028D64A0 */ cpu->r[9] = cpu->r[29] + 0x000000DCu;
|
|
/* 028D64A4 */ cpu->r[8] = cpu->r[10] + 0xFFFFFFFCu;
|
|
/* 028D64A8 */ _t63 = cpu->r[29] + 0x000000D0u;
|
|
/* 028D64A8 */ rbrew_write8(cpu->mem, _t63, (uint8_t)cpu->r[12]);
|
|
/* 028D64AC */ cpu->ctr = cpu->r[0];
|
|
/* 028D64B0 */ _t64 = cpu->r[29] + 0x000000D8u;
|
|
/* 028D64B0 */ rbrew_write8(cpu->mem, _t64, (uint8_t)cpu->r[12]);
|
|
L_028D64B4: ; // 0x28d64b4
|
|
/* 028D64B4 */ _t65 = cpu->r[8] + 0x00000004u;
|
|
/* 028D64B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028D64B8 */ _t66 = cpu->r[9] + 0x00000004u;
|
|
/* 028D64B8 */ rbrew_write32(cpu->mem, _t66, cpu->r[12]);
|
|
/* 028D64BC */ _t67 = cpu->r[8] + 0x00000008u;
|
|
/* 028D64BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028D64C0 */ _t68 = cpu->r[9] + 0x00000008u;
|
|
/* 028D64C0 */ rbrew_write32(cpu->mem, _t68, cpu->r[0]);
|
|
/* 028D64C4 */ _t69 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028D64C4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028D64C8 */ _t70 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028D64C8 */ rbrew_write32(cpu->mem, _t70, cpu->r[6]);
|
|
/* 028D64CC */ _t71 = cpu->r[8] + 0x00000010u;
|
|
/* 028D64CC */ cpu->r[7] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028D64CC */ cpu->r[8] = _t71;
|
|
/* 028D64D0 */ _t72 = cpu->r[9] + 0x00000010u;
|
|
/* 028D64D0 */ rbrew_write32(cpu->mem, _t72, cpu->r[7]);
|
|
/* 028D64D0 */ cpu->r[9] = _t72;
|
|
/* 028D64D4 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028D64D4 */ _t73 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028D64D4 */ _t74 = _t73 >> (0x00000002u & 31u);
|
|
/* 028D64D4 */ _t75 = _t74 & 0x00000001u;
|
|
/* 028D64D4 */ if (_t75) goto L_028D64B4; else goto L_028D64D8;
|
|
L_028D64D8: ; // 0x28d64d8
|
|
/* 028D64D8 */ cpu->r[11] = 0x00000003u;
|
|
/* 028D64DC */ cpu->r[8] = cpu->r[10] + 0xFFFFFFFCu;
|
|
/* 028D64E0 */ cpu->ctr = cpu->r[11];
|
|
/* 028D64E4 */ cpu->r[9] = cpu->r[29] + 0x0000010Cu;
|
|
L_028D64E8: ; // 0x28d64e8
|
|
/* 028D64E8 */ _t76 = cpu->r[8] + 0x00000004u;
|
|
/* 028D64E8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028D64EC */ _t77 = cpu->r[9] + 0x00000004u;
|
|
/* 028D64EC */ rbrew_write32(cpu->mem, _t77, cpu->r[12]);
|
|
/* 028D64F0 */ _t78 = cpu->r[8] + 0x00000008u;
|
|
/* 028D64F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t78);
|
|
/* 028D64F4 */ _t79 = cpu->r[9] + 0x00000008u;
|
|
/* 028D64F4 */ rbrew_write32(cpu->mem, _t79, cpu->r[0]);
|
|
/* 028D64F8 */ _t80 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028D64F8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028D64FC */ _t81 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028D64FC */ rbrew_write32(cpu->mem, _t81, cpu->r[6]);
|
|
/* 028D6500 */ _t82 = cpu->r[8] + 0x00000010u;
|
|
/* 028D6500 */ cpu->r[7] = rbrew_read32(cpu->mem, _t82);
|
|
/* 028D6500 */ cpu->r[8] = _t82;
|
|
/* 028D6504 */ _t83 = cpu->r[9] + 0x00000010u;
|
|
/* 028D6504 */ rbrew_write32(cpu->mem, _t83, cpu->r[7]);
|
|
/* 028D6504 */ cpu->r[9] = _t83;
|
|
/* 028D6508 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028D6508 */ _t84 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028D6508 */ _t85 = _t84 >> (0x00000002u & 31u);
|
|
/* 028D6508 */ _t86 = _t85 & 0x00000001u;
|
|
/* 028D6508 */ if (_t86) goto L_028D64E8; else goto L_028D650C;
|
|
L_028D650C: ; // 0x28d650c
|
|
/* 028D650C */ cpu->r[0] = 0x00000003u;
|
|
/* 028D6510 */ cpu->r[8] = cpu->r[10] + 0xFFFFFFFCu;
|
|
/* 028D6514 */ cpu->ctr = cpu->r[0];
|
|
/* 028D6518 */ cpu->r[9] = cpu->r[29] + 0x0000013Cu;
|
|
L_028D651C: ; // 0x28d651c
|
|
/* 028D651C */ _t87 = cpu->r[8] + 0x00000004u;
|
|
/* 028D651C */ cpu->r[12] = rbrew_read32(cpu->mem, _t87);
|
|
/* 028D6520 */ _t88 = cpu->r[9] + 0x00000004u;
|
|
/* 028D6520 */ rbrew_write32(cpu->mem, _t88, cpu->r[12]);
|
|
/* 028D6524 */ _t89 = cpu->r[8] + 0x00000008u;
|
|
/* 028D6524 */ cpu->r[0] = rbrew_read32(cpu->mem, _t89);
|
|
/* 028D6528 */ _t90 = cpu->r[9] + 0x00000008u;
|
|
/* 028D6528 */ rbrew_write32(cpu->mem, _t90, cpu->r[0]);
|
|
/* 028D652C */ _t91 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028D652C */ cpu->r[6] = rbrew_read32(cpu->mem, _t91);
|
|
/* 028D6530 */ _t92 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028D6530 */ rbrew_write32(cpu->mem, _t92, cpu->r[6]);
|
|
/* 028D6534 */ _t93 = cpu->r[8] + 0x00000010u;
|
|
/* 028D6534 */ cpu->r[7] = rbrew_read32(cpu->mem, _t93);
|
|
/* 028D6534 */ cpu->r[8] = _t93;
|
|
/* 028D6538 */ _t94 = cpu->r[9] + 0x00000010u;
|
|
/* 028D6538 */ rbrew_write32(cpu->mem, _t94, cpu->r[7]);
|
|
/* 028D6538 */ cpu->r[9] = _t94;
|
|
/* 028D653C */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028D653C */ _t95 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028D653C */ _t96 = _t95 >> (0x00000002u & 31u);
|
|
/* 028D653C */ _t97 = _t96 & 0x00000001u;
|
|
/* 028D653C */ if (_t97) goto L_028D651C; else goto L_028D6540;
|
|
L_028D6540: ; // 0x28d6540
|
|
/* 028D6540 */ cpu->r[8] = 0x101F0000u;
|
|
/* 028D6544 */ _t98 = cpu->r[8] + 0x00006338u;
|
|
/* 028D6544 */ cpu->r[9] = rbrew_read32(cpu->mem, _t98);
|
|
/* 028D6544 */ cpu->r[8] = _t98;
|
|
/* 028D6548 */ _t99 = cpu->r[29] + 0x00000170u;
|
|
/* 028D6548 */ rbrew_write32(cpu->mem, _t99, cpu->r[9]);
|
|
/* 028D654C */ _t100 = cpu->r[8] + 0x00000004u;
|
|
/* 028D654C */ cpu->r[10] = rbrew_read32(cpu->mem, _t100);
|
|
/* 028D6550 */ cpu->r[12] = 0x00000001u;
|
|
/* 028D6554 */ _t101 = cpu->r[29] + 0x00000174u;
|
|
/* 028D6554 */ rbrew_write32(cpu->mem, _t101, cpu->r[10]);
|
|
/* 028D6558 */ _t102 = cpu->r[8] + 0x00000008u;
|
|
/* 028D6558 */ cpu->r[11] = rbrew_read32(cpu->mem, _t102);
|
|
/* 028D655C */ _t103 = cpu->r[29] + 0x0000017Cu;
|
|
/* 028D655C */ rbrew_write8(cpu->mem, _t103, (uint8_t)cpu->r[12]);
|
|
/* 028D6560 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D6564 */ _t104 = cpu->r[29] + 0x00000178u;
|
|
/* 028D6564 */ rbrew_write32(cpu->mem, _t104, cpu->r[11]);
|
|
/* 028D6568 */ cpu->r[0] = cpu->r[0] + 0xFFFFA9E0u;
|
|
/* 028D656C */ _t105 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D656C */ rbrew_write32(cpu->mem, _t105, cpu->r[30]);
|
|
/* 028D6570 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028D6574 */ _t106 = cpu->r[1] + 0x00000008u;
|
|
/* 028D6574 */ rbrew_write32(cpu->mem, _t106, cpu->r[0]);
|
|
/* 028D6578 */ _t107 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028D6578 */ cpu->r[28] = rbrew_read32(cpu->mem, _t107);
|
|
/* 028D657C */ Gambit_fn_028D66B4(cpu);
|
|
/* 028D6580 */ _t108 = cpu->r[1] + 0x00000008u;
|
|
/* 028D6580 */ cpu->r[7] = rbrew_read32(cpu->mem, _t108);
|
|
/* 028D6584 */ _t109 = cpu->r[7] + 0x00000000u;
|
|
/* 028D6584 */ cpu->r[6] = rbrew_read8(cpu->mem, _t109);
|
|
/* 028D6588 */ cpu->r[30] = 0x00000000u;
|
|
/* 028D658C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[31]);
|
|
/* 028D6590 */ cpu->r[8] = 0x00080000u;
|
|
/* 028D6594 */ _t110 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6594 */ _t111 = _t110 & 0x00000001u;
|
|
/* 028D6594 */ if (_t111) goto L_028D65BC; else goto L_028D6598;
|
|
L_028D6598: ; // 0x28d6598
|
|
/* 028D6598 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028D659C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[8]);
|
|
/* 028D65A0 */ cpu->r[7] = cpu->r[7] + 0x00000001u;
|
|
/* 028D65A4 */ _t112 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D65A4 */ _t113 = _t112 & 0x00000001u;
|
|
/* 028D65A4 */ if (_t113) goto L_028D65B8; else goto L_028D65A8;
|
|
L_028D65A8: ; // 0x28d65a8
|
|
/* 028D65A8 */ _t114 = cpu->r[7] + 0x00000000u;
|
|
/* 028D65A8 */ cpu->r[9] = rbrew_read8(cpu->mem, _t114);
|
|
/* 028D65AC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[31]);
|
|
/* 028D65B0 */ _t115 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D65B0 */ _t116 = _t115 & 0x00000001u;
|
|
/* 028D65B0 */ if (_t116) goto L_028D65B4; else goto L_028D6598;
|
|
L_028D65B4: ; // 0x28d65b4
|
|
/* 028D65B4 */ goto L_028D65BC;
|
|
L_028D65B8: ; // 0x28d65b8
|
|
/* 028D65B8 */ cpu->r[30] = 0x00000000u;
|
|
L_028D65BC: ; // 0x28d65bc
|
|
/* 028D65BC */ _t117 = cpu->r[29] + 0x00000014u;
|
|
/* 028D65BC */ cpu->r[11] = rbrew_read32(cpu->mem, _t117);
|
|
/* 028D65C0 */ _t118 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D65C0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t118);
|
|
/* 028D65C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[11]);
|
|
/* 028D65C8 */ _t119 = cpu->r[12] + 0x00000014u;
|
|
/* 028D65C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t119);
|
|
/* 028D65CC */ _t120 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D65CC */ _t121 = _t120 & 0x00000001u;
|
|
/* 028D65CC */ if (_t121) goto L_028D65D4; else goto L_028D65D0;
|
|
L_028D65D0: ; // 0x28d65d0
|
|
/* 028D65D0 */ cpu->r[30] = cpu->r[11] + 0xFFFFFFFFu;
|
|
L_028D65D4: ; // 0x28d65d4
|
|
/* 028D65D4 */ cpu->ctr = cpu->r[0];
|
|
/* 028D65D8 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028D65DC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D65E0 */ _t122 = cpu->r[1] + 0x00000008u;
|
|
/* 028D65E0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t122);
|
|
/* 028D65E4 */ cpu->r[6] = 0x00000000u;
|
|
/* 028D65E8 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D65EC */ cpu->r[3] = cpu->r[28];
|
|
/* 028D65F0 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028D65F4 */ cpu->r[10] = 0x10140000u;
|
|
/* 028D65F8 */ _t123 = cpu->r[28] + cpu->r[30];
|
|
/* 028D65F8 */ rbrew_write8(cpu->mem, _t123, (uint8_t)cpu->r[31]);
|
|
/* 028D65FC */ _t124 = cpu->r[10] + 0xFFFFA9DCu;
|
|
/* 028D65FC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t124);
|
|
/* 028D6600 */ cpu->r[10] = 0x00000006u;
|
|
/* 028D6604 */ _t125 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028D6604 */ cpu->r[0] = rbrew_read32(cpu->mem, _t125);
|
|
/* 028D6608 */ cpu->ctr = cpu->r[10];
|
|
/* 028D660C */ cpu->r[6] = cpu->r[29] + 0x0000003Cu;
|
|
/* 028D6610 */ _t126 = cpu->r[29] + 0x00000000u;
|
|
/* 028D6610 */ rbrew_write32(cpu->mem, _t126, cpu->r[0]);
|
|
L_028D6614: ; // 0x28d6614
|
|
/* 028D6614 */ _t127 = cpu->r[6] + 0x00000004u;
|
|
/* 028D6614 */ rbrew_write_f32(cpu->mem, _t127, cpu->f[0]);
|
|
/* 028D6614 */ cpu->r[6] = _t127;
|
|
/* 028D6618 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028D6618 */ _t128 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028D6618 */ _t129 = _t128 >> (0x00000002u & 31u);
|
|
/* 028D6618 */ _t130 = _t129 & 0x00000001u;
|
|
/* 028D6618 */ if (_t130) goto L_028D6614; else goto L_028D661C;
|
|
L_028D661C: ; // 0x28d661c
|
|
/* 028D661C */ cpu->r[3] = cpu->r[29];
|
|
/* 028D6620 */ /* nop */
|
|
/* 028D6624 */ _t131 = cpu->r[1] + 0x00000030u;
|
|
/* 028D6624 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t131);
|
|
/* 028D6628 */ _t132 = cpu->r[1] + 0x00000028u;
|
|
/* 028D6628 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t132);
|
|
/* 028D662C */ _t133 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D662C */ _t134 = _t133 & 0x00000001u;
|
|
/* 028D662C */ if (_t134) goto L_028D6630; // else: addr-0 trap, fall-through
|
|
L_028D6630: ; // 0x28d6630
|
|
/* 028D6630 */ _t135 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D6630 */ cpu->r[0] = rbrew_read32(cpu->mem, _t135);
|
|
/* 028D6634 */ cpu->lr = cpu->r[0];
|
|
/* 028D6638 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 028D663C */ return;
|
|
}
|
|
|
|
// fn_028D62B0 @ 0x28d62b0
|
|
void Gambit_fn_028D62B0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112, _t113, _t114, _t115, _t116, _t117, _t118, _t119, _t120, _t121, _t122, _t123, _t124, _t125, _t126, _t127, _t128, _t129, _t130, _t131, _t132, _t133, _t134, _t135;
|
|
|
|
L_028D62B0: ; // 0x28d62b0
|
|
/* 028D62B0 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 028D62B0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D62B0 */ cpu->r[1] = _t0;
|
|
/* 028D62B4 */ _t1 = cpu->r[1] + 0x00000028u;
|
|
/* 028D62B4 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028D62B8 */ /* nop */
|
|
/* 028D62BC */ _t2 = cpu->r[1] + 0x00000030u;
|
|
/* 028D62BC */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028D62C0 */ _t3 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D62C0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D62C4 */ /* nop */
|
|
/* 028D62C8 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D62C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D62CC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D62CC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D62CC */ if (_t5) goto L_028D62D0; else goto L_028D62E0;
|
|
L_028D62D0: ; // 0x28d62d0
|
|
/* 028D62D0 */ cpu->r[3] = 0x00000180u;
|
|
/* 028D62D4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D62D8 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D62D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D62DC */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D62DC */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D62DC */ if (_t7) goto L_028D661C; else goto L_028D62E0;
|
|
L_028D62E0: ; // 0x28d62e0
|
|
/* 028D62E0 */ cpu->r[30] = 0x10140000u;
|
|
/* 028D62E4 */ cpu->r[31] = 0x10110000u;
|
|
/* 028D62E8 */ cpu->r[27] = cpu->r[29];
|
|
/* 028D62E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028D62EC */ cpu->r[30] = cpu->r[30] + 0xFFFFA924u;
|
|
/* 028D62F0 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D62F0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D62F0 */ if (_t9) goto L_028D62F4; else goto L_028D6374;
|
|
L_028D62F4: ; // 0x28d62f4
|
|
/* 028D62F4 */ cpu->r[3] = 0x00000038u;
|
|
/* 028D62F8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D62FC */ cpu->r[27] = cpu->r[3];
|
|
/* 028D62FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028D6300 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6300 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D6300 */ if (_t11) goto L_028D6304; else goto L_028D6374;
|
|
L_028D6304: ; // 0x28d6304
|
|
/* 028D6304 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D6308 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D630C */ _t12 = cpu->r[11] + 0xFFFFA9D8u;
|
|
/* 028D630C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 028D6310 */ cpu->r[8] = 0x10140000u;
|
|
/* 028D6314 */ _t13 = cpu->r[31] + 0x00007399u;
|
|
/* 028D6314 */ cpu->r[31] = rbrew_read8(cpu->mem, _t13);
|
|
/* 028D6318 */ cpu->r[0] = cpu->r[0] + 0xFFFFAA04u;
|
|
/* 028D631C */ _t14 = cpu->r[8] + 0xFFFFA9D4u;
|
|
/* 028D631C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028D6320 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6324 */ _t15 = cpu->r[29] + 0x00000038u;
|
|
/* 028D6324 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028D6328 */ cpu->r[12] = cpu->r[12] + 0xFFFFA9ECu;
|
|
/* 028D632C */ _t16 = cpu->r[29] + 0x00000058u;
|
|
/* 028D632C */ rbrew_write_f32(cpu->mem, _t16, cpu->f[13]);
|
|
/* 028D6330 */ _t17 = cpu->r[29] + 0x00000008u;
|
|
/* 028D6330 */ rbrew_write32(cpu->mem, _t17, cpu->r[12]);
|
|
/* 028D6334 */ _t18 = cpu->r[29] + 0x0000005Cu;
|
|
/* 028D6334 */ rbrew_write_f32(cpu->mem, _t18, cpu->f[13]);
|
|
/* 028D6338 */ cpu->r[3] = cpu->r[29] + 0x00000060u;
|
|
/* 028D633C */ _t19 = cpu->r[29] + 0x0000003Cu;
|
|
/* 028D633C */ rbrew_write_f32(cpu->mem, _t19, cpu->f[31]);
|
|
/* 028D6340 */ Gambit_fn_028D68B4(cpu);
|
|
/* 028D6344 */ cpu->r[10] = 0x101F0000u;
|
|
/* 028D6348 */ cpu->r[12] = 0x00000000u;
|
|
/* 028D634C */ _t20 = cpu->r[29] + 0x000000D4u;
|
|
/* 028D634C */ rbrew_write_f32(cpu->mem, _t20, cpu->f[31]);
|
|
/* 028D6350 */ cpu->r[10] = cpu->r[10] + 0x00005E30u;
|
|
/* 028D6354 */ cpu->r[0] = 0x00000003u;
|
|
/* 028D6358 */ _t21 = cpu->r[29] + 0x000000DCu;
|
|
/* 028D6358 */ rbrew_write32(cpu->mem, _t21, cpu->r[12]);
|
|
/* 028D635C */ cpu->r[9] = cpu->r[29] + 0x000000DCu;
|
|
/* 028D6360 */ cpu->r[8] = cpu->r[10] + 0xFFFFFFFCu;
|
|
/* 028D6364 */ _t22 = cpu->r[29] + 0x000000D0u;
|
|
/* 028D6364 */ rbrew_write8(cpu->mem, _t22, (uint8_t)cpu->r[12]);
|
|
/* 028D6368 */ cpu->ctr = cpu->r[0];
|
|
/* 028D636C */ _t23 = cpu->r[29] + 0x000000D8u;
|
|
/* 028D636C */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[12]);
|
|
/* 028D6370 */ goto L_028D64B4;
|
|
L_028D6374: ; // 0x28d6374
|
|
/* 028D6374 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D6374 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D6378 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6378 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D6378 */ if (_t25) goto L_028D637C; else goto L_028D638C;
|
|
L_028D637C: ; // 0x28d637c
|
|
/* 028D637C */ cpu->r[3] = 0x00000008u;
|
|
/* 028D6380 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D6384 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D6388 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6388 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028D6388 */ if (_t27) goto L_028D639C; else goto L_028D638C;
|
|
L_028D638C: ; // 0x28d638c
|
|
/* 028D638C */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6390 */ _t28 = cpu->r[3] + 0x00000004u;
|
|
/* 028D6390 */ rbrew_write32(cpu->mem, _t28, cpu->r[30]);
|
|
/* 028D6394 */ cpu->r[12] = cpu->r[12] + 0xFFFFA920u;
|
|
/* 028D6398 */ _t29 = cpu->r[3] + 0x00000000u;
|
|
/* 028D6398 */ rbrew_write32(cpu->mem, _t29, cpu->r[12]);
|
|
L_028D639C: ; // 0x28d639c
|
|
/* 028D639C */ cpu->r[0] = 0x10140000u;
|
|
/* 028D63A0 */ cpu->r[0] = cpu->r[0] + 0xFFFFA98Cu;
|
|
/* 028D63A4 */ cpu->r[28] = cpu->r[27] + 0x0000000Cu;
|
|
/* 028D63A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028D63A8 */ _t30 = cpu->r[27] + 0x00000008u;
|
|
/* 028D63A8 */ rbrew_write32(cpu->mem, _t30, cpu->r[0]);
|
|
/* 028D63AC */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D63AC */ _t32 = _t31 & 0x00000001u;
|
|
/* 028D63AC */ if (_t32) goto L_028D63B0; else goto L_028D63D4;
|
|
L_028D63B0: ; // 0x28d63b0
|
|
/* 028D63B0 */ cpu->r[3] = 0x0000002Cu;
|
|
/* 028D63B4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D63B8 */ cpu->r[28] = cpu->r[3];
|
|
/* 028D63B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028D63BC */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D63BC */ _t34 = _t33 & 0x00000001u;
|
|
/* 028D63BC */ if (_t34) goto L_028D63C0; else goto L_028D63D4;
|
|
L_028D63C0: ; // 0x28d63c0
|
|
/* 028D63C0 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D63C4 */ _t35 = cpu->r[31] + 0x00007399u;
|
|
/* 028D63C4 */ cpu->r[31] = rbrew_read8(cpu->mem, _t35);
|
|
/* 028D63C8 */ cpu->r[11] = cpu->r[11] + 0xFFFFA9BCu;
|
|
/* 028D63CC */ _t36 = cpu->r[27] + 0x00000010u;
|
|
/* 028D63CC */ rbrew_write32(cpu->mem, _t36, cpu->r[11]);
|
|
/* 028D63D0 */ goto L_028D644C;
|
|
L_028D63D4: ; // 0x28d63d4
|
|
/* 028D63D4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D63D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D63D8 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D63D8 */ _t38 = _t37 & 0x00000001u;
|
|
/* 028D63D8 */ if (_t38) goto L_028D63DC; else goto L_028D6408;
|
|
L_028D63DC: ; // 0x28d63dc
|
|
/* 028D63DC */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028D63E0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D63E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D63E8 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D63E8 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028D63E8 */ if (_t40) goto L_028D63EC; else goto L_028D6408;
|
|
L_028D63EC: ; // 0x28d63ec
|
|
/* 028D63EC */ cpu->r[9] = 0x10140000u;
|
|
/* 028D63F0 */ _t41 = cpu->r[31] + 0x00007399u;
|
|
/* 028D63F0 */ cpu->r[31] = rbrew_read8(cpu->mem, _t41);
|
|
/* 028D63F4 */ cpu->r[9] = cpu->r[9] + 0xFFFFA9A4u;
|
|
/* 028D63F8 */ _t42 = cpu->r[28] + 0x00000000u;
|
|
/* 028D63F8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028D63FC */ _t43 = cpu->r[28] + 0x00000004u;
|
|
/* 028D63FC */ rbrew_write32(cpu->mem, _t43, cpu->r[9]);
|
|
/* 028D6400 */ _t44 = cpu->r[10] + 0x00000000u;
|
|
/* 028D6400 */ rbrew_write8(cpu->mem, _t44, (uint8_t)cpu->r[31]);
|
|
/* 028D6404 */ goto L_028D6440;
|
|
L_028D6408: ; // 0x28d6408
|
|
/* 028D6408 */ cpu->r[7] = 0x10140000u;
|
|
/* 028D640C */ cpu->r[6] = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D6410 */ cpu->r[7] = cpu->r[7] + 0xFFFFA93Cu;
|
|
/* 028D6414 */ _t45 = cpu->r[3] + 0x00000000u;
|
|
/* 028D6414 */ rbrew_write32(cpu->mem, _t45, cpu->r[6]);
|
|
/* 028D6418 */ cpu->r[8] = 0x00000020u;
|
|
/* 028D641C */ _t46 = cpu->r[3] + 0x00000004u;
|
|
/* 028D641C */ rbrew_write32(cpu->mem, _t46, cpu->r[7]);
|
|
/* 028D6420 */ _t47 = cpu->r[3] + 0x00000008u;
|
|
/* 028D6420 */ rbrew_write32(cpu->mem, _t47, cpu->r[8]);
|
|
/* 028D6424 */ _t48 = cpu->r[31] + 0x00007399u;
|
|
/* 028D6424 */ cpu->r[31] = rbrew_read8(cpu->mem, _t48);
|
|
/* 028D6428 */ cpu->r[9] = 0x10140000u;
|
|
/* 028D642C */ _t49 = cpu->r[28] + 0x00000000u;
|
|
/* 028D642C */ cpu->r[10] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028D6430 */ cpu->r[9] = cpu->r[9] + 0xFFFFA9A4u;
|
|
/* 028D6434 */ _t50 = cpu->r[28] + 0x0000002Bu;
|
|
/* 028D6434 */ rbrew_write8(cpu->mem, _t50, (uint8_t)cpu->r[31]);
|
|
/* 028D6438 */ _t51 = cpu->r[28] + 0x00000004u;
|
|
/* 028D6438 */ rbrew_write32(cpu->mem, _t51, cpu->r[9]);
|
|
/* 028D643C */ _t52 = cpu->r[10] + 0x00000000u;
|
|
/* 028D643C */ rbrew_write8(cpu->mem, _t52, (uint8_t)cpu->r[31]);
|
|
L_028D6440: ; // 0x28d6440
|
|
/* 028D6440 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D6444 */ cpu->r[11] = cpu->r[11] + 0xFFFFA9BCu;
|
|
/* 028D6448 */ _t53 = cpu->r[27] + 0x00000010u;
|
|
/* 028D6448 */ rbrew_write32(cpu->mem, _t53, cpu->r[11]);
|
|
L_028D644C: ; // 0x28d644c
|
|
/* 028D644C */ cpu->r[11] = 0x10140000u;
|
|
/* 028D6450 */ cpu->r[8] = 0x10140000u;
|
|
/* 028D6454 */ _t54 = cpu->r[11] + 0xFFFFA9D8u;
|
|
/* 028D6454 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t54);
|
|
/* 028D6458 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D645C */ _t55 = cpu->r[8] + 0xFFFFA9D4u;
|
|
/* 028D645C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t55);
|
|
/* 028D6460 */ _t56 = cpu->r[29] + 0x0000003Cu;
|
|
/* 028D6460 */ rbrew_write_f32(cpu->mem, _t56, cpu->f[31]);
|
|
/* 028D6464 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6468 */ _t57 = cpu->r[29] + 0x0000005Cu;
|
|
/* 028D6468 */ rbrew_write_f32(cpu->mem, _t57, cpu->f[13]);
|
|
/* 028D646C */ cpu->r[0] = cpu->r[0] + 0xFFFFAA04u;
|
|
/* 028D6470 */ _t58 = cpu->r[29] + 0x00000058u;
|
|
/* 028D6470 */ rbrew_write_f32(cpu->mem, _t58, cpu->f[13]);
|
|
/* 028D6474 */ cpu->r[12] = cpu->r[12] + 0xFFFFA9ECu;
|
|
/* 028D6478 */ _t59 = cpu->r[29] + 0x00000038u;
|
|
/* 028D6478 */ rbrew_write32(cpu->mem, _t59, cpu->r[0]);
|
|
/* 028D647C */ cpu->r[3] = cpu->r[29] + 0x00000060u;
|
|
/* 028D6480 */ _t60 = cpu->r[29] + 0x00000008u;
|
|
/* 028D6480 */ rbrew_write32(cpu->mem, _t60, cpu->r[12]);
|
|
/* 028D6484 */ Gambit_fn_028D68B4(cpu);
|
|
/* 028D6488 */ cpu->r[10] = 0x101F0000u;
|
|
/* 028D648C */ cpu->r[12] = 0x00000000u;
|
|
/* 028D6490 */ _t61 = cpu->r[29] + 0x000000D4u;
|
|
/* 028D6490 */ rbrew_write_f32(cpu->mem, _t61, cpu->f[31]);
|
|
/* 028D6494 */ cpu->r[10] = cpu->r[10] + 0x00005E30u;
|
|
/* 028D6498 */ cpu->r[0] = 0x00000003u;
|
|
/* 028D649C */ _t62 = cpu->r[29] + 0x000000DCu;
|
|
/* 028D649C */ rbrew_write32(cpu->mem, _t62, cpu->r[12]);
|
|
/* 028D64A0 */ cpu->r[9] = cpu->r[29] + 0x000000DCu;
|
|
/* 028D64A4 */ cpu->r[8] = cpu->r[10] + 0xFFFFFFFCu;
|
|
/* 028D64A8 */ _t63 = cpu->r[29] + 0x000000D0u;
|
|
/* 028D64A8 */ rbrew_write8(cpu->mem, _t63, (uint8_t)cpu->r[12]);
|
|
/* 028D64AC */ cpu->ctr = cpu->r[0];
|
|
/* 028D64B0 */ _t64 = cpu->r[29] + 0x000000D8u;
|
|
/* 028D64B0 */ rbrew_write8(cpu->mem, _t64, (uint8_t)cpu->r[12]);
|
|
L_028D64B4: ; // 0x28d64b4
|
|
/* 028D64B4 */ _t65 = cpu->r[8] + 0x00000004u;
|
|
/* 028D64B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028D64B8 */ _t66 = cpu->r[9] + 0x00000004u;
|
|
/* 028D64B8 */ rbrew_write32(cpu->mem, _t66, cpu->r[12]);
|
|
/* 028D64BC */ _t67 = cpu->r[8] + 0x00000008u;
|
|
/* 028D64BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028D64C0 */ _t68 = cpu->r[9] + 0x00000008u;
|
|
/* 028D64C0 */ rbrew_write32(cpu->mem, _t68, cpu->r[0]);
|
|
/* 028D64C4 */ _t69 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028D64C4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028D64C8 */ _t70 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028D64C8 */ rbrew_write32(cpu->mem, _t70, cpu->r[6]);
|
|
/* 028D64CC */ _t71 = cpu->r[8] + 0x00000010u;
|
|
/* 028D64CC */ cpu->r[7] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028D64CC */ cpu->r[8] = _t71;
|
|
/* 028D64D0 */ _t72 = cpu->r[9] + 0x00000010u;
|
|
/* 028D64D0 */ rbrew_write32(cpu->mem, _t72, cpu->r[7]);
|
|
/* 028D64D0 */ cpu->r[9] = _t72;
|
|
/* 028D64D4 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028D64D4 */ _t73 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028D64D4 */ _t74 = _t73 >> (0x00000002u & 31u);
|
|
/* 028D64D4 */ _t75 = _t74 & 0x00000001u;
|
|
/* 028D64D4 */ if (_t75) goto L_028D64B4; else goto L_028D64D8;
|
|
L_028D64D8: ; // 0x28d64d8
|
|
/* 028D64D8 */ cpu->r[11] = 0x00000003u;
|
|
/* 028D64DC */ cpu->r[8] = cpu->r[10] + 0xFFFFFFFCu;
|
|
/* 028D64E0 */ cpu->ctr = cpu->r[11];
|
|
/* 028D64E4 */ cpu->r[9] = cpu->r[29] + 0x0000010Cu;
|
|
L_028D64E8: ; // 0x28d64e8
|
|
/* 028D64E8 */ _t76 = cpu->r[8] + 0x00000004u;
|
|
/* 028D64E8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028D64EC */ _t77 = cpu->r[9] + 0x00000004u;
|
|
/* 028D64EC */ rbrew_write32(cpu->mem, _t77, cpu->r[12]);
|
|
/* 028D64F0 */ _t78 = cpu->r[8] + 0x00000008u;
|
|
/* 028D64F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t78);
|
|
/* 028D64F4 */ _t79 = cpu->r[9] + 0x00000008u;
|
|
/* 028D64F4 */ rbrew_write32(cpu->mem, _t79, cpu->r[0]);
|
|
/* 028D64F8 */ _t80 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028D64F8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028D64FC */ _t81 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028D64FC */ rbrew_write32(cpu->mem, _t81, cpu->r[6]);
|
|
/* 028D6500 */ _t82 = cpu->r[8] + 0x00000010u;
|
|
/* 028D6500 */ cpu->r[7] = rbrew_read32(cpu->mem, _t82);
|
|
/* 028D6500 */ cpu->r[8] = _t82;
|
|
/* 028D6504 */ _t83 = cpu->r[9] + 0x00000010u;
|
|
/* 028D6504 */ rbrew_write32(cpu->mem, _t83, cpu->r[7]);
|
|
/* 028D6504 */ cpu->r[9] = _t83;
|
|
/* 028D6508 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028D6508 */ _t84 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028D6508 */ _t85 = _t84 >> (0x00000002u & 31u);
|
|
/* 028D6508 */ _t86 = _t85 & 0x00000001u;
|
|
/* 028D6508 */ if (_t86) goto L_028D64E8; else goto L_028D650C;
|
|
L_028D650C: ; // 0x28d650c
|
|
/* 028D650C */ cpu->r[0] = 0x00000003u;
|
|
/* 028D6510 */ cpu->r[8] = cpu->r[10] + 0xFFFFFFFCu;
|
|
/* 028D6514 */ cpu->ctr = cpu->r[0];
|
|
/* 028D6518 */ cpu->r[9] = cpu->r[29] + 0x0000013Cu;
|
|
L_028D651C: ; // 0x28d651c
|
|
/* 028D651C */ _t87 = cpu->r[8] + 0x00000004u;
|
|
/* 028D651C */ cpu->r[12] = rbrew_read32(cpu->mem, _t87);
|
|
/* 028D6520 */ _t88 = cpu->r[9] + 0x00000004u;
|
|
/* 028D6520 */ rbrew_write32(cpu->mem, _t88, cpu->r[12]);
|
|
/* 028D6524 */ _t89 = cpu->r[8] + 0x00000008u;
|
|
/* 028D6524 */ cpu->r[0] = rbrew_read32(cpu->mem, _t89);
|
|
/* 028D6528 */ _t90 = cpu->r[9] + 0x00000008u;
|
|
/* 028D6528 */ rbrew_write32(cpu->mem, _t90, cpu->r[0]);
|
|
/* 028D652C */ _t91 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028D652C */ cpu->r[6] = rbrew_read32(cpu->mem, _t91);
|
|
/* 028D6530 */ _t92 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028D6530 */ rbrew_write32(cpu->mem, _t92, cpu->r[6]);
|
|
/* 028D6534 */ _t93 = cpu->r[8] + 0x00000010u;
|
|
/* 028D6534 */ cpu->r[7] = rbrew_read32(cpu->mem, _t93);
|
|
/* 028D6534 */ cpu->r[8] = _t93;
|
|
/* 028D6538 */ _t94 = cpu->r[9] + 0x00000010u;
|
|
/* 028D6538 */ rbrew_write32(cpu->mem, _t94, cpu->r[7]);
|
|
/* 028D6538 */ cpu->r[9] = _t94;
|
|
/* 028D653C */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028D653C */ _t95 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028D653C */ _t96 = _t95 >> (0x00000002u & 31u);
|
|
/* 028D653C */ _t97 = _t96 & 0x00000001u;
|
|
/* 028D653C */ if (_t97) goto L_028D651C; else goto L_028D6540;
|
|
L_028D6540: ; // 0x28d6540
|
|
/* 028D6540 */ cpu->r[8] = 0x101F0000u;
|
|
/* 028D6544 */ _t98 = cpu->r[8] + 0x00006338u;
|
|
/* 028D6544 */ cpu->r[9] = rbrew_read32(cpu->mem, _t98);
|
|
/* 028D6544 */ cpu->r[8] = _t98;
|
|
/* 028D6548 */ _t99 = cpu->r[29] + 0x00000170u;
|
|
/* 028D6548 */ rbrew_write32(cpu->mem, _t99, cpu->r[9]);
|
|
/* 028D654C */ _t100 = cpu->r[8] + 0x00000004u;
|
|
/* 028D654C */ cpu->r[10] = rbrew_read32(cpu->mem, _t100);
|
|
/* 028D6550 */ cpu->r[12] = 0x00000001u;
|
|
/* 028D6554 */ _t101 = cpu->r[29] + 0x00000174u;
|
|
/* 028D6554 */ rbrew_write32(cpu->mem, _t101, cpu->r[10]);
|
|
/* 028D6558 */ _t102 = cpu->r[8] + 0x00000008u;
|
|
/* 028D6558 */ cpu->r[11] = rbrew_read32(cpu->mem, _t102);
|
|
/* 028D655C */ _t103 = cpu->r[29] + 0x0000017Cu;
|
|
/* 028D655C */ rbrew_write8(cpu->mem, _t103, (uint8_t)cpu->r[12]);
|
|
/* 028D6560 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D6564 */ _t104 = cpu->r[29] + 0x00000178u;
|
|
/* 028D6564 */ rbrew_write32(cpu->mem, _t104, cpu->r[11]);
|
|
/* 028D6568 */ cpu->r[0] = cpu->r[0] + 0xFFFFA9E0u;
|
|
/* 028D656C */ _t105 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D656C */ rbrew_write32(cpu->mem, _t105, cpu->r[30]);
|
|
/* 028D6570 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028D6574 */ _t106 = cpu->r[1] + 0x00000008u;
|
|
/* 028D6574 */ rbrew_write32(cpu->mem, _t106, cpu->r[0]);
|
|
/* 028D6578 */ _t107 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028D6578 */ cpu->r[28] = rbrew_read32(cpu->mem, _t107);
|
|
/* 028D657C */ Gambit_fn_028D66B4(cpu);
|
|
/* 028D6580 */ _t108 = cpu->r[1] + 0x00000008u;
|
|
/* 028D6580 */ cpu->r[7] = rbrew_read32(cpu->mem, _t108);
|
|
/* 028D6584 */ _t109 = cpu->r[7] + 0x00000000u;
|
|
/* 028D6584 */ cpu->r[6] = rbrew_read8(cpu->mem, _t109);
|
|
/* 028D6588 */ cpu->r[30] = 0x00000000u;
|
|
/* 028D658C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[31]);
|
|
/* 028D6590 */ cpu->r[8] = 0x00080000u;
|
|
/* 028D6594 */ _t110 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6594 */ _t111 = _t110 & 0x00000001u;
|
|
/* 028D6594 */ if (_t111) goto L_028D65BC; else goto L_028D6598;
|
|
L_028D6598: ; // 0x28d6598
|
|
/* 028D6598 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028D659C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[8]);
|
|
/* 028D65A0 */ cpu->r[7] = cpu->r[7] + 0x00000001u;
|
|
/* 028D65A4 */ _t112 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D65A4 */ _t113 = _t112 & 0x00000001u;
|
|
/* 028D65A4 */ if (_t113) goto L_028D65B8; else goto L_028D65A8;
|
|
L_028D65A8: ; // 0x28d65a8
|
|
/* 028D65A8 */ _t114 = cpu->r[7] + 0x00000000u;
|
|
/* 028D65A8 */ cpu->r[9] = rbrew_read8(cpu->mem, _t114);
|
|
/* 028D65AC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[31]);
|
|
/* 028D65B0 */ _t115 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D65B0 */ _t116 = _t115 & 0x00000001u;
|
|
/* 028D65B0 */ if (_t116) goto L_028D65B4; else goto L_028D6598;
|
|
L_028D65B4: ; // 0x28d65b4
|
|
/* 028D65B4 */ goto L_028D65BC;
|
|
L_028D65B8: ; // 0x28d65b8
|
|
/* 028D65B8 */ cpu->r[30] = 0x00000000u;
|
|
L_028D65BC: ; // 0x28d65bc
|
|
/* 028D65BC */ _t117 = cpu->r[29] + 0x00000014u;
|
|
/* 028D65BC */ cpu->r[11] = rbrew_read32(cpu->mem, _t117);
|
|
/* 028D65C0 */ _t118 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D65C0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t118);
|
|
/* 028D65C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[11]);
|
|
/* 028D65C8 */ _t119 = cpu->r[12] + 0x00000014u;
|
|
/* 028D65C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t119);
|
|
/* 028D65CC */ _t120 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D65CC */ _t121 = _t120 & 0x00000001u;
|
|
/* 028D65CC */ if (_t121) goto L_028D65D4; else goto L_028D65D0;
|
|
L_028D65D0: ; // 0x28d65d0
|
|
/* 028D65D0 */ cpu->r[30] = cpu->r[11] + 0xFFFFFFFFu;
|
|
L_028D65D4: ; // 0x28d65d4
|
|
/* 028D65D4 */ cpu->ctr = cpu->r[0];
|
|
/* 028D65D8 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028D65DC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D65E0 */ _t122 = cpu->r[1] + 0x00000008u;
|
|
/* 028D65E0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t122);
|
|
/* 028D65E4 */ cpu->r[6] = 0x00000000u;
|
|
/* 028D65E8 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D65EC */ cpu->r[3] = cpu->r[28];
|
|
/* 028D65F0 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028D65F4 */ cpu->r[10] = 0x10140000u;
|
|
/* 028D65F8 */ _t123 = cpu->r[28] + cpu->r[30];
|
|
/* 028D65F8 */ rbrew_write8(cpu->mem, _t123, (uint8_t)cpu->r[31]);
|
|
/* 028D65FC */ _t124 = cpu->r[10] + 0xFFFFA9DCu;
|
|
/* 028D65FC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t124);
|
|
/* 028D6600 */ cpu->r[10] = 0x00000006u;
|
|
/* 028D6604 */ _t125 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028D6604 */ cpu->r[0] = rbrew_read32(cpu->mem, _t125);
|
|
/* 028D6608 */ cpu->ctr = cpu->r[10];
|
|
/* 028D660C */ cpu->r[6] = cpu->r[29] + 0x0000003Cu;
|
|
/* 028D6610 */ _t126 = cpu->r[29] + 0x00000000u;
|
|
/* 028D6610 */ rbrew_write32(cpu->mem, _t126, cpu->r[0]);
|
|
L_028D6614: ; // 0x28d6614
|
|
/* 028D6614 */ _t127 = cpu->r[6] + 0x00000004u;
|
|
/* 028D6614 */ rbrew_write_f32(cpu->mem, _t127, cpu->f[0]);
|
|
/* 028D6614 */ cpu->r[6] = _t127;
|
|
/* 028D6618 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028D6618 */ _t128 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028D6618 */ _t129 = _t128 >> (0x00000002u & 31u);
|
|
/* 028D6618 */ _t130 = _t129 & 0x00000001u;
|
|
/* 028D6618 */ if (_t130) goto L_028D6614; else goto L_028D661C;
|
|
L_028D661C: ; // 0x28d661c
|
|
/* 028D661C */ cpu->r[3] = cpu->r[29];
|
|
/* 028D6620 */ /* nop */
|
|
/* 028D6624 */ _t131 = cpu->r[1] + 0x00000030u;
|
|
/* 028D6624 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t131);
|
|
/* 028D6628 */ _t132 = cpu->r[1] + 0x00000028u;
|
|
/* 028D6628 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t132);
|
|
/* 028D662C */ _t133 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D662C */ _t134 = _t133 & 0x00000001u;
|
|
/* 028D662C */ if (_t134) goto L_028D6630; // else: addr-0 trap, fall-through
|
|
L_028D6630: ; // 0x28d6630
|
|
/* 028D6630 */ _t135 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D6630 */ cpu->r[0] = rbrew_read32(cpu->mem, _t135);
|
|
/* 028D6634 */ cpu->lr = cpu->r[0];
|
|
/* 028D6638 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 028D663C */ return;
|
|
}
|
|
|
|
// fn_028D6640 @ 0x28d6640
|
|
void Gambit_fn_028D6640(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028D6640: ; // 0x28d6640
|
|
/* 028D6640 */ cpu->r[0] = cpu->lr;
|
|
/* 028D6644 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D6644 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D6644 */ cpu->r[1] = _t0;
|
|
/* 028D6648 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6648 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D664C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D664C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D6650 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D6650 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D6654 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D6658 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6658 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D665C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D665C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D665C */ if (_t5) goto L_028D6688; else goto L_028D6660;
|
|
L_028D6660: ; // 0x28d6660
|
|
/* 028D6660 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D6664 */ cpu->r[3] = cpu->r[30] + 0x00000060u;
|
|
/* 028D6668 */ cpu->r[0] = cpu->r[0] + 0xFFFFAA04u;
|
|
/* 028D666C */ cpu->r[4] = 0x00000002u;
|
|
/* 028D6670 */ _t6 = cpu->r[30] + 0x00000038u;
|
|
/* 028D6670 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028D6674 */ Gambit_fn_028D6968(cpu);
|
|
/* 028D6678 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D6678 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D667C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D667C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D667C */ if (_t8) goto L_028D6688; else goto L_028D6680;
|
|
L_028D6680: ; // 0x28d6680
|
|
/* 028D6680 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D6684 */ Gambit_fn_02801BB0(cpu);
|
|
L_028D6688: ; // 0x28d6688
|
|
/* 028D6688 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6688 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D668C */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028D668C */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D6690 */ cpu->lr = cpu->r[0];
|
|
/* 028D6694 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6694 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D6698 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D669C */ return;
|
|
}
|
|
|
|
// fn_028D6644 @ 0x28d6644
|
|
void Gambit_fn_028D6644(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028D6644: ; // 0x28d6644
|
|
/* 028D6644 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D6644 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D6644 */ cpu->r[1] = _t0;
|
|
/* 028D6648 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6648 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D664C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D664C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D6650 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D6650 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D6654 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D6658 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6658 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D665C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D665C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D665C */ if (_t5) goto L_028D6688; else goto L_028D6660;
|
|
L_028D6660: ; // 0x28d6660
|
|
/* 028D6660 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D6664 */ cpu->r[3] = cpu->r[30] + 0x00000060u;
|
|
/* 028D6668 */ cpu->r[0] = cpu->r[0] + 0xFFFFAA04u;
|
|
/* 028D666C */ cpu->r[4] = 0x00000002u;
|
|
/* 028D6670 */ _t6 = cpu->r[30] + 0x00000038u;
|
|
/* 028D6670 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028D6674 */ Gambit_fn_028D6968(cpu);
|
|
/* 028D6678 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D6678 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D667C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D667C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D667C */ if (_t8) goto L_028D6688; else goto L_028D6680;
|
|
L_028D6680: ; // 0x28d6680
|
|
/* 028D6680 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D6684 */ Gambit_fn_02801BB0(cpu);
|
|
L_028D6688: ; // 0x28d6688
|
|
/* 028D6688 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6688 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D668C */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028D668C */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D6690 */ cpu->lr = cpu->r[0];
|
|
/* 028D6694 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6694 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D6698 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D669C */ return;
|
|
}
|
|
|
|
// fn_028D66A0 @ 0x28d66a0
|
|
void Gambit_fn_028D66A0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D66A0: ; // 0x28d66a0
|
|
/* 028D66A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D66A4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D66A4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D66A4 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D66A4 */ goto L_028D66A8;
|
|
L_028D66A8: ; // 0x28d66a8
|
|
/* 028D66A8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D66A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D66AC */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D66AC */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D66AC */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D66AC */ goto L_028D66B0;
|
|
L_028D66B0: ; // 0x28d66b0
|
|
/* 028D66B0 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D66B4 @ 0x28d66b4
|
|
void Gambit_fn_028D66B4(CPUState* cpu) {
|
|
L_028D66B4: ; // 0x28d66b4
|
|
/* 028D66B4 */ return;
|
|
}
|
|
|
|
// fn_028D66B8 @ 0x28d66b8
|
|
void Gambit_fn_028D66B8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D66B8: ; // 0x28d66b8
|
|
/* 028D66B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D66BC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D66BC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D66BC */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D66BC */ goto L_028D66C0;
|
|
L_028D66C0: ; // 0x28d66c0
|
|
/* 028D66C0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D66C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D66C4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D66C4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D66C4 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D66C4 */ goto L_028D66C8;
|
|
L_028D66C8: ; // 0x28d66c8
|
|
/* 028D66C8 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D66CC @ 0x28d66cc
|
|
void Gambit_fn_028D66CC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028D66CC: ; // 0x28d66cc
|
|
/* 028D66CC */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028D66CC */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028D66D0 */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 028D66D0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028D66D4 */ cpu->r[12] = cpu->r[11] + cpu->r[12];
|
|
/* 028D66D8 */ cpu->r[11] = 0x10110000u;
|
|
/* 028D66DC */ _t2 = cpu->r[11] + 0x00007399u;
|
|
/* 028D66DC */ cpu->r[0] = rbrew_read8(cpu->mem, _t2);
|
|
/* 028D66E0 */ _t3 = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028D66E0 */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[0]);
|
|
/* 028D66E4 */ return;
|
|
}
|
|
|
|
// fn_028D66E8 @ 0x28d66e8
|
|
void Gambit_fn_028D66E8(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028D66E8: ; // 0x28d66e8
|
|
/* 028D66E8 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028D66E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028D66EC */ _t1 = cpu->r[3] + 0x00000000u;
|
|
/* 028D66EC */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D66F0 */ return;
|
|
}
|
|
|
|
// fn_028D66F4 @ 0x28d66f4
|
|
void Gambit_fn_028D66F4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24;
|
|
|
|
L_028D66F4: ; // 0x28d66f4
|
|
/* 028D66F4 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028D66F4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D66F4 */ cpu->r[1] = _t0;
|
|
/* 028D66F8 */ /* nop */
|
|
/* 028D66FC */ cpu->r[0] = cpu->lr;
|
|
/* 028D6700 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028D6700 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D6704 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D6708 */ _t2 = cpu->r[29] + 0x00000004u;
|
|
/* 028D6708 */ cpu->r[8] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028D670C */ _t3 = cpu->r[8] + 0x00000014u;
|
|
/* 028D670C */ cpu->r[9] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D6710 */ cpu->r[28] = cpu->r[3];
|
|
/* 028D6714 */ cpu->ctr = cpu->r[9];
|
|
/* 028D6718 */ _t4 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D6718 */ cpu->r[27] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D671C */ cpu->r[3] = cpu->r[29];
|
|
/* 028D6720 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D6724 */ cpu->r[31] = 0x10110000u;
|
|
/* 028D6728 */ _t5 = cpu->r[29] + 0x00000000u;
|
|
/* 028D6728 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D672C */ _t6 = cpu->r[31] + 0x00007399u;
|
|
/* 028D672C */ cpu->r[31] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028D6730 */ _t7 = cpu->r[11] + 0x00000000u;
|
|
/* 028D6730 */ cpu->r[10] = rbrew_read8(cpu->mem, _t7);
|
|
/* 028D6734 */ cpu->r[30] = 0x00000000u;
|
|
/* 028D6738 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[31]);
|
|
/* 028D673C */ cpu->r[12] = 0x00080000u;
|
|
/* 028D6740 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6740 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D6740 */ if (_t9) goto L_028D6768; else goto L_028D6744;
|
|
L_028D6744: ; // 0x28d6744
|
|
/* 028D6744 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028D6748 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[12]);
|
|
/* 028D674C */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 028D6750 */ _t10 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D6750 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D6750 */ if (_t11) goto L_028D6764; else goto L_028D6754;
|
|
L_028D6754: ; // 0x28d6754
|
|
/* 028D6754 */ _t12 = cpu->r[11] + 0x00000000u;
|
|
/* 028D6754 */ cpu->r[0] = rbrew_read8(cpu->mem, _t12);
|
|
/* 028D6758 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[31]);
|
|
/* 028D675C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D675C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D675C */ if (_t14) goto L_028D6760; else goto L_028D6744;
|
|
L_028D6760: ; // 0x28d6760
|
|
/* 028D6760 */ goto L_028D6768;
|
|
L_028D6764: ; // 0x28d6764
|
|
/* 028D6764 */ cpu->r[30] = 0x00000000u;
|
|
L_028D6768: ; // 0x28d6768
|
|
/* 028D6768 */ _t15 = cpu->r[28] + 0x00000014u;
|
|
/* 028D6768 */ cpu->r[7] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D676C */ _t16 = cpu->r[29] + 0x00000004u;
|
|
/* 028D676C */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D6770 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[7]);
|
|
/* 028D6774 */ _t17 = cpu->r[12] + 0x00000014u;
|
|
/* 028D6774 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D6778 */ _t18 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D6778 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D6778 */ if (_t19) goto L_028D6780; else goto L_028D677C;
|
|
L_028D677C: ; // 0x28d677c
|
|
/* 028D677C */ cpu->r[30] = cpu->r[7] + 0xFFFFFFFFu;
|
|
L_028D6780: ; // 0x28d6780
|
|
/* 028D6780 */ cpu->ctr = cpu->r[0];
|
|
/* 028D6784 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D6788 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D678C */ _t20 = cpu->r[29] + 0x00000000u;
|
|
/* 028D678C */ cpu->r[4] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D6790 */ cpu->r[6] = 0x00000000u;
|
|
/* 028D6794 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D6798 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D679C */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028D67A0 */ _t21 = cpu->r[27] + cpu->r[30];
|
|
/* 028D67A0 */ rbrew_write8(cpu->mem, _t21, (uint8_t)cpu->r[31]);
|
|
/* 028D67A4 */ _t22 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D67A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D67A8 */ _t23 = cpu->r[28] + 0x00000000u;
|
|
/* 028D67A8 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 028D67AC */ /* nop */
|
|
/* 028D67B0 */ _t24 = cpu->r[1] + 0x00000024u;
|
|
/* 028D67B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D67B4 */ cpu->lr = cpu->r[0];
|
|
/* 028D67B8 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028D67BC */ return;
|
|
}
|
|
|
|
// fn_028D67C0 @ 0x28d67c0
|
|
void Gambit_fn_028D67C0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D67C0: ; // 0x28d67c0
|
|
/* 028D67C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D67C4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D67C4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D67C4 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D67C4 */ goto L_028D67C8;
|
|
L_028D67C8: ; // 0x28d67c8
|
|
/* 028D67C8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D67C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D67CC */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D67CC */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D67CC */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D67CC */ goto L_028D67D0;
|
|
L_028D67D0: ; // 0x28d67d0
|
|
/* 028D67D0 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D67D4 @ 0x28d67d4
|
|
void Gambit_fn_028D67D4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D67D4: ; // 0x28d67d4
|
|
/* 028D67D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D67D8 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D67D8 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D67D8 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D67D8 */ goto L_028D67DC;
|
|
L_028D67DC: ; // 0x28d67dc
|
|
/* 028D67DC */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D67DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D67E0 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D67E0 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D67E0 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D67E0 */ goto L_028D67E4;
|
|
L_028D67E4: ; // 0x28d67e4
|
|
/* 028D67E4 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D67E8 @ 0x28d67e8
|
|
void Gambit_fn_028D67E8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24;
|
|
|
|
L_028D67E8: ; // 0x28d67e8
|
|
/* 028D67E8 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028D67E8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D67E8 */ cpu->r[1] = _t0;
|
|
/* 028D67EC */ /* nop */
|
|
/* 028D67F0 */ cpu->r[0] = cpu->lr;
|
|
/* 028D67F4 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028D67F4 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D67F8 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D67FC */ _t2 = cpu->r[29] + 0x00000004u;
|
|
/* 028D67FC */ cpu->r[8] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028D6800 */ _t3 = cpu->r[8] + 0x00000014u;
|
|
/* 028D6800 */ cpu->r[9] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D6804 */ cpu->r[28] = cpu->r[3];
|
|
/* 028D6808 */ cpu->ctr = cpu->r[9];
|
|
/* 028D680C */ _t4 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D680C */ cpu->r[27] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D6810 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D6814 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D6818 */ cpu->r[31] = 0x10110000u;
|
|
/* 028D681C */ _t5 = cpu->r[29] + 0x00000000u;
|
|
/* 028D681C */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D6820 */ _t6 = cpu->r[31] + 0x00007399u;
|
|
/* 028D6820 */ cpu->r[31] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028D6824 */ _t7 = cpu->r[11] + 0x00000000u;
|
|
/* 028D6824 */ cpu->r[10] = rbrew_read8(cpu->mem, _t7);
|
|
/* 028D6828 */ cpu->r[30] = 0x00000000u;
|
|
/* 028D682C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[31]);
|
|
/* 028D6830 */ cpu->r[12] = 0x00080000u;
|
|
/* 028D6834 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6834 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D6834 */ if (_t9) goto L_028D685C; else goto L_028D6838;
|
|
L_028D6838: ; // 0x28d6838
|
|
/* 028D6838 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028D683C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[12]);
|
|
/* 028D6840 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 028D6844 */ _t10 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D6844 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D6844 */ if (_t11) goto L_028D6858; else goto L_028D6848;
|
|
L_028D6848: ; // 0x28d6848
|
|
/* 028D6848 */ _t12 = cpu->r[11] + 0x00000000u;
|
|
/* 028D6848 */ cpu->r[0] = rbrew_read8(cpu->mem, _t12);
|
|
/* 028D684C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[31]);
|
|
/* 028D6850 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6850 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D6850 */ if (_t14) goto L_028D6854; else goto L_028D6838;
|
|
L_028D6854: ; // 0x28d6854
|
|
/* 028D6854 */ goto L_028D685C;
|
|
L_028D6858: ; // 0x28d6858
|
|
/* 028D6858 */ cpu->r[30] = 0x00000000u;
|
|
L_028D685C: ; // 0x28d685c
|
|
/* 028D685C */ _t15 = cpu->r[28] + 0x00000014u;
|
|
/* 028D685C */ cpu->r[7] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D6860 */ _t16 = cpu->r[29] + 0x00000004u;
|
|
/* 028D6860 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D6864 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[7]);
|
|
/* 028D6868 */ _t17 = cpu->r[12] + 0x00000014u;
|
|
/* 028D6868 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D686C */ _t18 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D686C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D686C */ if (_t19) goto L_028D6874; else goto L_028D6870;
|
|
L_028D6870: ; // 0x28d6870
|
|
/* 028D6870 */ cpu->r[30] = cpu->r[7] + 0xFFFFFFFFu;
|
|
L_028D6874: ; // 0x28d6874
|
|
/* 028D6874 */ cpu->ctr = cpu->r[0];
|
|
/* 028D6878 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D687C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D6880 */ _t20 = cpu->r[29] + 0x00000000u;
|
|
/* 028D6880 */ cpu->r[4] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D6884 */ cpu->r[6] = 0x00000000u;
|
|
/* 028D6888 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D688C */ cpu->r[3] = cpu->r[27];
|
|
/* 028D6890 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028D6894 */ _t21 = cpu->r[27] + cpu->r[30];
|
|
/* 028D6894 */ rbrew_write8(cpu->mem, _t21, (uint8_t)cpu->r[31]);
|
|
/* 028D6898 */ _t22 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D6898 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D689C */ _t23 = cpu->r[28] + 0x00000000u;
|
|
/* 028D689C */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 028D68A0 */ /* nop */
|
|
/* 028D68A4 */ _t24 = cpu->r[1] + 0x00000024u;
|
|
/* 028D68A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D68A8 */ cpu->lr = cpu->r[0];
|
|
/* 028D68AC */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028D68B0 */ return;
|
|
}
|
|
|
|
// fn_028D68B4 @ 0x28d68b4
|
|
void Gambit_fn_028D68B4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22;
|
|
|
|
L_028D68B4: ; // 0x28d68b4
|
|
/* 028D68B4 */ cpu->r[0] = cpu->lr;
|
|
/* 028D68B8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D68B8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D68B8 */ cpu->r[1] = _t0;
|
|
/* 028D68BC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D68BC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D68C0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D68C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D68C4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D68C4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D68C8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D68C8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D68C8 */ if (_t4) goto L_028D68CC; else goto L_028D68DC;
|
|
L_028D68CC: ; // 0x28d68cc
|
|
/* 028D68CC */ cpu->r[3] = 0x00000070u;
|
|
/* 028D68D0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D68D4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D68D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D68D8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D68D8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D68D8 */ if (_t6) goto L_028D6950; else goto L_028D68DC;
|
|
L_028D68DC: ; // 0x28d68dc
|
|
/* 028D68DC */ cpu->r[12] = 0x10140000u;
|
|
/* 028D68E0 */ cpu->r[0] = 0x00000000u;
|
|
/* 028D68E4 */ cpu->r[12] = cpu->r[12] + 0xFFFFAA68u;
|
|
/* 028D68E8 */ _t7 = cpu->r[31] + 0x00000004u;
|
|
/* 028D68E8 */ rbrew_write8(cpu->mem, _t7, (uint8_t)cpu->r[0]);
|
|
/* 028D68EC */ cpu->r[3] = cpu->r[31] + 0x00000008u;
|
|
/* 028D68F0 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028D68F0 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 028D68F4 */ Gambit_fn_028DA728(cpu);
|
|
/* 028D68F8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D68FC */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6900 */ _t9 = cpu->r[11] + 0xFFFFAA54u;
|
|
/* 028D6900 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028D6904 */ cpu->r[0] = 0x00000001u;
|
|
/* 028D6908 */ _t10 = cpu->r[12] + 0xFFFFAA4Cu;
|
|
/* 028D6908 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028D690C */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6910 */ _t11 = cpu->r[31] + 0x0000006Cu;
|
|
/* 028D6910 */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[0]);
|
|
/* 028D6914 */ _t12 = cpu->r[12] + 0xFFFFAA50u;
|
|
/* 028D6914 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 028D6918 */ _t13 = cpu->r[31] + 0x00000060u;
|
|
/* 028D6918 */ rbrew_write_f32(cpu->mem, _t13, cpu->f[0]);
|
|
/* 028D691C */ cpu->f[11] = cpu->f[12] - cpu->f[0];
|
|
/* 028D6920 */ _t14 = cpu->r[31] + 0x00000058u;
|
|
/* 028D6920 */ rbrew_write_f32(cpu->mem, _t14, cpu->f[13]);
|
|
/* 028D6924 */ cpu->f[13] = cpu->f[13] - cpu->f[12];
|
|
/* 028D6928 */ _t15 = cpu->r[31] + 0x00000064u;
|
|
/* 028D6928 */ rbrew_write_f32(cpu->mem, _t15, cpu->f[12]);
|
|
/* 028D692C */ cpu->r[11] = 0x101F0000u;
|
|
/* 028D6930 */ _t16 = cpu->r[31] + 0x00000054u;
|
|
/* 028D6930 */ rbrew_write_f32(cpu->mem, _t16, cpu->f[12]);
|
|
/* 028D6934 */ _t17 = cpu->r[31] + 0x00000068u;
|
|
/* 028D6934 */ rbrew_write_f32(cpu->mem, _t17, cpu->f[11]);
|
|
/* 028D6938 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028D693C */ _t18 = cpu->r[31] + 0x0000005Cu;
|
|
/* 028D693C */ rbrew_write_f32(cpu->mem, _t18, cpu->f[13]);
|
|
/* 028D6940 */ _t19 = cpu->r[12] + 0x000071D4u;
|
|
/* 028D6940 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t19);
|
|
/* 028D6944 */ _t20 = cpu->r[11] + 0x000071D8u;
|
|
/* 028D6944 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t20);
|
|
/* 028D6948 */ cpu->r[3] = cpu->r[31] + 0x00000008u;
|
|
/* 028D694C */ Gambit_fn_028DA8B4(cpu);
|
|
L_028D6950: ; // 0x28d6950
|
|
/* 028D6950 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6950 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D6954 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D6958 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6958 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D695C */ cpu->lr = cpu->r[0];
|
|
/* 028D6960 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D6964 */ return;
|
|
}
|
|
|
|
// fn_028D68B8 @ 0x28d68b8
|
|
void Gambit_fn_028D68B8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22;
|
|
|
|
L_028D68B8: ; // 0x28d68b8
|
|
/* 028D68B8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D68B8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D68B8 */ cpu->r[1] = _t0;
|
|
/* 028D68BC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D68BC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D68C0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D68C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D68C4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D68C4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D68C8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D68C8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D68C8 */ if (_t4) goto L_028D68CC; else goto L_028D68DC;
|
|
L_028D68CC: ; // 0x28d68cc
|
|
/* 028D68CC */ cpu->r[3] = 0x00000070u;
|
|
/* 028D68D0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D68D4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D68D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D68D8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D68D8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D68D8 */ if (_t6) goto L_028D6950; else goto L_028D68DC;
|
|
L_028D68DC: ; // 0x28d68dc
|
|
/* 028D68DC */ cpu->r[12] = 0x10140000u;
|
|
/* 028D68E0 */ cpu->r[0] = 0x00000000u;
|
|
/* 028D68E4 */ cpu->r[12] = cpu->r[12] + 0xFFFFAA68u;
|
|
/* 028D68E8 */ _t7 = cpu->r[31] + 0x00000004u;
|
|
/* 028D68E8 */ rbrew_write8(cpu->mem, _t7, (uint8_t)cpu->r[0]);
|
|
/* 028D68EC */ cpu->r[3] = cpu->r[31] + 0x00000008u;
|
|
/* 028D68F0 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028D68F0 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 028D68F4 */ Gambit_fn_028DA728(cpu);
|
|
/* 028D68F8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D68FC */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6900 */ _t9 = cpu->r[11] + 0xFFFFAA54u;
|
|
/* 028D6900 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028D6904 */ cpu->r[0] = 0x00000001u;
|
|
/* 028D6908 */ _t10 = cpu->r[12] + 0xFFFFAA4Cu;
|
|
/* 028D6908 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028D690C */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6910 */ _t11 = cpu->r[31] + 0x0000006Cu;
|
|
/* 028D6910 */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[0]);
|
|
/* 028D6914 */ _t12 = cpu->r[12] + 0xFFFFAA50u;
|
|
/* 028D6914 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 028D6918 */ _t13 = cpu->r[31] + 0x00000060u;
|
|
/* 028D6918 */ rbrew_write_f32(cpu->mem, _t13, cpu->f[0]);
|
|
/* 028D691C */ cpu->f[11] = cpu->f[12] - cpu->f[0];
|
|
/* 028D6920 */ _t14 = cpu->r[31] + 0x00000058u;
|
|
/* 028D6920 */ rbrew_write_f32(cpu->mem, _t14, cpu->f[13]);
|
|
/* 028D6924 */ cpu->f[13] = cpu->f[13] - cpu->f[12];
|
|
/* 028D6928 */ _t15 = cpu->r[31] + 0x00000064u;
|
|
/* 028D6928 */ rbrew_write_f32(cpu->mem, _t15, cpu->f[12]);
|
|
/* 028D692C */ cpu->r[11] = 0x101F0000u;
|
|
/* 028D6930 */ _t16 = cpu->r[31] + 0x00000054u;
|
|
/* 028D6930 */ rbrew_write_f32(cpu->mem, _t16, cpu->f[12]);
|
|
/* 028D6934 */ _t17 = cpu->r[31] + 0x00000068u;
|
|
/* 028D6934 */ rbrew_write_f32(cpu->mem, _t17, cpu->f[11]);
|
|
/* 028D6938 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028D693C */ _t18 = cpu->r[31] + 0x0000005Cu;
|
|
/* 028D693C */ rbrew_write_f32(cpu->mem, _t18, cpu->f[13]);
|
|
/* 028D6940 */ _t19 = cpu->r[12] + 0x000071D4u;
|
|
/* 028D6940 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t19);
|
|
/* 028D6944 */ _t20 = cpu->r[11] + 0x000071D8u;
|
|
/* 028D6944 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t20);
|
|
/* 028D6948 */ cpu->r[3] = cpu->r[31] + 0x00000008u;
|
|
/* 028D694C */ Gambit_fn_028DA8B4(cpu);
|
|
L_028D6950: ; // 0x28d6950
|
|
/* 028D6950 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6950 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D6954 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D6958 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6958 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D695C */ cpu->lr = cpu->r[0];
|
|
/* 028D6960 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D6964 */ return;
|
|
}
|
|
|
|
// fn_028D6968 @ 0x28d6968
|
|
void Gambit_fn_028D6968(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D6968: ; // 0x28d6968
|
|
/* 028D6968 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D696C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D696C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D696C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D696C */ goto L_028D6970;
|
|
L_028D6970: ; // 0x28d6970
|
|
/* 028D6970 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D6970 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D6974 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6974 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D6974 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D6974 */ goto L_028D6978;
|
|
L_028D6978: ; // 0x28d6978
|
|
/* 028D6978 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D697C @ 0x28d697c
|
|
void Gambit_fn_028D697C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21;
|
|
|
|
L_028D697C: ; // 0x28d697c
|
|
/* 028D697C */ cpu->r[0] = cpu->lr;
|
|
/* 028D6980 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D6980 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D6980 */ cpu->r[1] = _t0;
|
|
/* 028D6984 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D6984 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D6988 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6988 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D698C */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6990 */ _t3 = cpu->r[12] + 0xFFFFAA58u;
|
|
/* 028D6990 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t3);
|
|
/* 028D6994 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D6998 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6998 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D699C */ _t5 = cpu->r[31] + 0x00000000u;
|
|
/* 028D699C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 028D69A0 */ _t6 = cpu->r[31] + 0x00000004u;
|
|
/* 028D69A0 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028D69A4 */ cpu->f[1] = cpu->f[13] * cpu->f[0];
|
|
/* 028D69A8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D69AC */ cpu->f[2] = cpu->f[12] * cpu->f[0];
|
|
/* 028D69B0 */ cpu->r[3] = cpu->r[30] + 0x00000008u;
|
|
/* 028D69B4 */ Gambit_fn_028DA8B4(cpu);
|
|
/* 028D69B8 */ _t7 = cpu->r[31] + 0x00000008u;
|
|
/* 028D69B8 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028D69BC */ Gambit_fn_028ED238(cpu);
|
|
/* 028D69C0 */ _t8 = cpu->r[30] + 0x00000054u;
|
|
/* 028D69C0 */ rbrew_write_f32(cpu->mem, _t8, cpu->f[1]);
|
|
/* 028D69C4 */ _t9 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D69C4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028D69C8 */ Gambit_fn_028ED238(cpu);
|
|
/* 028D69CC */ _t10 = cpu->r[30] + 0x00000054u;
|
|
/* 028D69CC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028D69D0 */ cpu->f[13] = cpu->f[1] - cpu->f[0];
|
|
/* 028D69D4 */ _t11 = cpu->r[30] + 0x00000058u;
|
|
/* 028D69D4 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[1]);
|
|
/* 028D69D8 */ _t12 = cpu->r[30] + 0x0000005Cu;
|
|
/* 028D69D8 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[13]);
|
|
/* 028D69DC */ _t13 = cpu->r[31] + 0x00000010u;
|
|
/* 028D69DC */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 028D69E0 */ cpu->r[0] = 0x00000001u;
|
|
/* 028D69E4 */ _t14 = cpu->r[30] + 0x00000060u;
|
|
/* 028D69E4 */ rbrew_write_f32(cpu->mem, _t14, cpu->f[13]);
|
|
/* 028D69E8 */ _t15 = cpu->r[31] + 0x00000014u;
|
|
/* 028D69E8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028D69EC */ _t16 = cpu->r[30] + 0x00000004u;
|
|
/* 028D69EC */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[0]);
|
|
/* 028D69F0 */ cpu->f[13] = cpu->f[0] - cpu->f[13];
|
|
/* 028D69F4 */ _t17 = cpu->r[30] + 0x00000064u;
|
|
/* 028D69F4 */ rbrew_write_f32(cpu->mem, _t17, cpu->f[0]);
|
|
/* 028D69F8 */ _t18 = cpu->r[30] + 0x00000068u;
|
|
/* 028D69F8 */ rbrew_write_f32(cpu->mem, _t18, cpu->f[13]);
|
|
/* 028D69FC */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 028D69FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D6A00 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6A00 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D6A04 */ cpu->lr = cpu->r[0];
|
|
/* 028D6A08 */ _t21 = cpu->r[1] + 0x00000008u;
|
|
/* 028D6A08 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D6A0C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D6A10 */ return;
|
|
}
|
|
|
|
// fn_028D6980 @ 0x28d6980
|
|
void Gambit_fn_028D6980(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21;
|
|
|
|
L_028D6980: ; // 0x28d6980
|
|
/* 028D6980 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D6980 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D6980 */ cpu->r[1] = _t0;
|
|
/* 028D6984 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D6984 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D6988 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6988 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D698C */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6990 */ _t3 = cpu->r[12] + 0xFFFFAA58u;
|
|
/* 028D6990 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t3);
|
|
/* 028D6994 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D6998 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6998 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D699C */ _t5 = cpu->r[31] + 0x00000000u;
|
|
/* 028D699C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 028D69A0 */ _t6 = cpu->r[31] + 0x00000004u;
|
|
/* 028D69A0 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028D69A4 */ cpu->f[1] = cpu->f[13] * cpu->f[0];
|
|
/* 028D69A8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D69AC */ cpu->f[2] = cpu->f[12] * cpu->f[0];
|
|
/* 028D69B0 */ cpu->r[3] = cpu->r[30] + 0x00000008u;
|
|
/* 028D69B4 */ Gambit_fn_028DA8B4(cpu);
|
|
/* 028D69B8 */ _t7 = cpu->r[31] + 0x00000008u;
|
|
/* 028D69B8 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028D69BC */ Gambit_fn_028ED238(cpu);
|
|
/* 028D69C0 */ _t8 = cpu->r[30] + 0x00000054u;
|
|
/* 028D69C0 */ rbrew_write_f32(cpu->mem, _t8, cpu->f[1]);
|
|
/* 028D69C4 */ _t9 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D69C4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028D69C8 */ Gambit_fn_028ED238(cpu);
|
|
/* 028D69CC */ _t10 = cpu->r[30] + 0x00000054u;
|
|
/* 028D69CC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028D69D0 */ cpu->f[13] = cpu->f[1] - cpu->f[0];
|
|
/* 028D69D4 */ _t11 = cpu->r[30] + 0x00000058u;
|
|
/* 028D69D4 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[1]);
|
|
/* 028D69D8 */ _t12 = cpu->r[30] + 0x0000005Cu;
|
|
/* 028D69D8 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[13]);
|
|
/* 028D69DC */ _t13 = cpu->r[31] + 0x00000010u;
|
|
/* 028D69DC */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 028D69E0 */ cpu->r[0] = 0x00000001u;
|
|
/* 028D69E4 */ _t14 = cpu->r[30] + 0x00000060u;
|
|
/* 028D69E4 */ rbrew_write_f32(cpu->mem, _t14, cpu->f[13]);
|
|
/* 028D69E8 */ _t15 = cpu->r[31] + 0x00000014u;
|
|
/* 028D69E8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028D69EC */ _t16 = cpu->r[30] + 0x00000004u;
|
|
/* 028D69EC */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[0]);
|
|
/* 028D69F0 */ cpu->f[13] = cpu->f[0] - cpu->f[13];
|
|
/* 028D69F4 */ _t17 = cpu->r[30] + 0x00000064u;
|
|
/* 028D69F4 */ rbrew_write_f32(cpu->mem, _t17, cpu->f[0]);
|
|
/* 028D69F8 */ _t18 = cpu->r[30] + 0x00000068u;
|
|
/* 028D69F8 */ rbrew_write_f32(cpu->mem, _t18, cpu->f[13]);
|
|
/* 028D69FC */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 028D69FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D6A00 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6A00 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D6A04 */ cpu->lr = cpu->r[0];
|
|
/* 028D6A08 */ _t21 = cpu->r[1] + 0x00000008u;
|
|
/* 028D6A08 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D6A0C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D6A10 */ return;
|
|
}
|
|
|
|
// fn_028D6A14 @ 0x28d6a14
|
|
void Gambit_fn_028D6A14(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028D6A14: ; // 0x28d6a14
|
|
/* 028D6A14 */ _t0 = cpu->r[3] + 0x00000054u;
|
|
/* 028D6A14 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028D6A18 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[0]);
|
|
/* 028D6A1C */ _t1 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D6A1C */ _t2 = _t1 & 0x00000001u;
|
|
/* 028D6A1C */ if (_t2) goto L_028D6A2C; else goto L_028D6A20;
|
|
L_028D6A20: ; // 0x28d6a20
|
|
/* 028D6A20 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6A24 */ _t3 = cpu->r[12] + 0xFFFFAA5Cu;
|
|
/* 028D6A24 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t3);
|
|
/* 028D6A28 */ return;
|
|
L_028D6A2C: ; // 0x28d6a2c
|
|
/* 028D6A2C */ _t4 = cpu->r[3] + 0x00000058u;
|
|
/* 028D6A2C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028D6A30 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[13]);
|
|
/* 028D6A34 */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D6A34 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D6A34 */ if (_t6) goto L_028D6A38; else goto L_028D6A44;
|
|
L_028D6A38: ; // 0x28d6a38
|
|
/* 028D6A38 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6A3C */ _t7 = cpu->r[12] + 0xFFFFAA4Cu;
|
|
/* 028D6A3C */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028D6A40 */ return;
|
|
L_028D6A44: ; // 0x28d6a44
|
|
/* 028D6A44 */ cpu->f[0] = cpu->f[1] - cpu->f[0];
|
|
/* 028D6A48 */ _t8 = cpu->r[3] + 0x0000005Cu;
|
|
/* 028D6A48 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028D6A4C */ cpu->f[1] = cpu->f[0] / cpu->f[13];
|
|
/* 028D6A50 */ return;
|
|
}
|
|
|
|
// fn_028D6A54 @ 0x28d6a54
|
|
void Gambit_fn_028D6A54(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86;
|
|
|
|
L_028D6A54: ; // 0x28d6a54
|
|
/* 028D6A54 */ _t0 = cpu->r[1] + 0xFFFFFF98u;
|
|
/* 028D6A54 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D6A54 */ cpu->r[1] = _t0;
|
|
/* 028D6A58 */ cpu->r[0] = cpu->lr;
|
|
/* 028D6A5C */ _t1 = cpu->r[1] + 0x00000058u;
|
|
/* 028D6A5C */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028D6A60 */ /* nop */
|
|
/* 028D6A64 */ _t2 = cpu->r[1] + 0x00000038u;
|
|
/* 028D6A64 */ rbrew_write_f64(cpu->mem, _t2, cpu->f[29]);
|
|
/* 028D6A68 */ _t3 = cpu->r[1] + 0x00000048u;
|
|
/* 028D6A68 */ rbrew_write_f64(cpu->mem, _t3, cpu->f[30]);
|
|
/* 028D6A6C */ /* nop */
|
|
/* 028D6A70 */ _t4 = cpu->r[1] + 0x00000060u;
|
|
/* 028D6A70 */ rbrew_write_f32(cpu->mem, _t4, cpu->f[31]);
|
|
/* 028D6A74 */ /* nop */
|
|
/* 028D6A78 */ _t5 = cpu->r[1] + 0x00000040u;
|
|
/* 028D6A78 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[29]);
|
|
/* 028D6A7C */ _t6 = cpu->r[1] + 0x00000030u;
|
|
/* 028D6A7C */ rbrew_write32(cpu->mem, _t6, cpu->r[30]);
|
|
/* 028D6A80 */ _t7 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028D6A80 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028D6A84 */ _t8 = cpu->r[1] + 0x00000050u;
|
|
/* 028D6A84 */ rbrew_write_f32(cpu->mem, _t8, cpu->f[30]);
|
|
/* 028D6A88 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D6A8C */ _t9 = cpu->r[1] + 0x00000034u;
|
|
/* 028D6A8C */ rbrew_write32(cpu->mem, _t9, cpu->r[31]);
|
|
/* 028D6A90 */ _t10 = cpu->r[30] + 0x00000004u;
|
|
/* 028D6A90 */ cpu->r[0] = rbrew_read8(cpu->mem, _t10);
|
|
/* 028D6A94 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6A98 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D6A9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D6AA0 */ _t11 = cpu->r[12] + 0xFFFFAA4Cu;
|
|
/* 028D6AA0 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028D6AA4 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6AA4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D6AA4 */ if (_t13) goto L_028D6AA8; else goto L_028D6AE0;
|
|
L_028D6AA8: ; // 0x28d6aa8
|
|
/* 028D6AA8 */ _t14 = cpu->r[1] + 0x00000030u;
|
|
/* 028D6AA8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D6AAC */ cpu->f[1] = cpu->f[31];
|
|
/* 028D6AB0 */ _t15 = cpu->r[1] + 0x00000060u;
|
|
/* 028D6AB0 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028D6AB4 */ _t16 = cpu->r[1] + 0x00000050u;
|
|
/* 028D6AB4 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028D6AB8 */ _t17 = cpu->r[1] + 0x00000058u;
|
|
/* 028D6AB8 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t17);
|
|
/* 028D6ABC */ _t18 = cpu->r[1] + 0x00000040u;
|
|
/* 028D6ABC */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t18);
|
|
/* 028D6AC0 */ _t19 = cpu->r[1] + 0x00000048u;
|
|
/* 028D6AC0 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t19);
|
|
/* 028D6AC4 */ _t20 = cpu->r[1] + 0x00000038u;
|
|
/* 028D6AC4 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t20);
|
|
/* 028D6AC8 */ _t21 = cpu->r[1] + 0x00000034u;
|
|
/* 028D6AC8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D6ACC */ _t22 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D6ACC */ _t23 = _t22 & 0x00000001u;
|
|
/* 028D6ACC */ if (_t23) goto L_028D6AD0; // else: addr-0 trap, fall-through
|
|
L_028D6AD0: ; // 0x28d6ad0
|
|
/* 028D6AD0 */ _t24 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028D6AD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D6AD4 */ cpu->lr = cpu->r[0];
|
|
/* 028D6AD8 */ cpu->r[1] = cpu->r[1] + 0x00000068u;
|
|
/* 028D6ADC */ return;
|
|
L_028D6AE0: ; // 0x28d6ae0
|
|
/* 028D6AE0 */ cpu->r[3] = cpu->r[30] + 0x00000008u;
|
|
/* 028D6AE4 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 028D6AE8 */ Gambit_fn_028DA7E4(cpu);
|
|
/* 028D6AEC */ /* nop */
|
|
/* 028D6AF0 */ cpu->r[9] = 0x10140000u;
|
|
/* 028D6AF4 */ /* nop */
|
|
/* 028D6AF8 */ _t25 = cpu->r[9] + 0xFFFFAA5Cu;
|
|
/* 028D6AF8 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 028D6AFC */ /* nop */
|
|
/* 028D6B00 */ _t26 = cpu->r[1] + 0x00000028u;
|
|
/* 028D6B00 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028D6B04 */ _t27 = cpu->r[31] + 0x00000008u;
|
|
/* 028D6B04 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 028D6B08 */ /* nop */
|
|
/* 028D6B0C */ _t28 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6B0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D6B10 */ cpu->f[13] = cpu->f[11] - cpu->f[12];
|
|
/* 028D6B14 */ _t29 = cpu->r[1] + 0x00000008u;
|
|
/* 028D6B14 */ rbrew_write32(cpu->mem, _t29, cpu->r[0]);
|
|
/* 028D6B18 */ _t30 = cpu->r[1] + 0x00000008u;
|
|
/* 028D6B18 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t30);
|
|
/* 028D6B1C */ _t31 = cpu->r[1] + 0x00000018u;
|
|
/* 028D6B1C */ cpu->r[8] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028D6B20 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[30]);
|
|
/* 028D6B24 */ _t32 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D6B24 */ rbrew_write_f32(cpu->mem, _t32, cpu->f[13]);
|
|
/* 028D6B28 */ _t33 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D6B28 */ cpu->r[10] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028D6B2C */ _t34 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6B2C */ rbrew_write32(cpu->mem, _t34, cpu->r[8]);
|
|
/* 028D6B30 */ _t35 = cpu->r[1] + 0x00000010u;
|
|
/* 028D6B30 */ rbrew_write32(cpu->mem, _t35, cpu->r[10]);
|
|
/* 028D6B34 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6B34 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028D6B34 */ if (_t37) goto L_028D6B38; else goto L_028D6B50;
|
|
L_028D6B38: ; // 0x28d6b38
|
|
/* 028D6B38 */ _t38 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6B38 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t38);
|
|
/* 028D6B3C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[30]);
|
|
/* 028D6B40 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6B40 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028D6B40 */ if (_t40) goto L_028D6B44; else goto L_028D6B50;
|
|
L_028D6B44: ; // 0x28d6b44
|
|
/* 028D6B44 */ _t41 = cpu->r[1] + 0x00000010u;
|
|
/* 028D6B44 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t41);
|
|
/* 028D6B48 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[30]);
|
|
/* 028D6B4C */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6B4C */ _t43 = _t42 & 0x00000001u;
|
|
/* 028D6B4C */ if (_t43) goto L_028D6B80; else goto L_028D6B50;
|
|
L_028D6B50: ; // 0x28d6b50
|
|
/* 028D6B50 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028D6B54 */ Gambit_fn_02C69350(cpu);
|
|
/* 028D6B58 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D6B5C */ Gambit_fn_028D6A14(cpu);
|
|
/* 028D6B60 */ cpu->f[29] = cpu->f[1];
|
|
/* 028D6B64 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[29], cpu->f[30]);
|
|
/* 028D6B68 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6B68 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028D6B68 */ if (_t45) goto L_028D6B80; else goto L_028D6B6C;
|
|
L_028D6B6C: ; // 0x28d6b6c
|
|
/* 028D6B6C */ cpu->r[3] = cpu->r[30] + 0x00000008u;
|
|
/* 028D6B70 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D6B74 */ Gambit_fn_028DAB30(cpu);
|
|
/* 028D6B78 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[30]);
|
|
/* 028D6B7C */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6B7C */ _t47 = _t46 & 0x00000001u;
|
|
/* 028D6B7C */ if (_t47) goto L_028D6B80; else goto L_028D6BB8;
|
|
L_028D6B80: ; // 0x28d6b80
|
|
/* 028D6B80 */ _t48 = cpu->r[1] + 0x00000050u;
|
|
/* 028D6B80 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t48);
|
|
/* 028D6B84 */ _t49 = cpu->r[1] + 0x00000040u;
|
|
/* 028D6B84 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t49);
|
|
/* 028D6B88 */ _t50 = cpu->r[1] + 0x00000048u;
|
|
/* 028D6B88 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t50);
|
|
/* 028D6B8C */ _t51 = cpu->r[1] + 0x00000038u;
|
|
/* 028D6B8C */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t51);
|
|
/* 028D6B90 */ _t52 = cpu->r[1] + 0x00000060u;
|
|
/* 028D6B90 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 028D6B94 */ _t53 = cpu->r[1] + 0x00000034u;
|
|
/* 028D6B94 */ cpu->r[31] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028D6B98 */ _t54 = cpu->r[1] + 0x00000058u;
|
|
/* 028D6B98 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t54);
|
|
/* 028D6B9C */ _t55 = cpu->r[30] + 0x00000060u;
|
|
/* 028D6B9C */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t55);
|
|
/* 028D6BA0 */ _t56 = cpu->r[1] + 0x00000030u;
|
|
/* 028D6BA0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028D6BA4 */ _t57 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D6BA4 */ _t58 = _t57 & 0x00000001u;
|
|
/* 028D6BA4 */ if (_t58) goto L_028D6BA8; // else: addr-0 trap, fall-through
|
|
L_028D6BA8: ; // 0x28d6ba8
|
|
/* 028D6BA8 */ _t59 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028D6BA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028D6BAC */ cpu->lr = cpu->r[0];
|
|
/* 028D6BB0 */ cpu->r[1] = cpu->r[1] + 0x00000068u;
|
|
/* 028D6BB4 */ return;
|
|
L_028D6BB8: ; // 0x28d6bb8
|
|
/* 028D6BB8 */ cpu->f[0] = cpu->f[1] - cpu->f[29];
|
|
/* 028D6BBC */ /* nop */
|
|
/* 028D6BC0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[31]);
|
|
/* 028D6BC4 */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6BC4 */ _t61 = _t60 & 0x00000001u;
|
|
/* 028D6BC4 */ if (_t61) goto L_028D6BC8; else goto L_028D6C00;
|
|
L_028D6BC8: ; // 0x28d6bc8
|
|
/* 028D6BC8 */ _t62 = cpu->r[1] + 0x00000050u;
|
|
/* 028D6BC8 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t62);
|
|
/* 028D6BCC */ _t63 = cpu->r[1] + 0x00000040u;
|
|
/* 028D6BCC */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t63);
|
|
/* 028D6BD0 */ _t64 = cpu->r[1] + 0x00000048u;
|
|
/* 028D6BD0 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t64);
|
|
/* 028D6BD4 */ _t65 = cpu->r[1] + 0x00000038u;
|
|
/* 028D6BD4 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t65);
|
|
/* 028D6BD8 */ _t66 = cpu->r[1] + 0x00000060u;
|
|
/* 028D6BD8 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t66);
|
|
/* 028D6BDC */ _t67 = cpu->r[1] + 0x00000034u;
|
|
/* 028D6BDC */ cpu->r[31] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028D6BE0 */ _t68 = cpu->r[1] + 0x00000058u;
|
|
/* 028D6BE0 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t68);
|
|
/* 028D6BE4 */ _t69 = cpu->r[30] + 0x00000064u;
|
|
/* 028D6BE4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t69);
|
|
/* 028D6BE8 */ _t70 = cpu->r[1] + 0x00000030u;
|
|
/* 028D6BE8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028D6BEC */ _t71 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D6BEC */ _t72 = _t71 & 0x00000001u;
|
|
/* 028D6BEC */ if (_t72) goto L_028D6BF0; // else: addr-0 trap, fall-through
|
|
L_028D6BF0: ; // 0x28d6bf0
|
|
/* 028D6BF0 */ _t73 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028D6BF0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028D6BF4 */ cpu->lr = cpu->r[0];
|
|
/* 028D6BF8 */ cpu->r[1] = cpu->r[1] + 0x00000068u;
|
|
/* 028D6BFC */ return;
|
|
L_028D6C00: ; // 0x28d6c00
|
|
/* 028D6C00 */ _t74 = cpu->r[30] + 0x00000068u;
|
|
/* 028D6C00 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t74);
|
|
/* 028D6C04 */ _t75 = cpu->r[1] + 0x00000050u;
|
|
/* 028D6C04 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t75);
|
|
/* 028D6C08 */ _t76 = cpu->r[30] + 0x00000060u;
|
|
/* 028D6C08 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t76);
|
|
/* 028D6C0C */ _t77 = cpu->r[1] + 0x00000030u;
|
|
/* 028D6C0C */ cpu->r[30] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028D6C10 */ _t78 = cpu->r[1] + 0x00000048u;
|
|
/* 028D6C10 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t78);
|
|
/* 028D6C14 */ _t79 = cpu->r[1] + 0x00000034u;
|
|
/* 028D6C14 */ cpu->r[31] = rbrew_read32(cpu->mem, _t79);
|
|
/* 028D6C18 */ cpu->f[1] = fma(cpu->f[0], cpu->f[13], cpu->f[11]);
|
|
/* 028D6C1C */ _t80 = cpu->r[1] + 0x00000040u;
|
|
/* 028D6C1C */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t80);
|
|
/* 028D6C20 */ _t81 = cpu->r[1] + 0x00000060u;
|
|
/* 028D6C20 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t81);
|
|
/* 028D6C24 */ _t82 = cpu->r[1] + 0x00000038u;
|
|
/* 028D6C24 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t82);
|
|
/* 028D6C28 */ _t83 = cpu->r[1] + 0x00000058u;
|
|
/* 028D6C28 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t83);
|
|
/* 028D6C2C */ _t84 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D6C2C */ _t85 = _t84 & 0x00000001u;
|
|
/* 028D6C2C */ if (_t85) goto L_028D6C30; // else: addr-0 trap, fall-through
|
|
L_028D6C30: ; // 0x28d6c30
|
|
/* 028D6C30 */ _t86 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028D6C30 */ cpu->r[0] = rbrew_read32(cpu->mem, _t86);
|
|
/* 028D6C34 */ cpu->lr = cpu->r[0];
|
|
/* 028D6C38 */ cpu->r[1] = cpu->r[1] + 0x00000068u;
|
|
/* 028D6C3C */ return;
|
|
}
|
|
|
|
// fn_028D6C40 @ 0x28d6c40
|
|
void Gambit_fn_028D6C40(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028D6C40: ; // 0x28d6c40
|
|
/* 028D6C40 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6C44 */ _t0 = cpu->r[12] + 0xFFFFAA60u;
|
|
/* 028D6C44 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028D6C48 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6C4C */ _t1 = cpu->r[12] + 0xFFFFAA64u;
|
|
/* 028D6C4C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t1);
|
|
/* 028D6C50 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028D6C54 */ _t2 = cpu->r[12] + 0x000071D4u;
|
|
/* 028D6C54 */ rbrew_write_f32(cpu->mem, _t2, cpu->f[13]);
|
|
/* 028D6C58 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028D6C5C */ _t3 = cpu->r[12] + 0x000071D8u;
|
|
/* 028D6C5C */ rbrew_write_f32(cpu->mem, _t3, cpu->f[0]);
|
|
/* 028D6C60 */ return;
|
|
}
|
|
|
|
// fn_028D6C64 @ 0x28d6c64
|
|
void Gambit_fn_028D6C64(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D6C64: ; // 0x28d6c64
|
|
/* 028D6C64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D6C68 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6C68 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D6C68 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D6C68 */ goto L_028D6C6C;
|
|
L_028D6C6C: ; // 0x28d6c6c
|
|
/* 028D6C6C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D6C6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D6C70 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6C70 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D6C70 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D6C70 */ goto L_028D6C74;
|
|
L_028D6C74: ; // 0x28d6c74
|
|
/* 028D6C74 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D6C78 @ 0x28d6c78
|
|
void Gambit_fn_028D6C78(CPUState* cpu) {
|
|
L_028D6C78: ; // 0x28d6c78
|
|
/* 028D6C78 */ return;
|
|
}
|
|
|
|
// fn_028D6C7C @ 0x28d6c7c
|
|
void Gambit_fn_028D6C7C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40;
|
|
|
|
L_028D6C7C: ; // 0x28d6c7c
|
|
/* 028D6C7C */ cpu->r[0] = cpu->lr;
|
|
/* 028D6C80 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D6C80 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D6C80 */ cpu->r[1] = _t0;
|
|
/* 028D6C84 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6C84 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028D6C88 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6C88 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D6C8C */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028D6C8C */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028D6C90 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D6C90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D6C94 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D6C94 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D6C98 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6C98 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D6C98 */ if (_t6) goto L_028D6C9C; else goto L_028D6CAC;
|
|
L_028D6C9C: ; // 0x28d6c9c
|
|
/* 028D6C9C */ cpu->r[3] = 0x00000030u;
|
|
/* 028D6CA0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D6CA4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D6CA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D6CA8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6CA8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D6CA8 */ if (_t8) goto L_028D6D4C; else goto L_028D6CAC;
|
|
L_028D6CAC: ; // 0x28d6cac
|
|
/* 028D6CAC */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6CB0 */ cpu->r[29] = 0x00000000u;
|
|
/* 028D6CB4 */ cpu->r[12] = cpu->r[12] + 0xFFFFAAB8u;
|
|
/* 028D6CB8 */ _t9 = cpu->r[31] + 0x00000004u;
|
|
/* 028D6CB8 */ rbrew_write8(cpu->mem, _t9, (uint8_t)cpu->r[29]);
|
|
/* 028D6CBC */ cpu->r[30] = cpu->r[31] + 0x00000008u;
|
|
/* 028D6CBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D6CC0 */ _t10 = cpu->r[31] + 0x00000000u;
|
|
/* 028D6CC0 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028D6CC4 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6CC4 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D6CC4 */ if (_t12) goto L_028D6CC8; else goto L_028D6CD8;
|
|
L_028D6CC8: ; // 0x28d6cc8
|
|
/* 028D6CC8 */ cpu->r[3] = 0x00000018u;
|
|
/* 028D6CCC */ Gambit_fn_02801A78(cpu);
|
|
/* 028D6CD0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D6CD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D6CD4 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6CD4 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D6CD4 */ if (_t14) goto L_028D6D08; else goto L_028D6CD8;
|
|
L_028D6CD8: ; // 0x28d6cd8
|
|
/* 028D6CD8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D6CD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D6CDC */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6CDC */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D6CDC */ if (_t16) goto L_028D6CE0; else goto L_028D6CF0;
|
|
L_028D6CE0: ; // 0x28d6ce0
|
|
/* 028D6CE0 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028D6CE4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D6CE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D6CEC */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6CEC */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D6CEC */ if (_t18) goto L_028D6CFC; else goto L_028D6CF0;
|
|
L_028D6CF0: ; // 0x28d6cf0
|
|
/* 028D6CF0 */ _t19 = cpu->r[3] + 0x00000004u;
|
|
/* 028D6CF0 */ rbrew_write32(cpu->mem, _t19, cpu->r[3]);
|
|
/* 028D6CF4 */ _t20 = cpu->r[3] + 0x00000008u;
|
|
/* 028D6CF4 */ rbrew_write32(cpu->mem, _t20, cpu->r[29]);
|
|
/* 028D6CF8 */ _t21 = cpu->r[3] + 0x00000000u;
|
|
/* 028D6CF8 */ rbrew_write32(cpu->mem, _t21, cpu->r[3]);
|
|
L_028D6CFC: ; // 0x28d6cfc
|
|
/* 028D6CFC */ _t22 = cpu->r[30] + 0x00000010u;
|
|
/* 028D6CFC */ rbrew_write32(cpu->mem, _t22, cpu->r[29]);
|
|
/* 028D6D00 */ _t23 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028D6D00 */ rbrew_write32(cpu->mem, _t23, cpu->r[29]);
|
|
/* 028D6D04 */ _t24 = cpu->r[30] + 0x00000014u;
|
|
/* 028D6D04 */ rbrew_write32(cpu->mem, _t24, cpu->r[29]);
|
|
L_028D6D08: ; // 0x28d6d08
|
|
/* 028D6D08 */ cpu->r[30] = cpu->r[31] + 0x00000020u;
|
|
/* 028D6D08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D6D0C */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6D0C */ _t26 = _t25 & 0x00000001u;
|
|
/* 028D6D0C */ if (_t26) goto L_028D6D10; else goto L_028D6D20;
|
|
L_028D6D10: ; // 0x28d6d10
|
|
/* 028D6D10 */ cpu->r[3] = 0x00000010u;
|
|
/* 028D6D14 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D6D18 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D6D18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D6D1C */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6D1C */ _t28 = _t27 & 0x00000001u;
|
|
/* 028D6D1C */ if (_t28) goto L_028D6D4C; else goto L_028D6D20;
|
|
L_028D6D20: ; // 0x28d6d20
|
|
/* 028D6D20 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D6D20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D6D24 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6D24 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028D6D24 */ if (_t30) goto L_028D6D28; else goto L_028D6D38;
|
|
L_028D6D28: ; // 0x28d6d28
|
|
/* 028D6D28 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028D6D2C */ Gambit_fn_02801A78(cpu);
|
|
/* 028D6D30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D6D34 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6D34 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028D6D34 */ if (_t32) goto L_028D6D44; else goto L_028D6D38;
|
|
L_028D6D38: ; // 0x28d6d38
|
|
/* 028D6D38 */ _t33 = cpu->r[3] + 0x00000004u;
|
|
/* 028D6D38 */ rbrew_write32(cpu->mem, _t33, cpu->r[3]);
|
|
/* 028D6D3C */ _t34 = cpu->r[3] + 0x00000008u;
|
|
/* 028D6D3C */ rbrew_write32(cpu->mem, _t34, cpu->r[29]);
|
|
/* 028D6D40 */ _t35 = cpu->r[3] + 0x00000000u;
|
|
/* 028D6D40 */ rbrew_write32(cpu->mem, _t35, cpu->r[3]);
|
|
L_028D6D44: ; // 0x28d6d44
|
|
/* 028D6D44 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028D6D48 */ _t36 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028D6D48 */ rbrew_write32(cpu->mem, _t36, cpu->r[0]);
|
|
L_028D6D4C: ; // 0x28d6d4c
|
|
/* 028D6D4C */ _t37 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6D4C */ cpu->r[29] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028D6D50 */ _t38 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D6D50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028D6D54 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D6D58 */ _t39 = cpu->r[1] + 0x00000010u;
|
|
/* 028D6D58 */ cpu->r[30] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028D6D5C */ cpu->lr = cpu->r[0];
|
|
/* 028D6D60 */ _t40 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6D60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028D6D64 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D6D68 */ return;
|
|
}
|
|
|
|
// fn_028D6C80 @ 0x28d6c80
|
|
void Gambit_fn_028D6C80(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40;
|
|
|
|
L_028D6C80: ; // 0x28d6c80
|
|
/* 028D6C80 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D6C80 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D6C80 */ cpu->r[1] = _t0;
|
|
/* 028D6C84 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6C84 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028D6C88 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6C88 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D6C8C */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028D6C8C */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028D6C90 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D6C90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D6C94 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D6C94 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D6C98 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6C98 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D6C98 */ if (_t6) goto L_028D6C9C; else goto L_028D6CAC;
|
|
L_028D6C9C: ; // 0x28d6c9c
|
|
/* 028D6C9C */ cpu->r[3] = 0x00000030u;
|
|
/* 028D6CA0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D6CA4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D6CA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D6CA8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6CA8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D6CA8 */ if (_t8) goto L_028D6D4C; else goto L_028D6CAC;
|
|
L_028D6CAC: ; // 0x28d6cac
|
|
/* 028D6CAC */ cpu->r[12] = 0x10140000u;
|
|
/* 028D6CB0 */ cpu->r[29] = 0x00000000u;
|
|
/* 028D6CB4 */ cpu->r[12] = cpu->r[12] + 0xFFFFAAB8u;
|
|
/* 028D6CB8 */ _t9 = cpu->r[31] + 0x00000004u;
|
|
/* 028D6CB8 */ rbrew_write8(cpu->mem, _t9, (uint8_t)cpu->r[29]);
|
|
/* 028D6CBC */ cpu->r[30] = cpu->r[31] + 0x00000008u;
|
|
/* 028D6CBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D6CC0 */ _t10 = cpu->r[31] + 0x00000000u;
|
|
/* 028D6CC0 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028D6CC4 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6CC4 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D6CC4 */ if (_t12) goto L_028D6CC8; else goto L_028D6CD8;
|
|
L_028D6CC8: ; // 0x28d6cc8
|
|
/* 028D6CC8 */ cpu->r[3] = 0x00000018u;
|
|
/* 028D6CCC */ Gambit_fn_02801A78(cpu);
|
|
/* 028D6CD0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D6CD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D6CD4 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6CD4 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D6CD4 */ if (_t14) goto L_028D6D08; else goto L_028D6CD8;
|
|
L_028D6CD8: ; // 0x28d6cd8
|
|
/* 028D6CD8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D6CD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D6CDC */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6CDC */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D6CDC */ if (_t16) goto L_028D6CE0; else goto L_028D6CF0;
|
|
L_028D6CE0: ; // 0x28d6ce0
|
|
/* 028D6CE0 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028D6CE4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D6CE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D6CEC */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6CEC */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D6CEC */ if (_t18) goto L_028D6CFC; else goto L_028D6CF0;
|
|
L_028D6CF0: ; // 0x28d6cf0
|
|
/* 028D6CF0 */ _t19 = cpu->r[3] + 0x00000004u;
|
|
/* 028D6CF0 */ rbrew_write32(cpu->mem, _t19, cpu->r[3]);
|
|
/* 028D6CF4 */ _t20 = cpu->r[3] + 0x00000008u;
|
|
/* 028D6CF4 */ rbrew_write32(cpu->mem, _t20, cpu->r[29]);
|
|
/* 028D6CF8 */ _t21 = cpu->r[3] + 0x00000000u;
|
|
/* 028D6CF8 */ rbrew_write32(cpu->mem, _t21, cpu->r[3]);
|
|
L_028D6CFC: ; // 0x28d6cfc
|
|
/* 028D6CFC */ _t22 = cpu->r[30] + 0x00000010u;
|
|
/* 028D6CFC */ rbrew_write32(cpu->mem, _t22, cpu->r[29]);
|
|
/* 028D6D00 */ _t23 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028D6D00 */ rbrew_write32(cpu->mem, _t23, cpu->r[29]);
|
|
/* 028D6D04 */ _t24 = cpu->r[30] + 0x00000014u;
|
|
/* 028D6D04 */ rbrew_write32(cpu->mem, _t24, cpu->r[29]);
|
|
L_028D6D08: ; // 0x28d6d08
|
|
/* 028D6D08 */ cpu->r[30] = cpu->r[31] + 0x00000020u;
|
|
/* 028D6D08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D6D0C */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6D0C */ _t26 = _t25 & 0x00000001u;
|
|
/* 028D6D0C */ if (_t26) goto L_028D6D10; else goto L_028D6D20;
|
|
L_028D6D10: ; // 0x28d6d10
|
|
/* 028D6D10 */ cpu->r[3] = 0x00000010u;
|
|
/* 028D6D14 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D6D18 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D6D18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D6D1C */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6D1C */ _t28 = _t27 & 0x00000001u;
|
|
/* 028D6D1C */ if (_t28) goto L_028D6D4C; else goto L_028D6D20;
|
|
L_028D6D20: ; // 0x28d6d20
|
|
/* 028D6D20 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D6D20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D6D24 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6D24 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028D6D24 */ if (_t30) goto L_028D6D28; else goto L_028D6D38;
|
|
L_028D6D28: ; // 0x28d6d28
|
|
/* 028D6D28 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028D6D2C */ Gambit_fn_02801A78(cpu);
|
|
/* 028D6D30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D6D34 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6D34 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028D6D34 */ if (_t32) goto L_028D6D44; else goto L_028D6D38;
|
|
L_028D6D38: ; // 0x28d6d38
|
|
/* 028D6D38 */ _t33 = cpu->r[3] + 0x00000004u;
|
|
/* 028D6D38 */ rbrew_write32(cpu->mem, _t33, cpu->r[3]);
|
|
/* 028D6D3C */ _t34 = cpu->r[3] + 0x00000008u;
|
|
/* 028D6D3C */ rbrew_write32(cpu->mem, _t34, cpu->r[29]);
|
|
/* 028D6D40 */ _t35 = cpu->r[3] + 0x00000000u;
|
|
/* 028D6D40 */ rbrew_write32(cpu->mem, _t35, cpu->r[3]);
|
|
L_028D6D44: ; // 0x28d6d44
|
|
/* 028D6D44 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028D6D48 */ _t36 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028D6D48 */ rbrew_write32(cpu->mem, _t36, cpu->r[0]);
|
|
L_028D6D4C: ; // 0x28d6d4c
|
|
/* 028D6D4C */ _t37 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6D4C */ cpu->r[29] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028D6D50 */ _t38 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D6D50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028D6D54 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D6D58 */ _t39 = cpu->r[1] + 0x00000010u;
|
|
/* 028D6D58 */ cpu->r[30] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028D6D5C */ cpu->lr = cpu->r[0];
|
|
/* 028D6D60 */ _t40 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6D60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028D6D64 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D6D68 */ return;
|
|
}
|
|
|
|
// fn_028D6D6C @ 0x28d6d6c
|
|
void Gambit_fn_028D6D6C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26;
|
|
|
|
L_028D6D6C: ; // 0x28d6d6c
|
|
/* 028D6D6C */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028D6D6C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D6D6C */ cpu->r[1] = _t0;
|
|
/* 028D6D70 */ /* nop */
|
|
/* 028D6D74 */ cpu->r[0] = cpu->lr;
|
|
/* 028D6D78 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028D6D78 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D6D7C */ cpu->r[30] = cpu->r[3];
|
|
/* 028D6D80 */ _t2 = cpu->r[30] + 0x00000004u;
|
|
/* 028D6D80 */ cpu->r[0] = rbrew_read8(cpu->mem, _t2);
|
|
/* 028D6D84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D6D88 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6D88 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D6D88 */ if (_t4) goto L_028D6E18; else goto L_028D6D8C;
|
|
L_028D6D8C: ; // 0x28d6d8c
|
|
/* 028D6D8C */ _t5 = cpu->r[30] + 0x00000018u;
|
|
/* 028D6D8C */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D6D90 */ cpu->r[26] = cpu->r[30] + 0x00000008u;
|
|
/* 028D6D94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028D6D98 */ cpu->r[28] = 0x00000000u;
|
|
/* 028D6D9C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6D9C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D6D9C */ if (_t7) goto L_028D6E0C; else goto L_028D6DA0;
|
|
L_028D6DA0: ; // 0x28d6da0
|
|
/* 028D6DA0 */ _t8 = cpu->r[26] + 0x00000004u;
|
|
/* 028D6DA0 */ cpu->r[27] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D6DA4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[26]);
|
|
/* 028D6DA8 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6DA8 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D6DA8 */ if (_t10) goto L_028D6DF8; else goto L_028D6DAC;
|
|
L_028D6DAC: ; // 0x28d6dac
|
|
/* 028D6DAC */ _t11 = cpu->r[27] + 0x00000004u;
|
|
/* 028D6DAC */ cpu->r[29] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D6DB0 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D6DB4 */ Gambit_fn_02801EDC(cpu);
|
|
/* 028D6DB8 */ _t12 = cpu->r[26] + 0x00000008u;
|
|
/* 028D6DB8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D6DBC */ cpu->r[10] = cpu->r[10] + 0xFFFFFFFFu;
|
|
/* 028D6DC0 */ _t13 = cpu->r[26] + 0x00000008u;
|
|
/* 028D6DC0 */ rbrew_write32(cpu->mem, _t13, cpu->r[10]);
|
|
/* 028D6DC4 */ _t14 = cpu->r[27] + 0xFFFFFE88u;
|
|
/* 028D6DC4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D6DC8 */ _t15 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028D6DC8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D6DCC */ cpu->r[31] = cpu->r[27] + 0xFFFFFE80u;
|
|
/* 028D6DD0 */ cpu->ctr = cpu->r[12];
|
|
/* 028D6DD4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D6DD8 */ cpu->r[4] = 0x00000002u;
|
|
/* 028D6DDC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D6DE0 */ _t16 = cpu->r[26] + 0x0000000Cu;
|
|
/* 028D6DE0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D6DE4 */ _t17 = cpu->r[27] + 0xFFFFFE80u;
|
|
/* 028D6DE4 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 028D6DE8 */ cpu->r[27] = cpu->r[29];
|
|
/* 028D6DEC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[26]);
|
|
/* 028D6DF0 */ _t18 = cpu->r[26] + 0x0000000Cu;
|
|
/* 028D6DF0 */ rbrew_write32(cpu->mem, _t18, cpu->r[31]);
|
|
/* 028D6DF4 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6DF4 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028D6DF4 */ if (_t20) goto L_028D6DF8; else goto L_028D6DAC;
|
|
L_028D6DF8: ; // 0x28d6df8
|
|
/* 028D6DF8 */ _t21 = cpu->r[26] + 0x00000010u;
|
|
/* 028D6DF8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D6DFC */ Gambit_fn_02801BB4(cpu);
|
|
/* 028D6E00 */ _t22 = cpu->r[26] + 0x0000000Cu;
|
|
/* 028D6E00 */ rbrew_write32(cpu->mem, _t22, cpu->r[28]);
|
|
/* 028D6E04 */ _t23 = cpu->r[26] + 0x00000014u;
|
|
/* 028D6E04 */ rbrew_write32(cpu->mem, _t23, cpu->r[28]);
|
|
/* 028D6E08 */ _t24 = cpu->r[26] + 0x00000010u;
|
|
/* 028D6E08 */ rbrew_write32(cpu->mem, _t24, cpu->r[28]);
|
|
L_028D6E0C: ; // 0x28d6e0c
|
|
/* 028D6E0C */ cpu->r[3] = cpu->r[30] + 0x00000020u;
|
|
/* 028D6E10 */ Gambit_fn_0280236C(cpu);
|
|
/* 028D6E14 */ _t25 = cpu->r[30] + 0x00000004u;
|
|
/* 028D6E14 */ rbrew_write8(cpu->mem, _t25, (uint8_t)cpu->r[28]);
|
|
L_028D6E18: ; // 0x28d6e18
|
|
/* 028D6E18 */ /* nop */
|
|
/* 028D6E1C */ _t26 = cpu->r[1] + 0x00000024u;
|
|
/* 028D6E1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D6E20 */ cpu->lr = cpu->r[0];
|
|
/* 028D6E24 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028D6E28 */ return;
|
|
}
|
|
|
|
// fn_028D6E2C @ 0x28d6e2c
|
|
void Gambit_fn_028D6E2C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028D6E2C: ; // 0x28d6e2c
|
|
/* 028D6E2C */ cpu->r[0] = cpu->lr;
|
|
/* 028D6E30 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D6E30 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D6E30 */ cpu->r[1] = _t0;
|
|
/* 028D6E34 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D6E34 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D6E38 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6E38 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D6E3C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D6E3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D6E40 */ cpu->r[30] = cpu->r[4];
|
|
/* 028D6E44 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6E44 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D6E48 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6E48 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D6E48 */ if (_t5) goto L_028D6E70; else goto L_028D6E4C;
|
|
L_028D6E4C: ; // 0x28d6e4c
|
|
/* 028D6E4C */ cpu->r[0] = 0x10140000u;
|
|
/* 028D6E50 */ cpu->r[0] = cpu->r[0] + 0xFFFFAAB8u;
|
|
/* 028D6E54 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D6E58 */ _t6 = cpu->r[31] + 0x00000000u;
|
|
/* 028D6E58 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028D6E5C */ Gambit_fn_028D6D6C(cpu);
|
|
/* 028D6E60 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D6E60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D6E64 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6E64 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D6E64 */ if (_t8) goto L_028D6E70; else goto L_028D6E68;
|
|
L_028D6E68: ; // 0x28d6e68
|
|
/* 028D6E68 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D6E6C */ Gambit_fn_02801BB0(cpu);
|
|
L_028D6E70: ; // 0x28d6e70
|
|
/* 028D6E70 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6E70 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D6E74 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028D6E74 */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D6E78 */ cpu->lr = cpu->r[0];
|
|
/* 028D6E7C */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6E7C */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D6E80 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D6E84 */ return;
|
|
}
|
|
|
|
// fn_028D6E30 @ 0x28d6e30
|
|
void Gambit_fn_028D6E30(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028D6E30: ; // 0x28d6e30
|
|
/* 028D6E30 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D6E30 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D6E30 */ cpu->r[1] = _t0;
|
|
/* 028D6E34 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D6E34 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D6E38 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6E38 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D6E3C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D6E3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D6E40 */ cpu->r[30] = cpu->r[4];
|
|
/* 028D6E44 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6E44 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D6E48 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6E48 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D6E48 */ if (_t5) goto L_028D6E70; else goto L_028D6E4C;
|
|
L_028D6E4C: ; // 0x28d6e4c
|
|
/* 028D6E4C */ cpu->r[0] = 0x10140000u;
|
|
/* 028D6E50 */ cpu->r[0] = cpu->r[0] + 0xFFFFAAB8u;
|
|
/* 028D6E54 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D6E58 */ _t6 = cpu->r[31] + 0x00000000u;
|
|
/* 028D6E58 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028D6E5C */ Gambit_fn_028D6D6C(cpu);
|
|
/* 028D6E60 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D6E60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D6E64 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6E64 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D6E64 */ if (_t8) goto L_028D6E70; else goto L_028D6E68;
|
|
L_028D6E68: ; // 0x28d6e68
|
|
/* 028D6E68 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D6E6C */ Gambit_fn_02801BB0(cpu);
|
|
L_028D6E70: ; // 0x28d6e70
|
|
/* 028D6E70 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6E70 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D6E74 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028D6E74 */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D6E78 */ cpu->lr = cpu->r[0];
|
|
/* 028D6E7C */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6E7C */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D6E80 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D6E84 */ return;
|
|
}
|
|
|
|
// fn_028D6E88 @ 0x28d6e88
|
|
void Gambit_fn_028D6E88(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27;
|
|
|
|
L_028D6E88: ; // 0x28d6e88
|
|
/* 028D6E88 */ cpu->r[0] = cpu->lr;
|
|
/* 028D6E8C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D6E8C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D6E8C */ cpu->r[1] = _t0;
|
|
/* 028D6E90 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6E90 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028D6E94 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028D6E94 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D6E98 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6E98 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D6E9C */ cpu->r[30] = cpu->r[3];
|
|
/* 028D6EA0 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D6EA0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D6EA4 */ _t5 = cpu->r[30] + 0x00000004u;
|
|
/* 028D6EA4 */ cpu->r[0] = rbrew_read8(cpu->mem, _t5);
|
|
/* 028D6EA8 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D6EAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D6EB0 */ cpu->r[4] = cpu->r[5];
|
|
/* 028D6EB4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6EB4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D6EB4 */ if (_t7) goto L_028D6EB8; else goto L_028D6F24;
|
|
L_028D6EB8: ; // 0x28d6eb8
|
|
/* 028D6EB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D6EBC */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D6EBC */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D6EBC */ if (_t9) goto L_028D6EC0; else goto L_028D6F14;
|
|
L_028D6EC0: ; // 0x28d6ec0
|
|
/* 028D6EC0 */ cpu->r[29] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x00000188u);
|
|
/* 028D6EC4 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D6EC8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D6ECC */ Gambit_fn_02801ADC(cpu);
|
|
/* 028D6ED0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D6ED4 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6ED4 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D6ED4 */ if (_t11) goto L_028D6F14; else goto L_028D6ED8;
|
|
L_028D6ED8: ; // 0x28d6ed8
|
|
/* 028D6ED8 */ cpu->r[7] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028D6ED8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028D6EDC */ _t12 = cpu->r[30] + 0x00000014u;
|
|
/* 028D6EDC */ rbrew_write32(cpu->mem, _t12, cpu->r[3]);
|
|
/* 028D6EE0 */ _t13 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D6EE0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D6EE0 */ if (_t14) goto L_028D6EE4; else goto L_028D6F00;
|
|
L_028D6EE4: ; // 0x28d6ee4
|
|
/* 028D6EE4 */ cpu->ctr = cpu->r[7];
|
|
/* 028D6EE8 */ cpu->r[9] = 0x00000000u;
|
|
/* 028D6EEC */ cpu->r[11] = cpu->r[3] + 0x00000188u;
|
|
L_028D6EF0: ; // 0x28d6ef0
|
|
/* 028D6EF0 */ _t15 = cpu->r[3] + cpu->r[9];
|
|
/* 028D6EF0 */ rbrew_write32(cpu->mem, _t15, cpu->r[11]);
|
|
/* 028D6EF4 */ cpu->r[9] = cpu->r[9] + 0x00000188u;
|
|
/* 028D6EF8 */ cpu->r[11] = cpu->r[11] + 0x00000188u;
|
|
/* 028D6EFC */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028D6EFC */ _t16 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028D6EFC */ _t17 = _t16 >> (0x00000002u & 31u);
|
|
/* 028D6EFC */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D6EFC */ if (_t18) goto L_028D6EF0; else goto L_028D6F00;
|
|
L_028D6F00: ; // 0x28d6f00
|
|
/* 028D6F00 */ cpu->r[6] = cpu->r[3] + cpu->r[29];
|
|
/* 028D6F04 */ cpu->r[8] = 0x00000000u;
|
|
/* 028D6F08 */ _t19 = cpu->r[6] + 0xFFFFFE78u;
|
|
/* 028D6F08 */ rbrew_write32(cpu->mem, _t19, cpu->r[8]);
|
|
/* 028D6F0C */ _t20 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028D6F0C */ rbrew_write32(cpu->mem, _t20, cpu->r[31]);
|
|
/* 028D6F10 */ _t21 = cpu->r[30] + 0x00000018u;
|
|
/* 028D6F10 */ rbrew_write32(cpu->mem, _t21, cpu->r[3]);
|
|
L_028D6F14: ; // 0x28d6f14
|
|
/* 028D6F14 */ cpu->r[10] = 0x00000040u;
|
|
/* 028D6F18 */ cpu->r[0] = 0x00000001u;
|
|
/* 028D6F1C */ _t22 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028D6F1C */ rbrew_write32(cpu->mem, _t22, cpu->r[10]);
|
|
/* 028D6F20 */ _t23 = cpu->r[30] + 0x00000004u;
|
|
/* 028D6F20 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[0]);
|
|
L_028D6F24: ; // 0x28d6f24
|
|
/* 028D6F24 */ _t24 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6F24 */ cpu->r[29] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D6F28 */ _t25 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D6F28 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D6F2C */ _t26 = cpu->r[1] + 0x00000010u;
|
|
/* 028D6F2C */ cpu->r[30] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D6F30 */ cpu->lr = cpu->r[0];
|
|
/* 028D6F34 */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6F34 */ cpu->r[31] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D6F38 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D6F3C */ return;
|
|
}
|
|
|
|
// fn_028D6E8C @ 0x28d6e8c
|
|
void Gambit_fn_028D6E8C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27;
|
|
|
|
L_028D6E8C: ; // 0x28d6e8c
|
|
/* 028D6E8C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D6E8C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D6E8C */ cpu->r[1] = _t0;
|
|
/* 028D6E90 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6E90 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028D6E94 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028D6E94 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D6E98 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6E98 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D6E9C */ cpu->r[30] = cpu->r[3];
|
|
/* 028D6EA0 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D6EA0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D6EA4 */ _t5 = cpu->r[30] + 0x00000004u;
|
|
/* 028D6EA4 */ cpu->r[0] = rbrew_read8(cpu->mem, _t5);
|
|
/* 028D6EA8 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D6EAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D6EB0 */ cpu->r[4] = cpu->r[5];
|
|
/* 028D6EB4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6EB4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D6EB4 */ if (_t7) goto L_028D6EB8; else goto L_028D6F24;
|
|
L_028D6EB8: ; // 0x28d6eb8
|
|
/* 028D6EB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D6EBC */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D6EBC */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D6EBC */ if (_t9) goto L_028D6EC0; else goto L_028D6F14;
|
|
L_028D6EC0: ; // 0x28d6ec0
|
|
/* 028D6EC0 */ cpu->r[29] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x00000188u);
|
|
/* 028D6EC4 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D6EC8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D6ECC */ Gambit_fn_02801ADC(cpu);
|
|
/* 028D6ED0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D6ED4 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6ED4 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D6ED4 */ if (_t11) goto L_028D6F14; else goto L_028D6ED8;
|
|
L_028D6ED8: ; // 0x28d6ed8
|
|
/* 028D6ED8 */ cpu->r[7] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028D6ED8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028D6EDC */ _t12 = cpu->r[30] + 0x00000014u;
|
|
/* 028D6EDC */ rbrew_write32(cpu->mem, _t12, cpu->r[3]);
|
|
/* 028D6EE0 */ _t13 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D6EE0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D6EE0 */ if (_t14) goto L_028D6EE4; else goto L_028D6F00;
|
|
L_028D6EE4: ; // 0x28d6ee4
|
|
/* 028D6EE4 */ cpu->ctr = cpu->r[7];
|
|
/* 028D6EE8 */ cpu->r[9] = 0x00000000u;
|
|
/* 028D6EEC */ cpu->r[11] = cpu->r[3] + 0x00000188u;
|
|
L_028D6EF0: ; // 0x28d6ef0
|
|
/* 028D6EF0 */ _t15 = cpu->r[3] + cpu->r[9];
|
|
/* 028D6EF0 */ rbrew_write32(cpu->mem, _t15, cpu->r[11]);
|
|
/* 028D6EF4 */ cpu->r[9] = cpu->r[9] + 0x00000188u;
|
|
/* 028D6EF8 */ cpu->r[11] = cpu->r[11] + 0x00000188u;
|
|
/* 028D6EFC */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028D6EFC */ _t16 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028D6EFC */ _t17 = _t16 >> (0x00000002u & 31u);
|
|
/* 028D6EFC */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D6EFC */ if (_t18) goto L_028D6EF0; else goto L_028D6F00;
|
|
L_028D6F00: ; // 0x28d6f00
|
|
/* 028D6F00 */ cpu->r[6] = cpu->r[3] + cpu->r[29];
|
|
/* 028D6F04 */ cpu->r[8] = 0x00000000u;
|
|
/* 028D6F08 */ _t19 = cpu->r[6] + 0xFFFFFE78u;
|
|
/* 028D6F08 */ rbrew_write32(cpu->mem, _t19, cpu->r[8]);
|
|
/* 028D6F0C */ _t20 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028D6F0C */ rbrew_write32(cpu->mem, _t20, cpu->r[31]);
|
|
/* 028D6F10 */ _t21 = cpu->r[30] + 0x00000018u;
|
|
/* 028D6F10 */ rbrew_write32(cpu->mem, _t21, cpu->r[3]);
|
|
L_028D6F14: ; // 0x28d6f14
|
|
/* 028D6F14 */ cpu->r[10] = 0x00000040u;
|
|
/* 028D6F18 */ cpu->r[0] = 0x00000001u;
|
|
/* 028D6F1C */ _t22 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028D6F1C */ rbrew_write32(cpu->mem, _t22, cpu->r[10]);
|
|
/* 028D6F20 */ _t23 = cpu->r[30] + 0x00000004u;
|
|
/* 028D6F20 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[0]);
|
|
L_028D6F24: ; // 0x28d6f24
|
|
/* 028D6F24 */ _t24 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D6F24 */ cpu->r[29] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D6F28 */ _t25 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D6F28 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D6F2C */ _t26 = cpu->r[1] + 0x00000010u;
|
|
/* 028D6F2C */ cpu->r[30] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D6F30 */ cpu->lr = cpu->r[0];
|
|
/* 028D6F34 */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 028D6F34 */ cpu->r[31] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D6F38 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D6F3C */ return;
|
|
}
|
|
|
|
// fn_028D6F40 @ 0x28d6f40
|
|
void Gambit_fn_028D6F40(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37;
|
|
|
|
L_028D6F40: ; // 0x28d6f40
|
|
/* 028D6F40 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028D6F40 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D6F40 */ cpu->r[1] = _t0;
|
|
/* 028D6F44 */ /* nop */
|
|
/* 028D6F48 */ cpu->r[0] = cpu->lr;
|
|
/* 028D6F4C */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028D6F4C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D6F50 */ _t2 = cpu->r[3] + 0x00000018u;
|
|
/* 028D6F50 */ cpu->r[8] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028D6F54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028D6F58 */ cpu->r[28] = cpu->r[4];
|
|
/* 028D6F5C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6F5C */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D6F5C */ if (_t4) goto L_028D7038; else goto L_028D6F60;
|
|
L_028D6F60: ; // 0x28d6f60
|
|
/* 028D6F60 */ _t5 = cpu->r[3] + 0x00000010u;
|
|
/* 028D6F60 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D6F64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D6F68 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6F68 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D6F68 */ if (_t7) goto L_028D7038; else goto L_028D6F6C;
|
|
L_028D6F6C: ; // 0x28d6f6c
|
|
/* 028D6F6C */ _t8 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028D6F6C */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D6F70 */ cpu->r[27] = cpu->r[3] + 0xFFFFFE88u;
|
|
/* 028D6F74 */ cpu->r[30] = cpu->r[11] + 0xFFFFFE80u;
|
|
/* 028D6F78 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[27]);
|
|
/* 028D6F7C */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6F7C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D6F7C */ if (_t10) goto L_028D7038; else goto L_028D6F80;
|
|
L_028D6F80: ; // 0x28d6f80
|
|
/* 028D6F80 */ cpu->r[31] = 0x10110000u;
|
|
/* 028D6F84 */ cpu->r[26] = 0x00080000u;
|
|
/* 028D6F88 */ _t11 = cpu->r[31] + 0x00007399u;
|
|
/* 028D6F88 */ cpu->r[31] = rbrew_read8(cpu->mem, _t11);
|
|
/* 028D6F8C */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
L_028D6F90: ; // 0x28d6f90
|
|
/* 028D6F90 */ _t12 = cpu->r[30] + 0x00000004u;
|
|
/* 028D6F90 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D6F94 */ _t13 = cpu->r[12] + 0x00000014u;
|
|
/* 028D6F94 */ cpu->r[7] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D6F98 */ cpu->ctr = cpu->r[7];
|
|
/* 028D6F9C */ cpu->r[3] = cpu->r[30];
|
|
/* 028D6FA0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D6FA4 */ _t14 = cpu->r[30] + 0x00000004u;
|
|
/* 028D6FA4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D6FA8 */ _t15 = cpu->r[9] + 0x00000014u;
|
|
/* 028D6FA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D6FAC */ cpu->ctr = cpu->r[0];
|
|
/* 028D6FB0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D6FB4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D6FB8 */ _t16 = cpu->r[28] + 0x00000004u;
|
|
/* 028D6FB8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D6FBC */ _t17 = cpu->r[11] + 0x00000014u;
|
|
/* 028D6FBC */ cpu->r[5] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D6FC0 */ cpu->ctr = cpu->r[5];
|
|
/* 028D6FC4 */ _t18 = cpu->r[30] + 0x00000000u;
|
|
/* 028D6FC4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D6FC8 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D6FCC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D6FD0 */ _t19 = cpu->r[28] + 0x00000000u;
|
|
/* 028D6FD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D6FD4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 028D6FD8 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6FD8 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028D6FD8 */ if (_t21) goto L_028D7010; else goto L_028D6FDC;
|
|
L_028D6FDC: ; // 0x28d6fdc
|
|
/* 028D6FDC */ _t22 = cpu->r[30] + 0x00000000u;
|
|
/* 028D6FDC */ cpu->r[8] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D6FE0 */ _t23 = cpu->r[28] + 0x00000000u;
|
|
/* 028D6FE0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D6FE4 */ cpu->r[8] = cpu->r[8] + 0xFFFFFFFFu;
|
|
/* 028D6FE8 */ cpu->ctr = cpu->r[26];
|
|
/* 028D6FEC */ cpu->r[6] = cpu->r[6] + 0xFFFFFFFFu;
|
|
L_028D6FF0: ; // 0x28d6ff0
|
|
/* 028D6FF0 */ _t24 = cpu->r[8] + 0x00000001u;
|
|
/* 028D6FF0 */ cpu->r[0] = rbrew_read8(cpu->mem, _t24);
|
|
/* 028D6FF0 */ cpu->r[8] = _t24;
|
|
/* 028D6FF4 */ _t25 = cpu->r[6] + 0x00000001u;
|
|
/* 028D6FF4 */ cpu->r[7] = rbrew_read8(cpu->mem, _t25);
|
|
/* 028D6FF4 */ cpu->r[6] = _t25;
|
|
/* 028D6FF8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[7]);
|
|
/* 028D6FFC */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D6FFC */ _t27 = _t26 & 0x00000001u;
|
|
/* 028D6FFC */ if (_t27) goto L_028D7000; else goto L_028D7028;
|
|
L_028D7000: ; // 0x28d7000
|
|
/* 028D7000 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[31]);
|
|
/* 028D7004 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7004 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028D7004 */ if (_t29) goto L_028D7010; else goto L_028D7008;
|
|
L_028D7008: ; // 0x28d7008
|
|
/* 028D7008 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028D7008 */ _t30 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028D7008 */ _t31 = _t30 >> (0x00000002u & 31u);
|
|
/* 028D7008 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028D7008 */ if (_t32) goto L_028D6FF0; else goto L_028D700C;
|
|
L_028D700C: ; // 0x28d700c
|
|
/* 028D700C */ goto L_028D7028;
|
|
L_028D7010: ; // 0x28d7010
|
|
/* 028D7010 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D7014 */ /* nop */
|
|
/* 028D7018 */ _t33 = cpu->r[1] + 0x00000024u;
|
|
/* 028D7018 */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028D701C */ cpu->lr = cpu->r[0];
|
|
/* 028D7020 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028D7024 */ return;
|
|
L_028D7028: ; // 0x28d7028
|
|
/* 028D7028 */ _t34 = cpu->r[30] + 0x00000184u;
|
|
/* 028D7028 */ cpu->r[9] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028D702C */ cpu->r[30] = cpu->r[9] + 0xFFFFFE80u;
|
|
/* 028D7030 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[27]);
|
|
/* 028D7034 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7034 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028D7034 */ if (_t36) goto L_028D7038; else goto L_028D6F90;
|
|
L_028D7038: ; // 0x28d7038
|
|
/* 028D7038 */ /* nop */
|
|
/* 028D703C */ _t37 = cpu->r[1] + 0x00000024u;
|
|
/* 028D703C */ cpu->r[0] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028D7040 */ cpu->lr = cpu->r[0];
|
|
/* 028D7044 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028D7048 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D704C */ return;
|
|
}
|
|
|
|
// fn_028D7050 @ 0x28d7050
|
|
void Gambit_fn_028D7050(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43;
|
|
|
|
L_028D7050: ; // 0x28d7050
|
|
/* 028D7050 */ cpu->r[0] = cpu->lr;
|
|
/* 028D7054 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D7054 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D7054 */ cpu->r[1] = _t0;
|
|
/* 028D7058 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7058 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028D705C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028D705C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D7060 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7060 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D7064 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D7064 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D7068 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D706C */ _t5 = cpu->r[29] + 0x00000018u;
|
|
/* 028D706C */ cpu->r[8] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D7070 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028D7074 */ cpu->r[30] = cpu->r[4];
|
|
/* 028D7078 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7078 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D7078 */ if (_t7) goto L_028D715C; else goto L_028D707C;
|
|
L_028D707C: ; // 0x28d707c
|
|
/* 028D707C */ cpu->r[3] = cpu->r[29];
|
|
/* 028D7080 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D7084 */ Gambit_fn_028D6F40(cpu);
|
|
/* 028D7088 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D708C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D708C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D708C */ if (_t9) goto L_028D7090; else goto L_028D715C;
|
|
L_028D7090: ; // 0x28d7090
|
|
/* 028D7090 */ _t10 = cpu->r[30] + 0x00000000u;
|
|
/* 028D7090 */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D7094 */ cpu->r[11] = 0x10110000u;
|
|
/* 028D7098 */ _t11 = cpu->r[11] + 0x00007399u;
|
|
/* 028D7098 */ cpu->r[10] = rbrew_read8(cpu->mem, _t11);
|
|
/* 028D709C */ _t12 = cpu->r[12] + 0x00000000u;
|
|
/* 028D709C */ cpu->r[9] = rbrew_read8(cpu->mem, _t12);
|
|
/* 028D70A0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[10]);
|
|
/* 028D70A4 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D70A4 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D70A4 */ if (_t14) goto L_028D715C; else goto L_028D70A8;
|
|
L_028D70A8: ; // 0x28d70a8
|
|
/* 028D70A8 */ _t15 = cpu->r[29] + 0x00000010u;
|
|
/* 028D70A8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D70AC */ _t16 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028D70AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D70B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], cpu->r[0]);
|
|
/* 028D70B4 */ _t17 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D70B4 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D70B4 */ if (_t18) goto L_028D70B8; else goto L_028D715C;
|
|
L_028D70B8: ; // 0x28d70b8
|
|
/* 028D70B8 */ _t19 = cpu->r[29] + 0x00000014u;
|
|
/* 028D70B8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D70BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D70C0 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D70C0 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028D70C0 */ if (_t21) goto L_028D70CC; else goto L_028D70C4;
|
|
L_028D70C4: ; // 0x28d70c4
|
|
/* 028D70C4 */ _t22 = cpu->r[31] + 0x00000000u;
|
|
/* 028D70C4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D70C8 */ _t23 = cpu->r[29] + 0x00000014u;
|
|
/* 028D70C8 */ rbrew_write32(cpu->mem, _t23, cpu->r[5]);
|
|
L_028D70CC: ; // 0x28d70cc
|
|
/* 028D70CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D70D0 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D70D0 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D70D0 */ if (_t25) goto L_028D7140; else goto L_028D70D4;
|
|
L_028D70D4: ; // 0x28d70d4
|
|
/* 028D70D4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D70D8 */ Gambit_fn_028D62AC(cpu);
|
|
/* 028D70DC */ cpu->r[0] = 0x00000000u;
|
|
/* 028D70E0 */ cpu->r[3] = cpu->r[29] + 0x00000008u;
|
|
/* 028D70E4 */ _t26 = cpu->r[31] + 0x00000184u;
|
|
/* 028D70E4 */ rbrew_write32(cpu->mem, _t26, cpu->r[0]);
|
|
/* 028D70E8 */ cpu->r[4] = cpu->r[31] + 0x00000180u;
|
|
/* 028D70EC */ _t27 = cpu->r[31] + 0x00000180u;
|
|
/* 028D70EC */ rbrew_write32(cpu->mem, _t27, cpu->r[0]);
|
|
/* 028D70F0 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028D70F4 */ _t28 = cpu->r[29] + 0x00000010u;
|
|
/* 028D70F4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D70F8 */ cpu->r[9] = cpu->r[9] + 0x00000001u;
|
|
/* 028D70FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D7100 */ _t29 = cpu->r[29] + 0x00000010u;
|
|
/* 028D7100 */ rbrew_write32(cpu->mem, _t29, cpu->r[9]);
|
|
/* 028D7104 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7104 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028D7104 */ if (_t31) goto L_028D715C; else goto L_028D7108;
|
|
L_028D7108: ; // 0x28d7108
|
|
/* 028D7108 */ _t32 = cpu->r[31] + 0x00000008u;
|
|
/* 028D7108 */ cpu->r[10] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028D710C */ _t33 = cpu->r[10] + 0x00000014u;
|
|
/* 028D710C */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028D7110 */ cpu->ctr = cpu->r[0];
|
|
/* 028D7114 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D7118 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D711C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D7120 */ _t34 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7120 */ cpu->r[29] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028D7124 */ _t35 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D7124 */ cpu->r[0] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028D7128 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D712C */ _t36 = cpu->r[1] + 0x00000010u;
|
|
/* 028D712C */ cpu->r[30] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028D7130 */ cpu->lr = cpu->r[0];
|
|
/* 028D7134 */ _t37 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7134 */ cpu->r[31] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028D7138 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D713C */ return;
|
|
L_028D7140: ; // 0x28d7140
|
|
/* 028D7140 */ cpu->r[3] = cpu->r[29] + 0x00000008u;
|
|
/* 028D7144 */ cpu->r[4] = 0x00000180u;
|
|
/* 028D7148 */ cpu->r[31] = 0x00000000u;
|
|
/* 028D714C */ Gambit_fn_02801EBC(cpu);
|
|
/* 028D7150 */ _t38 = cpu->r[29] + 0x00000010u;
|
|
/* 028D7150 */ cpu->r[9] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028D7154 */ cpu->r[9] = cpu->r[9] + 0x00000001u;
|
|
/* 028D7158 */ _t39 = cpu->r[29] + 0x00000010u;
|
|
/* 028D7158 */ rbrew_write32(cpu->mem, _t39, cpu->r[9]);
|
|
L_028D715C: ; // 0x28d715c
|
|
/* 028D715C */ _t40 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D715C */ cpu->r[29] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028D7160 */ _t41 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D7160 */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028D7164 */ _t42 = cpu->r[1] + 0x00000010u;
|
|
/* 028D7164 */ cpu->r[30] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028D7168 */ cpu->lr = cpu->r[0];
|
|
/* 028D716C */ _t43 = cpu->r[1] + 0x00000014u;
|
|
/* 028D716C */ cpu->r[31] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028D7170 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D7174 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D7178 */ return;
|
|
}
|
|
|
|
// fn_028D7054 @ 0x28d7054
|
|
void Gambit_fn_028D7054(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43;
|
|
|
|
L_028D7054: ; // 0x28d7054
|
|
/* 028D7054 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D7054 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D7054 */ cpu->r[1] = _t0;
|
|
/* 028D7058 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7058 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028D705C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028D705C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D7060 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7060 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D7064 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D7064 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D7068 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D706C */ _t5 = cpu->r[29] + 0x00000018u;
|
|
/* 028D706C */ cpu->r[8] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D7070 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028D7074 */ cpu->r[30] = cpu->r[4];
|
|
/* 028D7078 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7078 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D7078 */ if (_t7) goto L_028D715C; else goto L_028D707C;
|
|
L_028D707C: ; // 0x28d707c
|
|
/* 028D707C */ cpu->r[3] = cpu->r[29];
|
|
/* 028D7080 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D7084 */ Gambit_fn_028D6F40(cpu);
|
|
/* 028D7088 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D708C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D708C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D708C */ if (_t9) goto L_028D7090; else goto L_028D715C;
|
|
L_028D7090: ; // 0x28d7090
|
|
/* 028D7090 */ _t10 = cpu->r[30] + 0x00000000u;
|
|
/* 028D7090 */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D7094 */ cpu->r[11] = 0x10110000u;
|
|
/* 028D7098 */ _t11 = cpu->r[11] + 0x00007399u;
|
|
/* 028D7098 */ cpu->r[10] = rbrew_read8(cpu->mem, _t11);
|
|
/* 028D709C */ _t12 = cpu->r[12] + 0x00000000u;
|
|
/* 028D709C */ cpu->r[9] = rbrew_read8(cpu->mem, _t12);
|
|
/* 028D70A0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[10]);
|
|
/* 028D70A4 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D70A4 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D70A4 */ if (_t14) goto L_028D715C; else goto L_028D70A8;
|
|
L_028D70A8: ; // 0x28d70a8
|
|
/* 028D70A8 */ _t15 = cpu->r[29] + 0x00000010u;
|
|
/* 028D70A8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D70AC */ _t16 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028D70AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D70B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], cpu->r[0]);
|
|
/* 028D70B4 */ _t17 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D70B4 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D70B4 */ if (_t18) goto L_028D70B8; else goto L_028D715C;
|
|
L_028D70B8: ; // 0x28d70b8
|
|
/* 028D70B8 */ _t19 = cpu->r[29] + 0x00000014u;
|
|
/* 028D70B8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D70BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D70C0 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D70C0 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028D70C0 */ if (_t21) goto L_028D70CC; else goto L_028D70C4;
|
|
L_028D70C4: ; // 0x28d70c4
|
|
/* 028D70C4 */ _t22 = cpu->r[31] + 0x00000000u;
|
|
/* 028D70C4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D70C8 */ _t23 = cpu->r[29] + 0x00000014u;
|
|
/* 028D70C8 */ rbrew_write32(cpu->mem, _t23, cpu->r[5]);
|
|
L_028D70CC: ; // 0x28d70cc
|
|
/* 028D70CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D70D0 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D70D0 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D70D0 */ if (_t25) goto L_028D7140; else goto L_028D70D4;
|
|
L_028D70D4: ; // 0x28d70d4
|
|
/* 028D70D4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D70D8 */ Gambit_fn_028D62AC(cpu);
|
|
/* 028D70DC */ cpu->r[0] = 0x00000000u;
|
|
/* 028D70E0 */ cpu->r[3] = cpu->r[29] + 0x00000008u;
|
|
/* 028D70E4 */ _t26 = cpu->r[31] + 0x00000184u;
|
|
/* 028D70E4 */ rbrew_write32(cpu->mem, _t26, cpu->r[0]);
|
|
/* 028D70E8 */ cpu->r[4] = cpu->r[31] + 0x00000180u;
|
|
/* 028D70EC */ _t27 = cpu->r[31] + 0x00000180u;
|
|
/* 028D70EC */ rbrew_write32(cpu->mem, _t27, cpu->r[0]);
|
|
/* 028D70F0 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028D70F4 */ _t28 = cpu->r[29] + 0x00000010u;
|
|
/* 028D70F4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028D70F8 */ cpu->r[9] = cpu->r[9] + 0x00000001u;
|
|
/* 028D70FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D7100 */ _t29 = cpu->r[29] + 0x00000010u;
|
|
/* 028D7100 */ rbrew_write32(cpu->mem, _t29, cpu->r[9]);
|
|
/* 028D7104 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7104 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028D7104 */ if (_t31) goto L_028D715C; else goto L_028D7108;
|
|
L_028D7108: ; // 0x28d7108
|
|
/* 028D7108 */ _t32 = cpu->r[31] + 0x00000008u;
|
|
/* 028D7108 */ cpu->r[10] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028D710C */ _t33 = cpu->r[10] + 0x00000014u;
|
|
/* 028D710C */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028D7110 */ cpu->ctr = cpu->r[0];
|
|
/* 028D7114 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D7118 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D711C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D7120 */ _t34 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7120 */ cpu->r[29] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028D7124 */ _t35 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D7124 */ cpu->r[0] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028D7128 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D712C */ _t36 = cpu->r[1] + 0x00000010u;
|
|
/* 028D712C */ cpu->r[30] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028D7130 */ cpu->lr = cpu->r[0];
|
|
/* 028D7134 */ _t37 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7134 */ cpu->r[31] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028D7138 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D713C */ return;
|
|
L_028D7140: ; // 0x28d7140
|
|
/* 028D7140 */ cpu->r[3] = cpu->r[29] + 0x00000008u;
|
|
/* 028D7144 */ cpu->r[4] = 0x00000180u;
|
|
/* 028D7148 */ cpu->r[31] = 0x00000000u;
|
|
/* 028D714C */ Gambit_fn_02801EBC(cpu);
|
|
/* 028D7150 */ _t38 = cpu->r[29] + 0x00000010u;
|
|
/* 028D7150 */ cpu->r[9] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028D7154 */ cpu->r[9] = cpu->r[9] + 0x00000001u;
|
|
/* 028D7158 */ _t39 = cpu->r[29] + 0x00000010u;
|
|
/* 028D7158 */ rbrew_write32(cpu->mem, _t39, cpu->r[9]);
|
|
L_028D715C: ; // 0x28d715c
|
|
/* 028D715C */ _t40 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D715C */ cpu->r[29] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028D7160 */ _t41 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D7160 */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028D7164 */ _t42 = cpu->r[1] + 0x00000010u;
|
|
/* 028D7164 */ cpu->r[30] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028D7168 */ cpu->lr = cpu->r[0];
|
|
/* 028D716C */ _t43 = cpu->r[1] + 0x00000014u;
|
|
/* 028D716C */ cpu->r[31] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028D7170 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D7174 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D7178 */ return;
|
|
}
|
|
|
|
// fn_028D717C @ 0x28d717c
|
|
void Gambit_fn_028D717C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028D717C: ; // 0x28d717c
|
|
/* 028D717C */ cpu->r[0] = cpu->lr;
|
|
/* 028D7180 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D7180 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D7180 */ cpu->r[1] = _t0;
|
|
/* 028D7184 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7184 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D7188 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7188 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D718C */ cpu->r[30] = cpu->r[3];
|
|
/* 028D7190 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7190 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D7194 */ _t4 = cpu->r[30] + 0x00000018u;
|
|
/* 028D7194 */ cpu->r[9] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D7198 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028D719C */ cpu->r[31] = cpu->r[4];
|
|
/* 028D71A0 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D71A0 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D71A0 */ if (_t6) goto L_028D71F0; else goto L_028D71A4;
|
|
L_028D71A4: ; // 0x28d71a4
|
|
/* 028D71A4 */ cpu->r[3] = cpu->r[30] + 0x00000008u;
|
|
/* 028D71A8 */ cpu->r[4] = cpu->r[31] + 0x00000180u;
|
|
/* 028D71AC */ Gambit_fn_02802290(cpu);
|
|
/* 028D71B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D71B4 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D71B4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D71B4 */ if (_t8) goto L_028D71F0; else goto L_028D71B8;
|
|
L_028D71B8: ; // 0x28d71b8
|
|
/* 028D71B8 */ cpu->r[3] = cpu->r[31] + 0x00000180u;
|
|
/* 028D71BC */ Gambit_fn_02801EDC(cpu);
|
|
/* 028D71C0 */ _t9 = cpu->r[30] + 0x00000010u;
|
|
/* 028D71C0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D71C4 */ cpu->r[10] = cpu->r[10] + 0xFFFFFFFFu;
|
|
/* 028D71C8 */ _t10 = cpu->r[30] + 0x00000010u;
|
|
/* 028D71C8 */ rbrew_write32(cpu->mem, _t10, cpu->r[10]);
|
|
/* 028D71CC */ _t11 = cpu->r[31] + 0x00000008u;
|
|
/* 028D71CC */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D71D0 */ _t12 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028D71D0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D71D4 */ cpu->ctr = cpu->r[12];
|
|
/* 028D71D8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D71DC */ cpu->r[4] = 0x00000002u;
|
|
/* 028D71E0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D71E4 */ _t13 = cpu->r[30] + 0x00000014u;
|
|
/* 028D71E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D71E8 */ _t14 = cpu->r[31] + 0x00000000u;
|
|
/* 028D71E8 */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
/* 028D71EC */ _t15 = cpu->r[30] + 0x00000014u;
|
|
/* 028D71EC */ rbrew_write32(cpu->mem, _t15, cpu->r[31]);
|
|
L_028D71F0: ; // 0x28d71f0
|
|
/* 028D71F0 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028D71F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D71F4 */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 028D71F4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D71F8 */ cpu->lr = cpu->r[0];
|
|
/* 028D71FC */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D71FC */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D7200 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D7204 */ return;
|
|
}
|
|
|
|
// fn_028D7180 @ 0x28d7180
|
|
void Gambit_fn_028D7180(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028D7180: ; // 0x28d7180
|
|
/* 028D7180 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D7180 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D7180 */ cpu->r[1] = _t0;
|
|
/* 028D7184 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7184 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D7188 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7188 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D718C */ cpu->r[30] = cpu->r[3];
|
|
/* 028D7190 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7190 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D7194 */ _t4 = cpu->r[30] + 0x00000018u;
|
|
/* 028D7194 */ cpu->r[9] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D7198 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028D719C */ cpu->r[31] = cpu->r[4];
|
|
/* 028D71A0 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D71A0 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D71A0 */ if (_t6) goto L_028D71F0; else goto L_028D71A4;
|
|
L_028D71A4: ; // 0x28d71a4
|
|
/* 028D71A4 */ cpu->r[3] = cpu->r[30] + 0x00000008u;
|
|
/* 028D71A8 */ cpu->r[4] = cpu->r[31] + 0x00000180u;
|
|
/* 028D71AC */ Gambit_fn_02802290(cpu);
|
|
/* 028D71B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D71B4 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D71B4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D71B4 */ if (_t8) goto L_028D71F0; else goto L_028D71B8;
|
|
L_028D71B8: ; // 0x28d71b8
|
|
/* 028D71B8 */ cpu->r[3] = cpu->r[31] + 0x00000180u;
|
|
/* 028D71BC */ Gambit_fn_02801EDC(cpu);
|
|
/* 028D71C0 */ _t9 = cpu->r[30] + 0x00000010u;
|
|
/* 028D71C0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D71C4 */ cpu->r[10] = cpu->r[10] + 0xFFFFFFFFu;
|
|
/* 028D71C8 */ _t10 = cpu->r[30] + 0x00000010u;
|
|
/* 028D71C8 */ rbrew_write32(cpu->mem, _t10, cpu->r[10]);
|
|
/* 028D71CC */ _t11 = cpu->r[31] + 0x00000008u;
|
|
/* 028D71CC */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D71D0 */ _t12 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028D71D0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D71D4 */ cpu->ctr = cpu->r[12];
|
|
/* 028D71D8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D71DC */ cpu->r[4] = 0x00000002u;
|
|
/* 028D71E0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D71E4 */ _t13 = cpu->r[30] + 0x00000014u;
|
|
/* 028D71E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D71E8 */ _t14 = cpu->r[31] + 0x00000000u;
|
|
/* 028D71E8 */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
/* 028D71EC */ _t15 = cpu->r[30] + 0x00000014u;
|
|
/* 028D71EC */ rbrew_write32(cpu->mem, _t15, cpu->r[31]);
|
|
L_028D71F0: ; // 0x28d71f0
|
|
/* 028D71F0 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028D71F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D71F4 */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 028D71F4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D71F8 */ cpu->lr = cpu->r[0];
|
|
/* 028D71FC */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D71FC */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D7200 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D7204 */ return;
|
|
}
|
|
|
|
// fn_028D7208 @ 0x28d7208
|
|
void Gambit_fn_028D7208(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_02802290: ; // 0x2802290
|
|
/* 02802290 */ _t0 = cpu->r[3] + 0x00000004u;
|
|
/* 02802290 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 02802294 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[3]);
|
|
/* 02802298 */ cpu->r[12] = 0x00000000u;
|
|
/* 0280229C */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0280229C */ _t2 = _t1 & 0x00000001u;
|
|
/* 0280229C */ if (_t2) goto L_028022B8; else goto L_028022A0;
|
|
L_028022A0: ; // 0x28022a0
|
|
/* 028022A0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[4]);
|
|
/* 028022A4 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028022A4 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028022A4 */ if (_t4) goto L_028022BC; else goto L_028022A8;
|
|
L_028022A8: ; // 0x28022a8
|
|
/* 028022A8 */ _t5 = cpu->r[11] + 0x00000004u;
|
|
/* 028022A8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028022AC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[3]);
|
|
/* 028022B0 */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028022B4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028022B4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028022B4 */ if (_t7) goto L_028022B8; else goto L_028022A0;
|
|
L_028022B8: ; // 0x28022b8
|
|
/* 028022B8 */ cpu->r[12] = 0xFFFFFFFFu;
|
|
L_028022BC: ; // 0x28022bc
|
|
/* 028022BC */ cpu->r[3] = cpu->r[12];
|
|
/* 028022C0 */ return;
|
|
L_028D7208: ; // 0x28d7208
|
|
/* 028D7208 */ _t8 = cpu->r[3] + 0x00000018u;
|
|
/* 028D7208 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D720C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D7210 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7210 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D7210 */ if (_t10) goto L_028D7220; else goto L_028D7214;
|
|
L_028D7214: ; // 0x28d7214
|
|
/* 028D7214 */ _t11 = cpu->r[3] + 0x00000010u;
|
|
/* 028D7214 */ cpu->r[12] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D7218 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D721C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D721C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D721C */ if (_t13) goto L_028D7220; else goto L_028D7228;
|
|
L_028D7220: ; // 0x28d7220
|
|
/* 028D7220 */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 028D7224 */ return;
|
|
L_028D7228: ; // 0x28d7228
|
|
/* 028D7228 */ cpu->r[3] = cpu->r[3] + 0x00000008u;
|
|
/* 028D722C */ cpu->r[4] = cpu->r[4] + 0x00000180u;
|
|
/* 028D7230 */ goto L_02802290;
|
|
}
|
|
|
|
// fn_028D7234 @ 0x28d7234
|
|
void Gambit_fn_028D7234(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028D7234: ; // 0x28d7234
|
|
/* 028D7234 */ cpu->r[0] = cpu->lr;
|
|
/* 028D7238 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028D7238 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028D723C */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028D723C */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028D723C */ cpu->r[1] = _t1;
|
|
/* 028D7240 */ _t2 = cpu->r[3] + 0x00000018u;
|
|
/* 028D7240 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028D7244 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D7248 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7248 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D7248 */ if (_t4) goto L_028D727C; else goto L_028D724C;
|
|
L_028D724C: ; // 0x28d724c
|
|
/* 028D724C */ _t5 = cpu->r[3] + 0x00000010u;
|
|
/* 028D724C */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D7250 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], cpu->r[12]);
|
|
/* 028D7254 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D7254 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D7254 */ if (_t7) goto L_028D7258; else goto L_028D727C;
|
|
L_028D7258: ; // 0x28d7258
|
|
/* 028D7258 */ cpu->r[3] = cpu->r[3] + 0x00000008u;
|
|
/* 028D725C */ Gambit_fn_02801F14(cpu);
|
|
/* 028D7260 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7264 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7264 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D7264 */ if (_t9) goto L_028D727C; else goto L_028D7268;
|
|
L_028D7268: ; // 0x28d7268
|
|
/* 028D7268 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7268 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D726C */ cpu->lr = cpu->r[0];
|
|
/* 028D7270 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D7274 */ cpu->r[3] = cpu->r[3] + 0xFFFFFE80u;
|
|
/* 028D7278 */ return;
|
|
L_028D727C: ; // 0x28d727c
|
|
/* 028D727C */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D727C */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D7280 */ cpu->lr = cpu->r[0];
|
|
/* 028D7284 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D7288 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D728C */ return;
|
|
}
|
|
|
|
// fn_028D723C @ 0x28d723c
|
|
void Gambit_fn_028D723C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028D723C: ; // 0x28d723c
|
|
/* 028D723C */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028D723C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D723C */ cpu->r[1] = _t0;
|
|
/* 028D7240 */ _t1 = cpu->r[3] + 0x00000018u;
|
|
/* 028D7240 */ cpu->r[0] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028D7244 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D7248 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7248 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028D7248 */ if (_t3) goto L_028D727C; else goto L_028D724C;
|
|
L_028D724C: ; // 0x28d724c
|
|
/* 028D724C */ _t4 = cpu->r[3] + 0x00000010u;
|
|
/* 028D724C */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D7250 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], cpu->r[12]);
|
|
/* 028D7254 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D7254 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D7254 */ if (_t6) goto L_028D7258; else goto L_028D727C;
|
|
L_028D7258: ; // 0x28d7258
|
|
/* 028D7258 */ cpu->r[3] = cpu->r[3] + 0x00000008u;
|
|
/* 028D725C */ Gambit_fn_02801F14(cpu);
|
|
/* 028D7260 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7264 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7264 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D7264 */ if (_t8) goto L_028D727C; else goto L_028D7268;
|
|
L_028D7268: ; // 0x28d7268
|
|
/* 028D7268 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7268 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D726C */ cpu->lr = cpu->r[0];
|
|
/* 028D7270 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D7274 */ cpu->r[3] = cpu->r[3] + 0xFFFFFE80u;
|
|
/* 028D7278 */ return;
|
|
L_028D727C: ; // 0x28d727c
|
|
/* 028D727C */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D727C */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D7280 */ cpu->lr = cpu->r[0];
|
|
/* 028D7284 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D7288 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D728C */ return;
|
|
}
|
|
|
|
// fn_028D7290 @ 0x28d7290
|
|
void Gambit_fn_028D7290(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35;
|
|
|
|
L_028D7290: ; // 0x28d7290
|
|
/* 028D7290 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028D7290 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D7290 */ cpu->r[1] = _t0;
|
|
/* 028D7294 */ /* nop */
|
|
/* 028D7298 */ cpu->r[0] = cpu->lr;
|
|
/* 028D729C */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D729C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D72A0 */ _t2 = cpu->r[3] + 0x00000028u;
|
|
/* 028D72A0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028D72A4 */ cpu->r[27] = cpu->r[4];
|
|
/* 028D72A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028D72AC */ cpu->r[10] = cpu->r[3] + 0x00000020u;
|
|
/* 028D72B0 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D72B0 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D72B0 */ if (_t4) goto L_028D7388; else goto L_028D72B4;
|
|
L_028D72B4: ; // 0x28d72b4
|
|
/* 028D72B4 */ _t5 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028D72B4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D72B8 */ _t6 = cpu->r[10] + 0x00000004u;
|
|
/* 028D72B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D72BC */ cpu->r[31] = cpu->r[10] - cpu->r[29];
|
|
/* 028D72C0 */ cpu->r[28] = cpu->r[0] - cpu->r[29];
|
|
/* 028D72C4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 028D72C8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D72C8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D72C8 */ if (_t8) goto L_028D7388; else goto L_028D72CC;
|
|
L_028D72CC: ; // 0x28d72cc
|
|
/* 028D72CC */ cpu->r[30] = 0x10110000u;
|
|
/* 028D72D0 */ cpu->r[26] = 0x00080000u;
|
|
/* 028D72D4 */ _t9 = cpu->r[30] + 0x00007399u;
|
|
/* 028D72D4 */ cpu->r[30] = rbrew_read8(cpu->mem, _t9);
|
|
/* 028D72D8 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
L_028D72DC: ; // 0x28d72dc
|
|
/* 028D72DC */ _t10 = cpu->r[28] + 0x00000004u;
|
|
/* 028D72DC */ cpu->r[5] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D72E0 */ _t11 = cpu->r[5] + 0x00000014u;
|
|
/* 028D72E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D72E4 */ cpu->ctr = cpu->r[0];
|
|
/* 028D72E8 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D72EC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D72F0 */ _t12 = cpu->r[28] + 0x00000004u;
|
|
/* 028D72F0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D72F4 */ _t13 = cpu->r[7] + 0x00000014u;
|
|
/* 028D72F4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D72F8 */ cpu->ctr = cpu->r[8];
|
|
/* 028D72FC */ cpu->r[3] = cpu->r[28];
|
|
/* 028D7300 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D7304 */ _t14 = cpu->r[27] + 0x00000004u;
|
|
/* 028D7304 */ cpu->r[9] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D7308 */ _t15 = cpu->r[9] + 0x00000014u;
|
|
/* 028D7308 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D730C */ cpu->ctr = cpu->r[10];
|
|
/* 028D7310 */ _t16 = cpu->r[28] + 0x00000000u;
|
|
/* 028D7310 */ cpu->r[25] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D7314 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D7318 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D731C */ _t17 = cpu->r[27] + 0x00000000u;
|
|
/* 028D731C */ cpu->r[11] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D7320 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[25], cpu->r[11]);
|
|
/* 028D7324 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7324 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D7324 */ if (_t19) goto L_028D735C; else goto L_028D7328;
|
|
L_028D7328: ; // 0x28d7328
|
|
/* 028D7328 */ _t20 = cpu->r[28] + 0x00000000u;
|
|
/* 028D7328 */ cpu->r[8] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D732C */ _t21 = cpu->r[27] + 0x00000000u;
|
|
/* 028D732C */ cpu->r[7] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D7330 */ cpu->r[8] = cpu->r[8] + 0xFFFFFFFFu;
|
|
/* 028D7334 */ cpu->ctr = cpu->r[26];
|
|
/* 028D7338 */ cpu->r[7] = cpu->r[7] + 0xFFFFFFFFu;
|
|
L_028D733C: ; // 0x28d733c
|
|
/* 028D733C */ _t22 = cpu->r[8] + 0x00000001u;
|
|
/* 028D733C */ cpu->r[0] = rbrew_read8(cpu->mem, _t22);
|
|
/* 028D733C */ cpu->r[8] = _t22;
|
|
/* 028D7340 */ _t23 = cpu->r[7] + 0x00000001u;
|
|
/* 028D7340 */ cpu->r[12] = rbrew_read8(cpu->mem, _t23);
|
|
/* 028D7340 */ cpu->r[7] = _t23;
|
|
/* 028D7344 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 028D7348 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7348 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D7348 */ if (_t25) goto L_028D734C; else goto L_028D7374;
|
|
L_028D734C: ; // 0x28d734c
|
|
/* 028D734C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[30]);
|
|
/* 028D7350 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7350 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028D7350 */ if (_t27) goto L_028D735C; else goto L_028D7354;
|
|
L_028D7354: ; // 0x28d7354
|
|
/* 028D7354 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028D7354 */ _t28 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028D7354 */ _t29 = _t28 >> (0x00000002u & 31u);
|
|
/* 028D7354 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028D7354 */ if (_t30) goto L_028D733C; else goto L_028D7358;
|
|
L_028D7358: ; // 0x28d7358
|
|
/* 028D7358 */ goto L_028D7374;
|
|
L_028D735C: ; // 0x28d735c
|
|
/* 028D735C */ cpu->r[3] = cpu->r[28];
|
|
/* 028D7360 */ /* nop */
|
|
/* 028D7364 */ _t31 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D7364 */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028D7368 */ cpu->lr = cpu->r[0];
|
|
/* 028D736C */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D7370 */ return;
|
|
L_028D7374: ; // 0x28d7374
|
|
/* 028D7374 */ cpu->r[12] = cpu->r[28] + cpu->r[29];
|
|
/* 028D7378 */ _t32 = cpu->r[12] + 0x00000004u;
|
|
/* 028D7378 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028D737C */ cpu->r[28] = cpu->r[0] - cpu->r[29];
|
|
/* 028D7380 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 028D7384 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7384 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028D7384 */ if (_t34) goto L_028D7388; else goto L_028D72DC;
|
|
L_028D7388: ; // 0x28d7388
|
|
/* 028D7388 */ /* nop */
|
|
/* 028D738C */ _t35 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D738C */ cpu->r[0] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028D7390 */ cpu->lr = cpu->r[0];
|
|
/* 028D7394 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028D7398 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D739C */ return;
|
|
}
|
|
|
|
// fn_028D73A0 @ 0x28d73a0
|
|
void Gambit_fn_028D73A0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_028D73A0: ; // 0x28d73a0
|
|
/* 028D73A0 */ cpu->r[0] = cpu->lr;
|
|
/* 028D73A4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D73A4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D73A4 */ cpu->r[1] = _t0;
|
|
/* 028D73A8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D73A8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D73AC */ cpu->r[31] = cpu->r[3];
|
|
/* 028D73B0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D73B0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D73B4 */ _t3 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028D73B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D73B8 */ cpu->r[3] = cpu->r[31] + 0x00000020u;
|
|
/* 028D73BC */ cpu->r[4] = cpu->r[4] + cpu->r[0];
|
|
/* 028D73C0 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028D73C4 */ _t4 = cpu->r[31] + 0x00000028u;
|
|
/* 028D73C4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D73C8 */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028D73CC */ _t5 = cpu->r[31] + 0x00000028u;
|
|
/* 028D73CC */ rbrew_write32(cpu->mem, _t5, cpu->r[12]);
|
|
/* 028D73D0 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028D73D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D73D4 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D73D4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D73D8 */ cpu->lr = cpu->r[0];
|
|
/* 028D73DC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D73E0 */ return;
|
|
}
|
|
|
|
// fn_028D73A4 @ 0x28d73a4
|
|
void Gambit_fn_028D73A4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_028D73A4: ; // 0x28d73a4
|
|
/* 028D73A4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D73A4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D73A4 */ cpu->r[1] = _t0;
|
|
/* 028D73A8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D73A8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D73AC */ cpu->r[31] = cpu->r[3];
|
|
/* 028D73B0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D73B0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D73B4 */ _t3 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028D73B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D73B8 */ cpu->r[3] = cpu->r[31] + 0x00000020u;
|
|
/* 028D73BC */ cpu->r[4] = cpu->r[4] + cpu->r[0];
|
|
/* 028D73C0 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028D73C4 */ _t4 = cpu->r[31] + 0x00000028u;
|
|
/* 028D73C4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D73C8 */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028D73CC */ _t5 = cpu->r[31] + 0x00000028u;
|
|
/* 028D73CC */ rbrew_write32(cpu->mem, _t5, cpu->r[12]);
|
|
/* 028D73D0 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028D73D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D73D4 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D73D4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D73D8 */ cpu->lr = cpu->r[0];
|
|
/* 028D73DC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D73E0 */ return;
|
|
}
|
|
|
|
// fn_028D73E4 @ 0x28d73e4
|
|
void Gambit_fn_028D73E4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028D73E4: ; // 0x28d73e4
|
|
/* 028D73E4 */ cpu->r[0] = cpu->lr;
|
|
/* 028D73E8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D73E8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D73E8 */ cpu->r[1] = _t0;
|
|
/* 028D73EC */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D73EC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D73F0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D73F0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D73F4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D73F8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D73F8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D73FC */ _t4 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028D73FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D7400 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D7404 */ cpu->r[3] = cpu->r[30] + 0x00000020u;
|
|
/* 028D7408 */ cpu->r[4] = cpu->r[31] + cpu->r[0];
|
|
/* 028D740C */ Gambit_fn_02802290(cpu);
|
|
/* 028D7410 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7414 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D7414 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D7414 */ if (_t6) goto L_028D7430; else goto L_028D7418;
|
|
L_028D7418: ; // 0x28d7418
|
|
/* 028D7418 */ _t7 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028D7418 */ cpu->r[11] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D741C */ cpu->r[3] = cpu->r[31] + cpu->r[11];
|
|
/* 028D7420 */ Gambit_fn_02801EDC(cpu);
|
|
/* 028D7424 */ _t8 = cpu->r[30] + 0x00000028u;
|
|
/* 028D7424 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D7428 */ cpu->r[12] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028D742C */ _t9 = cpu->r[30] + 0x00000028u;
|
|
/* 028D742C */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
L_028D7430: ; // 0x28d7430
|
|
/* 028D7430 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7430 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D7434 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7434 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D7438 */ cpu->lr = cpu->r[0];
|
|
/* 028D743C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D743C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D7440 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D7444 */ return;
|
|
}
|
|
|
|
// fn_028D73E8 @ 0x28d73e8
|
|
void Gambit_fn_028D73E8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028D73E8: ; // 0x28d73e8
|
|
/* 028D73E8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D73E8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D73E8 */ cpu->r[1] = _t0;
|
|
/* 028D73EC */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D73EC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D73F0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D73F0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D73F4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D73F8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D73F8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D73FC */ _t4 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028D73FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D7400 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D7404 */ cpu->r[3] = cpu->r[30] + 0x00000020u;
|
|
/* 028D7408 */ cpu->r[4] = cpu->r[31] + cpu->r[0];
|
|
/* 028D740C */ Gambit_fn_02802290(cpu);
|
|
/* 028D7410 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7414 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D7414 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D7414 */ if (_t6) goto L_028D7430; else goto L_028D7418;
|
|
L_028D7418: ; // 0x28d7418
|
|
/* 028D7418 */ _t7 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028D7418 */ cpu->r[11] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D741C */ cpu->r[3] = cpu->r[31] + cpu->r[11];
|
|
/* 028D7420 */ Gambit_fn_02801EDC(cpu);
|
|
/* 028D7424 */ _t8 = cpu->r[30] + 0x00000028u;
|
|
/* 028D7424 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D7428 */ cpu->r[12] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028D742C */ _t9 = cpu->r[30] + 0x00000028u;
|
|
/* 028D742C */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
L_028D7430: ; // 0x28d7430
|
|
/* 028D7430 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7430 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D7434 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7434 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D7438 */ cpu->lr = cpu->r[0];
|
|
/* 028D743C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D743C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D7440 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D7444 */ return;
|
|
}
|
|
|
|
// fn_028D7448 @ 0x28d7448
|
|
void Gambit_fn_028D7448(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D7448: ; // 0x28d7448
|
|
/* 028D7448 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D744C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D744C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D744C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D744C */ goto L_028D7450;
|
|
L_028D7450: ; // 0x28d7450
|
|
/* 028D7450 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D7450 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D7454 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7454 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D7454 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D7454 */ goto L_028D7458;
|
|
L_028D7458: ; // 0x28d7458
|
|
/* 028D7458 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D745C @ 0x28d745c
|
|
void Gambit_fn_028D745C(CPUState* cpu) {
|
|
L_028D745C: ; // 0x28d745c
|
|
/* 028D745C */ return;
|
|
}
|
|
|
|
// fn_028D7460 @ 0x28d7460
|
|
void Gambit_fn_028D7460(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028D7460: ; // 0x28d7460
|
|
/* 028D7460 */ cpu->r[0] = cpu->lr;
|
|
/* 028D7464 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D7464 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D7464 */ cpu->r[1] = _t0;
|
|
/* 028D7468 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7468 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D746C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D7470 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7470 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D7474 */ Gambit_fn_028C2A24(cpu);
|
|
/* 028D7478 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D747C */ Gambit_fn_028D73E4(cpu);
|
|
/* 028D7480 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D7484 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7484 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D7484 */ if (_t4) goto L_028D74A0; else goto L_028D7488;
|
|
L_028D7488: ; // 0x28d7488
|
|
/* 028D7488 */ _t5 = cpu->r[31] + 0x00000008u;
|
|
/* 028D7488 */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D748C */ _t6 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028D748C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D7490 */ cpu->ctr = cpu->r[0];
|
|
/* 028D7494 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D7498 */ cpu->r[4] = 0x00000003u;
|
|
/* 028D749C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D74A0: ; // 0x28d74a0
|
|
/* 028D74A0 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 028D74A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D74A4 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D74A4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D74A8 */ cpu->lr = cpu->r[0];
|
|
/* 028D74AC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D74B0 */ return;
|
|
}
|
|
|
|
// fn_028D7464 @ 0x28d7464
|
|
void Gambit_fn_028D7464(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028D7464: ; // 0x28d7464
|
|
/* 028D7464 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D7464 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D7464 */ cpu->r[1] = _t0;
|
|
/* 028D7468 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7468 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D746C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D7470 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7470 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D7474 */ Gambit_fn_028C2A24(cpu);
|
|
/* 028D7478 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D747C */ Gambit_fn_028D73E4(cpu);
|
|
/* 028D7480 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D7484 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7484 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D7484 */ if (_t4) goto L_028D74A0; else goto L_028D7488;
|
|
L_028D7488: ; // 0x28d7488
|
|
/* 028D7488 */ _t5 = cpu->r[31] + 0x00000008u;
|
|
/* 028D7488 */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D748C */ _t6 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028D748C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D7490 */ cpu->ctr = cpu->r[0];
|
|
/* 028D7494 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D7498 */ cpu->r[4] = 0x00000003u;
|
|
/* 028D749C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028D74A0: ; // 0x28d74a0
|
|
/* 028D74A0 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 028D74A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D74A4 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D74A4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D74A8 */ cpu->lr = cpu->r[0];
|
|
/* 028D74AC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D74B0 */ return;
|
|
}
|
|
|
|
// fn_028D74B4 @ 0x28d74b4
|
|
void Gambit_fn_028D74B4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80;
|
|
|
|
L_028D74B4: ; // 0x28d74b4
|
|
/* 028D74B4 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028D74B4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D74B4 */ cpu->r[1] = _t0;
|
|
/* 028D74B8 */ cpu->r[0] = cpu->lr;
|
|
/* 028D74BC */ /* nop */
|
|
/* 028D74C0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D74C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D74C4 */ cpu->r[27] = cpu->r[4];
|
|
/* 028D74C8 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028D74C8 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D74CC */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D74CC */ _t3 = _t2 & 0x00000001u;
|
|
/* 028D74CC */ if (_t3) goto L_028D74D0; else goto L_028D74E0;
|
|
L_028D74D0: ; // 0x28d74d0
|
|
/* 028D74D0 */ cpu->r[3] = 0x00000048u;
|
|
/* 028D74D4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D74D8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D74D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D74DC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D74DC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D74DC */ if (_t5) goto L_028D7704; else goto L_028D74E0;
|
|
L_028D74E0: ; // 0x28d74e0
|
|
/* 028D74E0 */ cpu->r[28] = cpu->r[30];
|
|
/* 028D74E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028D74E4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D74E4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D74E4 */ if (_t7) goto L_028D74E8; else goto L_028D74F8;
|
|
L_028D74E8: ; // 0x28d74e8
|
|
/* 028D74E8 */ cpu->r[3] = 0x00000038u;
|
|
/* 028D74EC */ Gambit_fn_02801A78(cpu);
|
|
/* 028D74F0 */ cpu->r[28] = cpu->r[3];
|
|
/* 028D74F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028D74F4 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D74F4 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D74F4 */ if (_t9) goto L_028D76D0; else goto L_028D74F8;
|
|
L_028D74F8: ; // 0x28d74f8
|
|
/* 028D74F8 */ cpu->r[31] = cpu->r[28];
|
|
/* 028D74F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D74FC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D74FC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D74FC */ if (_t11) goto L_028D7500; else goto L_028D7510;
|
|
L_028D7500: ; // 0x28d7500
|
|
/* 028D7500 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028D7504 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D7508 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D7508 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D750C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D750C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D750C */ if (_t13) goto L_028D7554; else goto L_028D7510;
|
|
L_028D7510: ; // 0x28d7510
|
|
/* 028D7510 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D7510 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7514 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7514 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028D7514 */ if (_t15) goto L_028D7518; else goto L_028D7528;
|
|
L_028D7518: ; // 0x28d7518
|
|
/* 028D7518 */ cpu->r[3] = 0x00000008u;
|
|
/* 028D751C */ Gambit_fn_02801A78(cpu);
|
|
/* 028D7520 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7524 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7524 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D7524 */ if (_t17) goto L_028D7540; else goto L_028D7528;
|
|
L_028D7528: ; // 0x28d7528
|
|
/* 028D7528 */ cpu->r[10] = 0x10140000u;
|
|
/* 028D752C */ cpu->r[11] = 0x10140000u;
|
|
/* 028D7530 */ cpu->r[10] = cpu->r[10] + 0xFFFFAAD4u;
|
|
/* 028D7534 */ cpu->r[11] = cpu->r[11] + 0xFFFFAAD0u;
|
|
/* 028D7538 */ _t18 = cpu->r[3] + 0x00000004u;
|
|
/* 028D7538 */ rbrew_write32(cpu->mem, _t18, cpu->r[10]);
|
|
/* 028D753C */ _t19 = cpu->r[3] + 0x00000000u;
|
|
/* 028D753C */ rbrew_write32(cpu->mem, _t19, cpu->r[11]);
|
|
L_028D7540: ; // 0x28d7540
|
|
/* 028D7540 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D7544 */ cpu->r[12] = cpu->r[12] + 0xFFFFAB34u;
|
|
/* 028D7548 */ _t20 = cpu->r[31] + 0x00000008u;
|
|
/* 028D7548 */ rbrew_write32(cpu->mem, _t20, cpu->r[12]);
|
|
/* 028D754C */ _t21 = cpu->r[27] + 0x00000000u;
|
|
/* 028D754C */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D7550 */ _t22 = cpu->r[31] + 0x00000000u;
|
|
/* 028D7550 */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
L_028D7554: ; // 0x28d7554
|
|
/* 028D7554 */ cpu->r[5] = 0x10140000u;
|
|
/* 028D7558 */ cpu->r[5] = cpu->r[5] + 0xFFFFAB4Cu;
|
|
/* 028D755C */ cpu->r[31] = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D755C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D7560 */ _t23 = cpu->r[28] + 0x00000008u;
|
|
/* 028D7560 */ rbrew_write32(cpu->mem, _t23, cpu->r[5]);
|
|
/* 028D7564 */ cpu->r[29] = 0x10110000u;
|
|
/* 028D7568 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7568 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D7568 */ if (_t25) goto L_028D756C; else goto L_028D75C0;
|
|
L_028D756C: ; // 0x28d756c
|
|
/* 028D756C */ cpu->r[3] = 0x0000002Cu;
|
|
/* 028D7570 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D7574 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D7574 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D7578 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7578 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028D7578 */ if (_t27) goto L_028D757C; else goto L_028D75C0;
|
|
L_028D757C: ; // 0x28d757c
|
|
/* 028D757C */ cpu->r[11] = 0x10140000u;
|
|
/* 028D7580 */ _t28 = cpu->r[29] + 0x00007399u;
|
|
/* 028D7580 */ cpu->r[29] = rbrew_read8(cpu->mem, _t28);
|
|
/* 028D7584 */ cpu->r[11] = cpu->r[11] + 0xFFFFABCCu;
|
|
/* 028D7588 */ _t29 = cpu->r[28] + 0x00000010u;
|
|
/* 028D7588 */ rbrew_write32(cpu->mem, _t29, cpu->r[11]);
|
|
/* 028D758C */ _t30 = cpu->r[27] + 0x00000004u;
|
|
/* 028D758C */ cpu->r[12] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028D7590 */ _t31 = cpu->r[12] + 0x00000014u;
|
|
/* 028D7590 */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028D7594 */ cpu->ctr = cpu->r[0];
|
|
/* 028D7598 */ _t32 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D7598 */ cpu->r[26] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028D759C */ cpu->r[3] = cpu->r[27];
|
|
/* 028D75A0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D75A4 */ _t33 = cpu->r[27] + 0x00000000u;
|
|
/* 028D75A4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028D75A8 */ _t34 = cpu->r[10] + 0x00000000u;
|
|
/* 028D75A8 */ cpu->r[5] = rbrew_read8(cpu->mem, _t34);
|
|
/* 028D75AC */ cpu->r[31] = 0x00000000u;
|
|
/* 028D75B0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[29]);
|
|
/* 028D75B4 */ cpu->r[12] = 0x00080000u;
|
|
/* 028D75B8 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D75B8 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028D75B8 */ if (_t36) goto L_028D75BC; else goto L_028D7668;
|
|
L_028D75BC: ; // 0x28d75bc
|
|
/* 028D75BC */ goto L_028D768C;
|
|
L_028D75C0: ; // 0x28d75c0
|
|
/* 028D75C0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D75C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D75C4 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D75C4 */ _t38 = _t37 & 0x00000001u;
|
|
/* 028D75C4 */ if (_t38) goto L_028D75C8; else goto L_028D75F4;
|
|
L_028D75C8: ; // 0x28d75c8
|
|
/* 028D75C8 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028D75CC */ Gambit_fn_02801A78(cpu);
|
|
/* 028D75D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D75D4 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D75D4 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028D75D4 */ if (_t40) goto L_028D75D8; else goto L_028D75F4;
|
|
L_028D75D8: ; // 0x28d75d8
|
|
/* 028D75D8 */ _t41 = cpu->r[29] + 0x00007399u;
|
|
/* 028D75D8 */ cpu->r[29] = rbrew_read8(cpu->mem, _t41);
|
|
/* 028D75DC */ cpu->r[0] = 0x10140000u;
|
|
/* 028D75E0 */ cpu->r[0] = cpu->r[0] + 0xFFFFABB4u;
|
|
/* 028D75E4 */ _t42 = cpu->r[31] + 0x00000000u;
|
|
/* 028D75E4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028D75E8 */ _t43 = cpu->r[31] + 0x00000004u;
|
|
/* 028D75E8 */ rbrew_write32(cpu->mem, _t43, cpu->r[0]);
|
|
/* 028D75EC */ _t44 = cpu->r[10] + 0x00000000u;
|
|
/* 028D75EC */ rbrew_write8(cpu->mem, _t44, (uint8_t)cpu->r[29]);
|
|
/* 028D75F0 */ goto L_028D762C;
|
|
L_028D75F4: ; // 0x28d75f4
|
|
/* 028D75F4 */ cpu->r[7] = 0x10140000u;
|
|
/* 028D75F8 */ cpu->r[6] = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D75FC */ cpu->r[7] = cpu->r[7] + 0xFFFFAAECu;
|
|
/* 028D7600 */ _t45 = cpu->r[3] + 0x00000000u;
|
|
/* 028D7600 */ rbrew_write32(cpu->mem, _t45, cpu->r[6]);
|
|
/* 028D7604 */ cpu->r[8] = 0x00000020u;
|
|
/* 028D7608 */ _t46 = cpu->r[3] + 0x00000004u;
|
|
/* 028D7608 */ rbrew_write32(cpu->mem, _t46, cpu->r[7]);
|
|
/* 028D760C */ _t47 = cpu->r[3] + 0x00000008u;
|
|
/* 028D760C */ rbrew_write32(cpu->mem, _t47, cpu->r[8]);
|
|
/* 028D7610 */ _t48 = cpu->r[29] + 0x00007399u;
|
|
/* 028D7610 */ cpu->r[29] = rbrew_read8(cpu->mem, _t48);
|
|
/* 028D7614 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D7618 */ _t49 = cpu->r[31] + 0x0000002Bu;
|
|
/* 028D7618 */ rbrew_write8(cpu->mem, _t49, (uint8_t)cpu->r[29]);
|
|
/* 028D761C */ cpu->r[0] = cpu->r[0] + 0xFFFFABB4u;
|
|
/* 028D7620 */ _t50 = cpu->r[31] + 0x00000000u;
|
|
/* 028D7620 */ cpu->r[10] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028D7624 */ _t51 = cpu->r[31] + 0x00000004u;
|
|
/* 028D7624 */ rbrew_write32(cpu->mem, _t51, cpu->r[0]);
|
|
/* 028D7628 */ _t52 = cpu->r[10] + 0x00000000u;
|
|
/* 028D7628 */ rbrew_write8(cpu->mem, _t52, (uint8_t)cpu->r[29]);
|
|
L_028D762C: ; // 0x28d762c
|
|
/* 028D762C */ cpu->r[11] = 0x10140000u;
|
|
/* 028D7630 */ cpu->r[11] = cpu->r[11] + 0xFFFFABCCu;
|
|
/* 028D7634 */ _t53 = cpu->r[28] + 0x00000010u;
|
|
/* 028D7634 */ rbrew_write32(cpu->mem, _t53, cpu->r[11]);
|
|
/* 028D7638 */ _t54 = cpu->r[27] + 0x00000004u;
|
|
/* 028D7638 */ cpu->r[12] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028D763C */ _t55 = cpu->r[12] + 0x00000014u;
|
|
/* 028D763C */ cpu->r[0] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028D7640 */ cpu->ctr = cpu->r[0];
|
|
/* 028D7644 */ _t56 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D7644 */ cpu->r[26] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028D7648 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D764C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D7650 */ _t57 = cpu->r[27] + 0x00000000u;
|
|
/* 028D7650 */ cpu->r[10] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028D7654 */ _t58 = cpu->r[10] + 0x00000000u;
|
|
/* 028D7654 */ cpu->r[5] = rbrew_read8(cpu->mem, _t58);
|
|
/* 028D7658 */ cpu->r[31] = 0x00000000u;
|
|
/* 028D765C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[29]);
|
|
/* 028D7660 */ cpu->r[12] = 0x00080000u;
|
|
/* 028D7664 */ _t59 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7664 */ _t60 = _t59 & 0x00000001u;
|
|
/* 028D7664 */ if (_t60) goto L_028D75BC; else goto L_028D7668;
|
|
L_028D7668: ; // 0x28d7668
|
|
/* 028D7668 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028D766C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[12]);
|
|
/* 028D7670 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028D7674 */ _t61 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D7674 */ _t62 = _t61 & 0x00000001u;
|
|
/* 028D7674 */ if (_t62) goto L_028D7688; else goto L_028D7678;
|
|
L_028D7678: ; // 0x28d7678
|
|
/* 028D7678 */ _t63 = cpu->r[10] + 0x00000000u;
|
|
/* 028D7678 */ cpu->r[6] = rbrew_read8(cpu->mem, _t63);
|
|
/* 028D767C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[29]);
|
|
/* 028D7680 */ _t64 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7680 */ _t65 = _t64 & 0x00000001u;
|
|
/* 028D7680 */ if (_t65) goto L_028D7684; else goto L_028D7668;
|
|
L_028D7684: ; // 0x28d7684
|
|
/* 028D7684 */ goto L_028D768C;
|
|
L_028D7688: ; // 0x28d7688
|
|
/* 028D7688 */ cpu->r[31] = 0x00000000u;
|
|
L_028D768C: ; // 0x28d768c
|
|
/* 028D768C */ _t66 = cpu->r[28] + 0x00000014u;
|
|
/* 028D768C */ cpu->r[7] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028D7690 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[7]);
|
|
/* 028D7694 */ _t67 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D7694 */ _t68 = _t67 & 0x00000001u;
|
|
/* 028D7694 */ if (_t68) goto L_028D769C; else goto L_028D7698;
|
|
L_028D7698: ; // 0x28d7698
|
|
/* 028D7698 */ cpu->r[31] = cpu->r[7] + 0xFFFFFFFFu;
|
|
L_028D769C: ; // 0x28d769c
|
|
/* 028D769C */ _t69 = cpu->r[27] + 0x00000004u;
|
|
/* 028D769C */ cpu->r[7] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028D76A0 */ _t70 = cpu->r[7] + 0x00000014u;
|
|
/* 028D76A0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028D76A4 */ cpu->ctr = cpu->r[8];
|
|
/* 028D76A8 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D76AC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D76B0 */ _t71 = cpu->r[27] + 0x00000000u;
|
|
/* 028D76B0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028D76B4 */ cpu->r[6] = 0x00000000u;
|
|
/* 028D76B8 */ cpu->r[5] = cpu->r[31];
|
|
/* 028D76BC */ cpu->r[3] = cpu->r[26];
|
|
/* 028D76C0 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028D76C4 */ _t72 = cpu->r[26] + cpu->r[31];
|
|
/* 028D76C4 */ rbrew_write8(cpu->mem, _t72, (uint8_t)cpu->r[29]);
|
|
/* 028D76C8 */ _t73 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D76C8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028D76CC */ _t74 = cpu->r[28] + 0x00000000u;
|
|
/* 028D76CC */ rbrew_write32(cpu->mem, _t74, cpu->r[9]);
|
|
L_028D76D0: ; // 0x28d76d0
|
|
/* 028D76D0 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D76D4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D76D8 */ cpu->r[11] = cpu->r[11] + 0xFFFFAB64u;
|
|
/* 028D76DC */ cpu->r[0] = cpu->r[0] + 0xFFFFABA4u;
|
|
/* 028D76E0 */ _t75 = cpu->r[30] + 0x00000008u;
|
|
/* 028D76E0 */ rbrew_write32(cpu->mem, _t75, cpu->r[11]);
|
|
/* 028D76E4 */ cpu->r[6] = 0x00000000u;
|
|
/* 028D76E8 */ _t76 = cpu->r[30] + 0x00000038u;
|
|
/* 028D76E8 */ rbrew_write32(cpu->mem, _t76, cpu->r[0]);
|
|
/* 028D76EC */ _t77 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028D76EC */ rbrew_write32(cpu->mem, _t77, cpu->r[6]);
|
|
/* 028D76F0 */ _t78 = cpu->r[30] + 0x00000040u;
|
|
/* 028D76F0 */ rbrew_write32(cpu->mem, _t78, cpu->r[6]);
|
|
/* 028D76F4 */ _t79 = cpu->r[30] + 0x00000044u;
|
|
/* 028D76F4 */ rbrew_write32(cpu->mem, _t79, cpu->r[6]);
|
|
/* 028D76F8 */ Gambit_fn_028C2A24(cpu);
|
|
/* 028D76FC */ cpu->r[4] = cpu->r[30];
|
|
/* 028D7700 */ Gambit_fn_028D73A0(cpu);
|
|
L_028D7704: ; // 0x28d7704
|
|
/* 028D7704 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D7708 */ /* nop */
|
|
/* 028D770C */ _t80 = cpu->r[1] + 0x00000024u;
|
|
/* 028D770C */ cpu->r[0] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028D7710 */ cpu->lr = cpu->r[0];
|
|
/* 028D7714 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028D7718 */ return;
|
|
}
|
|
|
|
// fn_028D771C @ 0x28d771c
|
|
void Gambit_fn_028D771C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36;
|
|
|
|
L_028D771C: ; // 0x28d771c
|
|
/* 028D771C */ _t0 = cpu->r[1] + 0xFFFFFF88u;
|
|
/* 028D771C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D771C */ cpu->r[1] = _t0;
|
|
/* 028D7720 */ _t1 = cpu->r[1] + 0x00000040u;
|
|
/* 028D7720 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D7724 */ cpu->r[0] = cpu->lr;
|
|
/* 028D7728 */ _t2 = cpu->r[1] + 0x00000068u;
|
|
/* 028D7728 */ rbrew_write_f64(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028D772C */ /* nop */
|
|
/* 028D7730 */ _t3 = cpu->r[1] + 0x00000044u;
|
|
/* 028D7730 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D7734 */ _t4 = cpu->r[1] + 0x00000058u;
|
|
/* 028D7734 */ rbrew_write_f64(cpu->mem, _t4, cpu->f[30]);
|
|
/* 028D7738 */ cpu->r[30] = cpu->r[6];
|
|
/* 028D773C */ _t5 = cpu->r[1] + 0x00000038u;
|
|
/* 028D773C */ rbrew_write32(cpu->mem, _t5, cpu->r[28]);
|
|
/* 028D7740 */ _t6 = cpu->r[1] + 0x00000048u;
|
|
/* 028D7740 */ rbrew_write_f64(cpu->mem, _t6, cpu->f[29]);
|
|
/* 028D7744 */ cpu->r[28] = cpu->r[4];
|
|
/* 028D7748 */ _t7 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D7748 */ rbrew_write32(cpu->mem, _t7, cpu->r[29]);
|
|
/* 028D774C */ _t8 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028D774C */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028D7750 */ /* nop */
|
|
/* 028D7754 */ _t9 = cpu->r[1] + 0x00000070u;
|
|
/* 028D7754 */ rbrew_write_f32(cpu->mem, _t9, cpu->f[31]);
|
|
/* 028D7758 */ /* nop */
|
|
/* 028D775C */ _t10 = cpu->r[1] + 0x00000060u;
|
|
/* 028D775C */ rbrew_write_f32(cpu->mem, _t10, cpu->f[30]);
|
|
/* 028D7760 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D7760 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D7764 */ _t11 = cpu->r[1] + 0x00000050u;
|
|
/* 028D7764 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[29]);
|
|
/* 028D7768 */ cpu->r[29] = cpu->r[5];
|
|
/* 028D776C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D776C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D776C */ if (_t13) goto L_028D7828; else goto L_028D7770;
|
|
L_028D7770: ; // 0x28d7770
|
|
/* 028D7770 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D7774 */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 028D7778 */ Gambit_fn_0281A998(cpu);
|
|
/* 028D777C */ cpu->r[3] = cpu->r[28];
|
|
/* 028D7780 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 028D7784 */ Gambit_fn_0281A9B4(cpu);
|
|
/* 028D7788 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D778C */ cpu->r[4] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D7790 */ Gambit_fn_0281A97C(cpu);
|
|
/* 028D7794 */ /* nop */
|
|
/* 028D7798 */ /* nop */
|
|
/* 028D779C */ /* nop */
|
|
/* 028D77A0 */ /* nop */
|
|
/* 028D77A4 */ /* nop */
|
|
/* 028D77A8 */ /* nop */
|
|
/* 028D77AC */ /* nop */
|
|
/* 028D77B0 */ /* nop */
|
|
/* 028D77B4 */ cpu->f[0] = cpu->f[13];
|
|
/* 028D77B8 */ /* nop */
|
|
/* 028D77BC */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D77BC */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028D77C0 */ /* nop */
|
|
/* 028D77C4 */ _t15 = cpu->r[29] + 0x00000008u;
|
|
/* 028D77C4 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028D77C8 */ cpu->f[7] = cpu->f[13];
|
|
/* 028D77CC */ _t16 = cpu->r[1] + 0x00000034u;
|
|
/* 028D77CC */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028D77D0 */ cpu->f[13] = fma(cpu->f[10], cpu->f[11], cpu->f[8]);
|
|
/* 028D77D4 */ _t17 = cpu->r[1] + 0x00000028u;
|
|
/* 028D77D4 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028D77D8 */ cpu->f[12] = fma(cpu->f[12], cpu->f[11], cpu->f[0]);
|
|
/* 028D77DC */ _t18 = cpu->r[30] + 0x00000000u;
|
|
/* 028D77DC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t18);
|
|
/* 028D77E0 */ cpu->f[9] = fma(cpu->f[8], cpu->f[11], cpu->f[7]);
|
|
/* 028D77E4 */ _t19 = cpu->r[30] + 0x00000004u;
|
|
/* 028D77E4 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t19);
|
|
/* 028D77E8 */ cpu->f[29] = cpu->f[13] + cpu->f[0];
|
|
/* 028D77EC */ _t20 = cpu->r[30] + 0x00000008u;
|
|
/* 028D77EC */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t20);
|
|
/* 028D77F0 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D77F4 */ cpu->f[30] = cpu->f[9] + cpu->f[10];
|
|
/* 028D77F8 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D77FC */ cpu->f[31] = cpu->f[12] + cpu->f[8];
|
|
/* 028D7800 */ Gambit_fn_02C69510(cpu);
|
|
/* 028D7804 */ cpu->f[11] = -cpu->f[29];
|
|
/* 028D7808 */ cpu->f[12] = -cpu->f[30];
|
|
/* 028D780C */ cpu->f[13] = -cpu->f[31];
|
|
/* 028D7810 */ _t21 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7810 */ rbrew_write_f32(cpu->mem, _t21, cpu->f[11]);
|
|
/* 028D7814 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D7818 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7818 */ rbrew_write_f32(cpu->mem, _t22, cpu->f[12]);
|
|
/* 028D781C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D7820 */ _t23 = cpu->r[1] + 0x00000010u;
|
|
/* 028D7820 */ rbrew_write_f32(cpu->mem, _t23, cpu->f[13]);
|
|
/* 028D7824 */ Gambit_fn_021620C4(cpu);
|
|
L_028D7828: ; // 0x28d7828
|
|
/* 028D7828 */ _t24 = cpu->r[1] + 0x00000038u;
|
|
/* 028D7828 */ cpu->r[28] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D782C */ _t25 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D782C */ cpu->r[29] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D7830 */ _t26 = cpu->r[1] + 0x00000070u;
|
|
/* 028D7830 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028D7834 */ _t27 = cpu->r[1] + 0x00000050u;
|
|
/* 028D7834 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 028D7838 */ _t28 = cpu->r[1] + 0x00000068u;
|
|
/* 028D7838 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t28);
|
|
/* 028D783C */ _t29 = cpu->r[1] + 0x00000060u;
|
|
/* 028D783C */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t29);
|
|
/* 028D7840 */ _t30 = cpu->r[1] + 0x00000048u;
|
|
/* 028D7840 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t30);
|
|
/* 028D7844 */ _t31 = cpu->r[1] + 0x00000058u;
|
|
/* 028D7844 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t31);
|
|
/* 028D7848 */ _t32 = cpu->r[1] + 0x00000044u;
|
|
/* 028D7848 */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028D784C */ _t33 = cpu->r[1] + 0x00000040u;
|
|
/* 028D784C */ cpu->r[30] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028D7850 */ _t34 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D7850 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028D7850 */ if (_t35) goto L_028D7854; // else: addr-0 trap, fall-through
|
|
L_028D7854: ; // 0x28d7854
|
|
/* 028D7854 */ _t36 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028D7854 */ cpu->r[0] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028D7858 */ cpu->lr = cpu->r[0];
|
|
/* 028D785C */ cpu->r[1] = cpu->r[1] + 0x00000078u;
|
|
/* 028D7860 */ return;
|
|
}
|
|
|
|
// fn_028D7864 @ 0x28d7864
|
|
void Gambit_fn_028D7864(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D7864: ; // 0x28d7864
|
|
/* 028D7864 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7868 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7868 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D7868 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D7868 */ goto L_028D786C;
|
|
L_028D786C: ; // 0x28d786c
|
|
/* 028D786C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D786C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D7870 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7870 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D7870 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D7870 */ goto L_028D7874;
|
|
L_028D7874: ; // 0x28d7874
|
|
/* 028D7874 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D7878 @ 0x28d7878
|
|
void Gambit_fn_028D7878(CPUState* cpu) {
|
|
L_028D7878: ; // 0x28d7878
|
|
/* 028D7878 */ return;
|
|
}
|
|
|
|
// fn_028D787C @ 0x28d787c
|
|
void Gambit_fn_028D787C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D787C: ; // 0x28d787c
|
|
/* 028D787C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7880 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7880 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D7880 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D7880 */ goto L_028D7884;
|
|
L_028D7884: ; // 0x28d7884
|
|
/* 028D7884 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D7884 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D7888 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7888 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D7888 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D7888 */ goto L_028D788C;
|
|
L_028D788C: ; // 0x28d788c
|
|
/* 028D788C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D7890 @ 0x28d7890
|
|
void Gambit_fn_028D7890(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028D7890: ; // 0x28d7890
|
|
/* 028D7890 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028D7890 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028D7894 */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 028D7894 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028D7898 */ cpu->r[12] = cpu->r[11] + cpu->r[12];
|
|
/* 028D789C */ cpu->r[11] = 0x10110000u;
|
|
/* 028D78A0 */ _t2 = cpu->r[11] + 0x00007399u;
|
|
/* 028D78A0 */ cpu->r[0] = rbrew_read8(cpu->mem, _t2);
|
|
/* 028D78A4 */ _t3 = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028D78A4 */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[0]);
|
|
/* 028D78A8 */ return;
|
|
}
|
|
|
|
// fn_028D78AC @ 0x28d78ac
|
|
void Gambit_fn_028D78AC(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028D78AC: ; // 0x28d78ac
|
|
/* 028D78AC */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028D78AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028D78B0 */ _t1 = cpu->r[3] + 0x00000000u;
|
|
/* 028D78B0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D78B4 */ return;
|
|
}
|
|
|
|
// fn_028D78B8 @ 0x28d78b8
|
|
void Gambit_fn_028D78B8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24;
|
|
|
|
L_028D78B8: ; // 0x28d78b8
|
|
/* 028D78B8 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028D78B8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D78B8 */ cpu->r[1] = _t0;
|
|
/* 028D78BC */ /* nop */
|
|
/* 028D78C0 */ cpu->r[0] = cpu->lr;
|
|
/* 028D78C4 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028D78C4 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D78C8 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D78CC */ _t2 = cpu->r[29] + 0x00000004u;
|
|
/* 028D78CC */ cpu->r[8] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028D78D0 */ _t3 = cpu->r[8] + 0x00000014u;
|
|
/* 028D78D0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D78D4 */ cpu->r[28] = cpu->r[3];
|
|
/* 028D78D8 */ cpu->ctr = cpu->r[9];
|
|
/* 028D78DC */ _t4 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D78DC */ cpu->r[27] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D78E0 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D78E4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D78E8 */ cpu->r[31] = 0x10110000u;
|
|
/* 028D78EC */ _t5 = cpu->r[29] + 0x00000000u;
|
|
/* 028D78EC */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D78F0 */ _t6 = cpu->r[31] + 0x00007399u;
|
|
/* 028D78F0 */ cpu->r[31] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028D78F4 */ _t7 = cpu->r[11] + 0x00000000u;
|
|
/* 028D78F4 */ cpu->r[10] = rbrew_read8(cpu->mem, _t7);
|
|
/* 028D78F8 */ cpu->r[30] = 0x00000000u;
|
|
/* 028D78FC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[31]);
|
|
/* 028D7900 */ cpu->r[12] = 0x00080000u;
|
|
/* 028D7904 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7904 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D7904 */ if (_t9) goto L_028D792C; else goto L_028D7908;
|
|
L_028D7908: ; // 0x28d7908
|
|
/* 028D7908 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028D790C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[12]);
|
|
/* 028D7910 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 028D7914 */ _t10 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D7914 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D7914 */ if (_t11) goto L_028D7928; else goto L_028D7918;
|
|
L_028D7918: ; // 0x28d7918
|
|
/* 028D7918 */ _t12 = cpu->r[11] + 0x00000000u;
|
|
/* 028D7918 */ cpu->r[0] = rbrew_read8(cpu->mem, _t12);
|
|
/* 028D791C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[31]);
|
|
/* 028D7920 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7920 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D7920 */ if (_t14) goto L_028D7924; else goto L_028D7908;
|
|
L_028D7924: ; // 0x28d7924
|
|
/* 028D7924 */ goto L_028D792C;
|
|
L_028D7928: ; // 0x28d7928
|
|
/* 028D7928 */ cpu->r[30] = 0x00000000u;
|
|
L_028D792C: ; // 0x28d792c
|
|
/* 028D792C */ _t15 = cpu->r[28] + 0x00000014u;
|
|
/* 028D792C */ cpu->r[7] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D7930 */ _t16 = cpu->r[29] + 0x00000004u;
|
|
/* 028D7930 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D7934 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[7]);
|
|
/* 028D7938 */ _t17 = cpu->r[12] + 0x00000014u;
|
|
/* 028D7938 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D793C */ _t18 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D793C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D793C */ if (_t19) goto L_028D7944; else goto L_028D7940;
|
|
L_028D7940: ; // 0x28d7940
|
|
/* 028D7940 */ cpu->r[30] = cpu->r[7] + 0xFFFFFFFFu;
|
|
L_028D7944: ; // 0x28d7944
|
|
/* 028D7944 */ cpu->ctr = cpu->r[0];
|
|
/* 028D7948 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D794C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D7950 */ _t20 = cpu->r[29] + 0x00000000u;
|
|
/* 028D7950 */ cpu->r[4] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D7954 */ cpu->r[6] = 0x00000000u;
|
|
/* 028D7958 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D795C */ cpu->r[3] = cpu->r[27];
|
|
/* 028D7960 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028D7964 */ _t21 = cpu->r[27] + cpu->r[30];
|
|
/* 028D7964 */ rbrew_write8(cpu->mem, _t21, (uint8_t)cpu->r[31]);
|
|
/* 028D7968 */ _t22 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D7968 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D796C */ _t23 = cpu->r[28] + 0x00000000u;
|
|
/* 028D796C */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 028D7970 */ /* nop */
|
|
/* 028D7974 */ _t24 = cpu->r[1] + 0x00000024u;
|
|
/* 028D7974 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D7978 */ cpu->lr = cpu->r[0];
|
|
/* 028D797C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028D7980 */ return;
|
|
}
|
|
|
|
// fn_028D7984 @ 0x28d7984
|
|
void Gambit_fn_028D7984(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D7984: ; // 0x28d7984
|
|
/* 028D7984 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7988 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7988 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D7988 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D7988 */ goto L_028D798C;
|
|
L_028D798C: ; // 0x28d798c
|
|
/* 028D798C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D798C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D7990 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7990 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D7990 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D7990 */ goto L_028D7994;
|
|
L_028D7994: ; // 0x28d7994
|
|
/* 028D7994 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D7998 @ 0x28d7998
|
|
void Gambit_fn_028D7998(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D7998: ; // 0x28d7998
|
|
/* 028D7998 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D799C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D799C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D799C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D799C */ goto L_028D79A0;
|
|
L_028D79A0: ; // 0x28d79a0
|
|
/* 028D79A0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D79A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D79A4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D79A4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D79A4 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D79A4 */ goto L_028D79A8;
|
|
L_028D79A8: ; // 0x28d79a8
|
|
/* 028D79A8 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D79AC @ 0x28d79ac
|
|
void Gambit_fn_028D79AC(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028D79AC: ; // 0x28d79ac
|
|
/* 028D79AC */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028D79AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028D79B0 */ _t1 = cpu->r[3] + 0x0000003Cu;
|
|
/* 028D79B0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D79B4 */ return;
|
|
}
|
|
|
|
// fn_028D79B8 @ 0x28d79b8
|
|
void Gambit_fn_028D79B8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D79B8: ; // 0x28d79b8
|
|
/* 028D79B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D79BC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D79BC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D79BC */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D79BC */ goto L_028D79C0;
|
|
L_028D79C0: ; // 0x28d79c0
|
|
/* 028D79C0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D79C4 */ cpu->r[0] = cpu->r[0] + 0xFFFFABA4u;
|
|
/* 028D79C8 */ cpu->r[12] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D79C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D79CC */ _t18 = cpu->r[3] + 0x00000038u;
|
|
/* 028D79CC */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028D79D0 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D79D0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028D79D0 */ if (_t20) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D79D0 */ goto L_028D79D4;
|
|
L_028D79D4: ; // 0x28d79d4
|
|
/* 028D79D4 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D79D8 @ 0x28d79d8
|
|
void Gambit_fn_028D79D8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028D79D8: ; // 0x28d79d8
|
|
/* 028D79D8 */ cpu->r[0] = cpu->lr;
|
|
/* 028D79DC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D79DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D79DC */ cpu->r[1] = _t0;
|
|
/* 028D79E0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D79E0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D79E4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D79E4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D79E8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D79E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D79EC */ cpu->r[30] = cpu->r[4];
|
|
/* 028D79F0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D79F0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D79F4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D79F4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D79F4 */ if (_t5) goto L_028D79F8; else goto L_028D7A08;
|
|
L_028D79F8: ; // 0x28d79f8
|
|
/* 028D79F8 */ cpu->r[3] = 0x00000050u;
|
|
/* 028D79FC */ Gambit_fn_02801A78(cpu);
|
|
/* 028D7A00 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D7A00 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D7A04 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7A04 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D7A04 */ if (_t7) goto L_028D7A40; else goto L_028D7A08;
|
|
L_028D7A08: ; // 0x28d7a08
|
|
/* 028D7A08 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D7A0C */ cpu->r[4] = cpu->r[30];
|
|
/* 028D7A10 */ Gambit_fn_028D74B4(cpu);
|
|
/* 028D7A14 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D7A18 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D7A1C */ cpu->r[12] = cpu->r[12] + 0xFFFFAC58u;
|
|
/* 028D7A20 */ _t8 = cpu->r[11] + 0xFFFFAC14u;
|
|
/* 028D7A20 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028D7A24 */ cpu->r[10] = 0x10140000u;
|
|
/* 028D7A28 */ _t9 = cpu->r[31] + 0x00000038u;
|
|
/* 028D7A28 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 028D7A2C */ cpu->r[10] = cpu->r[10] + 0xFFFFAC18u;
|
|
/* 028D7A30 */ _t10 = cpu->r[31] + 0x00000048u;
|
|
/* 028D7A30 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 028D7A34 */ cpu->r[0] = 0x00000000u;
|
|
/* 028D7A38 */ _t11 = cpu->r[31] + 0x00000008u;
|
|
/* 028D7A38 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
/* 028D7A3C */ _t12 = cpu->r[31] + 0x0000004Cu;
|
|
/* 028D7A3C */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
L_028D7A40: ; // 0x28d7a40
|
|
/* 028D7A40 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7A40 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D7A44 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D7A48 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7A48 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D7A4C */ cpu->lr = cpu->r[0];
|
|
/* 028D7A50 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7A50 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D7A54 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D7A58 */ return;
|
|
}
|
|
|
|
// fn_028D79DC @ 0x28d79dc
|
|
void Gambit_fn_028D79DC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028D79DC: ; // 0x28d79dc
|
|
/* 028D79DC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D79DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D79DC */ cpu->r[1] = _t0;
|
|
/* 028D79E0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D79E0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D79E4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D79E4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D79E8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D79E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D79EC */ cpu->r[30] = cpu->r[4];
|
|
/* 028D79F0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D79F0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D79F4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D79F4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D79F4 */ if (_t5) goto L_028D79F8; else goto L_028D7A08;
|
|
L_028D79F8: ; // 0x28d79f8
|
|
/* 028D79F8 */ cpu->r[3] = 0x00000050u;
|
|
/* 028D79FC */ Gambit_fn_02801A78(cpu);
|
|
/* 028D7A00 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D7A00 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D7A04 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7A04 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D7A04 */ if (_t7) goto L_028D7A40; else goto L_028D7A08;
|
|
L_028D7A08: ; // 0x28d7a08
|
|
/* 028D7A08 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D7A0C */ cpu->r[4] = cpu->r[30];
|
|
/* 028D7A10 */ Gambit_fn_028D74B4(cpu);
|
|
/* 028D7A14 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D7A18 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D7A1C */ cpu->r[12] = cpu->r[12] + 0xFFFFAC58u;
|
|
/* 028D7A20 */ _t8 = cpu->r[11] + 0xFFFFAC14u;
|
|
/* 028D7A20 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028D7A24 */ cpu->r[10] = 0x10140000u;
|
|
/* 028D7A28 */ _t9 = cpu->r[31] + 0x00000038u;
|
|
/* 028D7A28 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 028D7A2C */ cpu->r[10] = cpu->r[10] + 0xFFFFAC18u;
|
|
/* 028D7A30 */ _t10 = cpu->r[31] + 0x00000048u;
|
|
/* 028D7A30 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 028D7A34 */ cpu->r[0] = 0x00000000u;
|
|
/* 028D7A38 */ _t11 = cpu->r[31] + 0x00000008u;
|
|
/* 028D7A38 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
/* 028D7A3C */ _t12 = cpu->r[31] + 0x0000004Cu;
|
|
/* 028D7A3C */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
L_028D7A40: ; // 0x28d7a40
|
|
/* 028D7A40 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7A40 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D7A44 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D7A48 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7A48 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D7A4C */ cpu->lr = cpu->r[0];
|
|
/* 028D7A50 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7A50 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D7A54 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D7A58 */ return;
|
|
}
|
|
|
|
// fn_028D7A5C @ 0x28d7a5c
|
|
void Gambit_fn_028D7A5C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028D7A5C: ; // 0x28d7a5c
|
|
/* 028D7A5C */ cpu->r[0] = cpu->lr;
|
|
/* 028D7A60 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D7A60 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D7A60 */ cpu->r[1] = _t0;
|
|
/* 028D7A64 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7A64 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D7A68 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7A68 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D7A6C */ cpu->r[31] = cpu->r[4];
|
|
/* 028D7A70 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D7A74 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7A74 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D7A78 */ Gambit_fn_028C2A24(cpu);
|
|
/* 028D7A7C */ cpu->r[4] = cpu->r[30];
|
|
/* 028D7A80 */ Gambit_fn_028D7290(cpu);
|
|
/* 028D7A84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7A88 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7A88 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D7A88 */ if (_t5) goto L_028D7A8C; else goto L_028D7AC4;
|
|
L_028D7A8C: ; // 0x28d7a8c
|
|
/* 028D7A8C */ cpu->r[4] = cpu->r[31];
|
|
/* 028D7A90 */ cpu->r[3] = 0x00000050u;
|
|
/* 028D7A94 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D7A98 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D7A9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7AA0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7AA0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D7AA0 */ if (_t7) goto L_028D7AC4; else goto L_028D7AA4;
|
|
L_028D7AA4: ; // 0x28d7aa4
|
|
/* 028D7AA4 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D7AA8 */ Gambit_fn_028D79D8(cpu);
|
|
/* 028D7AAC */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7AAC */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D7AB0 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7AB0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D7AB4 */ cpu->lr = cpu->r[0];
|
|
/* 028D7AB8 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7AB8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D7ABC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D7AC0 */ return;
|
|
L_028D7AC4: ; // 0x28d7ac4
|
|
/* 028D7AC4 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7AC4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D7AC8 */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7AC8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D7ACC */ cpu->lr = cpu->r[0];
|
|
/* 028D7AD0 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7AD0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D7AD4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D7AD8 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D7ADC */ return;
|
|
}
|
|
|
|
// fn_028D7A60 @ 0x28d7a60
|
|
void Gambit_fn_028D7A60(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028D7A60: ; // 0x28d7a60
|
|
/* 028D7A60 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D7A60 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D7A60 */ cpu->r[1] = _t0;
|
|
/* 028D7A64 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7A64 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D7A68 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7A68 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D7A6C */ cpu->r[31] = cpu->r[4];
|
|
/* 028D7A70 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D7A74 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7A74 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D7A78 */ Gambit_fn_028C2A24(cpu);
|
|
/* 028D7A7C */ cpu->r[4] = cpu->r[30];
|
|
/* 028D7A80 */ Gambit_fn_028D7290(cpu);
|
|
/* 028D7A84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7A88 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7A88 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D7A88 */ if (_t5) goto L_028D7A8C; else goto L_028D7AC4;
|
|
L_028D7A8C: ; // 0x28d7a8c
|
|
/* 028D7A8C */ cpu->r[4] = cpu->r[31];
|
|
/* 028D7A90 */ cpu->r[3] = 0x00000050u;
|
|
/* 028D7A94 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D7A98 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D7A9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7AA0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7AA0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D7AA0 */ if (_t7) goto L_028D7AC4; else goto L_028D7AA4;
|
|
L_028D7AA4: ; // 0x28d7aa4
|
|
/* 028D7AA4 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D7AA8 */ Gambit_fn_028D79D8(cpu);
|
|
/* 028D7AAC */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7AAC */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D7AB0 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7AB0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D7AB4 */ cpu->lr = cpu->r[0];
|
|
/* 028D7AB8 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7AB8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D7ABC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D7AC0 */ return;
|
|
L_028D7AC4: ; // 0x28d7ac4
|
|
/* 028D7AC4 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7AC4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D7AC8 */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7AC8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D7ACC */ cpu->lr = cpu->r[0];
|
|
/* 028D7AD0 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7AD0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D7AD4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D7AD8 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D7ADC */ return;
|
|
}
|
|
|
|
// fn_028D7AE0 @ 0x28d7ae0
|
|
void Gambit_fn_028D7AE0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028D7AE0: ; // 0x28d7ae0
|
|
/* 028D7AE0 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028D7AE0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028D7AE4 */ _t1 = cpu->r[3] + 0x0000003Cu;
|
|
/* 028D7AE4 */ rbrew_write32(cpu->mem, _t1, cpu->r[12]);
|
|
/* 028D7AE8 */ _t2 = cpu->r[4] + 0x00000004u;
|
|
/* 028D7AE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028D7AEC */ _t3 = cpu->r[3] + 0x0000004Cu;
|
|
/* 028D7AEC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D7AF0 */ return;
|
|
}
|
|
|
|
// fn_028D7AF4 @ 0x28d7af4
|
|
void Gambit_fn_028D7AF4(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028D7AF4: ; // 0x28d7af4
|
|
/* 028D7AF4 */ _t0 = cpu->r[3] + 0x00000048u;
|
|
/* 028D7AF4 */ rbrew_write_f32(cpu->mem, _t0, cpu->f[1]);
|
|
/* 028D7AF8 */ return;
|
|
}
|
|
|
|
// fn_028D7AFC @ 0x28d7afc
|
|
void Gambit_fn_028D7AFC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112;
|
|
|
|
L_028D7AFC: ; // 0x28d7afc
|
|
/* 028D7AFC */ cpu->r[0] = cpu->lr;
|
|
/* 028D7B00 */ _t0 = cpu->r[1] + 0xFFFFFF80u;
|
|
/* 028D7B00 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D7B00 */ cpu->r[1] = _t0;
|
|
/* 028D7B04 */ _t1 = cpu->r[1] + 0x00000074u;
|
|
/* 028D7B04 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028D7B08 */ _t2 = cpu->r[1] + 0x00000078u;
|
|
/* 028D7B08 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D7B0C */ _t3 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028D7B0C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D7B10 */ _t4 = cpu->r[1] + 0x00000084u;
|
|
/* 028D7B10 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D7B14 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D7B18 */ _t5 = cpu->r[29] + 0x0000003Cu;
|
|
/* 028D7B18 */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D7B1C */ cpu->r[30] = cpu->r[4];
|
|
/* 028D7B20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D7B24 */ cpu->r[4] = cpu->r[5];
|
|
/* 028D7B28 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7B28 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D7B28 */ if (_t7) goto L_028D7D74; else goto L_028D7B2C;
|
|
L_028D7B2C: ; // 0x28d7b2c
|
|
/* 028D7B2C */ cpu->r[0] = 0x00000003u;
|
|
/* 028D7B30 */ cpu->r[7] = cpu->r[31] + 0xFFFFFFFCu;
|
|
/* 028D7B34 */ cpu->ctr = cpu->r[0];
|
|
/* 028D7B38 */ cpu->r[10] = cpu->r[1] + 0x00000040u;
|
|
L_028D7B3C: ; // 0x28d7b3c
|
|
/* 028D7B3C */ _t8 = cpu->r[7] + 0x00000004u;
|
|
/* 028D7B3C */ cpu->r[6] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D7B40 */ _t9 = cpu->r[10] + 0x00000004u;
|
|
/* 028D7B40 */ rbrew_write32(cpu->mem, _t9, cpu->r[6]);
|
|
/* 028D7B44 */ _t10 = cpu->r[7] + 0x00000008u;
|
|
/* 028D7B44 */ cpu->r[8] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D7B48 */ _t11 = cpu->r[10] + 0x00000008u;
|
|
/* 028D7B48 */ rbrew_write32(cpu->mem, _t11, cpu->r[8]);
|
|
/* 028D7B4C */ _t12 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028D7B4C */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D7B50 */ _t13 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028D7B50 */ rbrew_write32(cpu->mem, _t13, cpu->r[9]);
|
|
/* 028D7B54 */ _t14 = cpu->r[7] + 0x00000010u;
|
|
/* 028D7B54 */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D7B54 */ cpu->r[7] = _t14;
|
|
/* 028D7B58 */ _t15 = cpu->r[10] + 0x00000010u;
|
|
/* 028D7B58 */ rbrew_write32(cpu->mem, _t15, cpu->r[12]);
|
|
/* 028D7B58 */ cpu->r[10] = _t15;
|
|
/* 028D7B5C */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028D7B5C */ _t16 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028D7B5C */ _t17 = _t16 >> (0x00000002u & 31u);
|
|
/* 028D7B5C */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D7B5C */ if (_t18) goto L_028D7B3C; else goto L_028D7B60;
|
|
L_028D7B60: ; // 0x28d7b60
|
|
/* 028D7B60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028D7B64 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7B64 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028D7B64 */ if (_t20) goto L_028D7B70; else goto L_028D7B68;
|
|
L_028D7B68: ; // 0x28d7b68
|
|
/* 028D7B68 */ cpu->r[3] = cpu->r[1] + 0x00000044u;
|
|
/* 028D7B6C */ Gambit_fn_02C69510(cpu);
|
|
L_028D7B70: ; // 0x28d7b70
|
|
/* 028D7B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D7B74 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7B74 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028D7B74 */ if (_t22) goto L_028D7D74; else goto L_028D7B78;
|
|
L_028D7B78: ; // 0x28d7b78
|
|
/* 028D7B78 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D7B7C */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 028D7B80 */ Gambit_fn_0281A90C(cpu);
|
|
/* 028D7B84 */ _t23 = cpu->r[29] + 0x0000004Cu;
|
|
/* 028D7B84 */ cpu->r[7] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D7B88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028D7B8C */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7B8C */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D7B8C */ if (_t25) goto L_028D7BD4; else goto L_028D7B90;
|
|
L_028D7B90: ; // 0x28d7b90
|
|
/* 028D7B90 */ _t26 = cpu->r[7] + 0x00000000u;
|
|
/* 028D7B90 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028D7B94 */ cpu->r[8] = 0x101F0000u;
|
|
/* 028D7B98 */ _t27 = cpu->r[8] + 0x00006338u;
|
|
/* 028D7B98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D7B98 */ cpu->r[8] = _t27;
|
|
/* 028D7B9C */ _t28 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7B9C */ rbrew_write_f32(cpu->mem, _t28, cpu->f[13]);
|
|
/* 028D7BA0 */ _t29 = cpu->r[7] + 0x00000004u;
|
|
/* 028D7BA0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t29);
|
|
/* 028D7BA4 */ _t30 = cpu->r[8] + 0x00000004u;
|
|
/* 028D7BA4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028D7BA8 */ _t31 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7BA8 */ rbrew_write_f32(cpu->mem, _t31, cpu->f[0]);
|
|
/* 028D7BAC */ _t32 = cpu->r[7] + 0x00000008u;
|
|
/* 028D7BAC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t32);
|
|
/* 028D7BB0 */ _t33 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D7BB0 */ rbrew_write32(cpu->mem, _t33, cpu->r[0]);
|
|
/* 028D7BB4 */ _t34 = cpu->r[1] + 0x00000010u;
|
|
/* 028D7BB4 */ rbrew_write_f32(cpu->mem, _t34, cpu->f[0]);
|
|
/* 028D7BB8 */ _t35 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7BB8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t35);
|
|
/* 028D7BBC */ _t36 = cpu->r[8] + 0x00000008u;
|
|
/* 028D7BBC */ cpu->r[0] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028D7BC0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[0]);
|
|
/* 028D7BC4 */ _t37 = cpu->r[1] + 0x00000030u;
|
|
/* 028D7BC4 */ rbrew_write32(cpu->mem, _t37, cpu->r[12]);
|
|
/* 028D7BC8 */ _t38 = cpu->r[1] + 0x00000034u;
|
|
/* 028D7BC8 */ rbrew_write32(cpu->mem, _t38, cpu->r[0]);
|
|
/* 028D7BCC */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7BCC */ _t40 = _t39 & 0x00000001u;
|
|
/* 028D7BCC */ if (_t40) goto L_028D7BD0; else goto L_028D7CB4;
|
|
L_028D7BD0: ; // 0x28d7bd0
|
|
/* 028D7BD0 */ goto L_028D7CA4;
|
|
L_028D7BD4: ; // 0x28d7bd4
|
|
/* 028D7BD4 */ cpu->r[10] = 0x101D0000u;
|
|
/* 028D7BD8 */ _t41 = cpu->r[10] + 0xFFFFD840u;
|
|
/* 028D7BD8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028D7BD8 */ cpu->r[10] = _t41;
|
|
/* 028D7BDC */ cpu->r[4] = 0x101D0000u;
|
|
/* 028D7BE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028D7BE4 */ cpu->r[4] = cpu->r[4] + 0x0000141Cu;
|
|
/* 028D7BE8 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7BE8 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028D7BE8 */ if (_t43) goto L_028D7BEC; else goto L_028D7C00;
|
|
L_028D7BEC: ; // 0x28d7bec
|
|
/* 028D7BEC */ cpu->r[0] = 0x10140000u;
|
|
/* 028D7BF0 */ cpu->r[9] = 0x00000001u;
|
|
/* 028D7BF4 */ cpu->r[0] = cpu->r[0] + 0xFFFFAC04u;
|
|
/* 028D7BF8 */ _t44 = cpu->r[10] + 0x00000000u;
|
|
/* 028D7BF8 */ rbrew_write32(cpu->mem, _t44, cpu->r[9]);
|
|
/* 028D7BFC */ _t45 = cpu->r[4] + 0x00000000u;
|
|
/* 028D7BFC */ rbrew_write32(cpu->mem, _t45, cpu->r[0]);
|
|
L_028D7C00: ; // 0x28d7c00
|
|
/* 028D7C00 */ _t46 = cpu->r[31] + 0x00000030u;
|
|
/* 028D7C00 */ cpu->r[12] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028D7C04 */ _t47 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028D7C04 */ cpu->r[6] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028D7C08 */ cpu->ctr = cpu->r[6];
|
|
/* 028D7C0C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D7C10 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D7C14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7C18 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7C18 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028D7C18 */ if (_t49) goto L_028D7C68; else goto L_028D7C1C;
|
|
L_028D7C1C: ; // 0x28d7c1c
|
|
/* 028D7C1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D7C20 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7C20 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028D7C20 */ if (_t51) goto L_028D7C68; else goto L_028D7C24;
|
|
L_028D7C24: ; // 0x28d7c24
|
|
/* 028D7C24 */ _t52 = cpu->r[31] + 0x00000040u;
|
|
/* 028D7C24 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 028D7C28 */ cpu->r[8] = 0x101F0000u;
|
|
/* 028D7C2C */ _t53 = cpu->r[8] + 0x00006338u;
|
|
/* 028D7C2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028D7C2C */ cpu->r[8] = _t53;
|
|
/* 028D7C30 */ _t54 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7C30 */ rbrew_write_f32(cpu->mem, _t54, cpu->f[12]);
|
|
/* 028D7C34 */ _t55 = cpu->r[31] + 0x00000044u;
|
|
/* 028D7C34 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t55);
|
|
/* 028D7C38 */ _t56 = cpu->r[8] + 0x00000004u;
|
|
/* 028D7C38 */ cpu->r[12] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028D7C3C */ _t57 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7C3C */ rbrew_write_f32(cpu->mem, _t57, cpu->f[13]);
|
|
/* 028D7C40 */ _t58 = cpu->r[31] + 0x00000048u;
|
|
/* 028D7C40 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t58);
|
|
/* 028D7C44 */ _t59 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D7C44 */ rbrew_write32(cpu->mem, _t59, cpu->r[0]);
|
|
/* 028D7C48 */ _t60 = cpu->r[1] + 0x00000010u;
|
|
/* 028D7C48 */ rbrew_write_f32(cpu->mem, _t60, cpu->f[0]);
|
|
/* 028D7C4C */ _t61 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7C4C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t61);
|
|
/* 028D7C50 */ _t62 = cpu->r[8] + 0x00000008u;
|
|
/* 028D7C50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028D7C54 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[0]);
|
|
/* 028D7C58 */ _t63 = cpu->r[1] + 0x00000030u;
|
|
/* 028D7C58 */ rbrew_write32(cpu->mem, _t63, cpu->r[12]);
|
|
/* 028D7C5C */ _t64 = cpu->r[1] + 0x00000034u;
|
|
/* 028D7C5C */ rbrew_write32(cpu->mem, _t64, cpu->r[0]);
|
|
/* 028D7C60 */ _t65 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7C60 */ _t66 = _t65 & 0x00000001u;
|
|
/* 028D7C60 */ if (_t66) goto L_028D7C64; else goto L_028D7CB4;
|
|
L_028D7C64: ; // 0x28d7c64
|
|
/* 028D7C64 */ goto L_028D7CA4;
|
|
L_028D7C68: ; // 0x28d7c68
|
|
/* 028D7C68 */ _t67 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7C68 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t67);
|
|
/* 028D7C6C */ cpu->r[8] = 0x101F0000u;
|
|
/* 028D7C70 */ _t68 = cpu->r[1] + 0x00000018u;
|
|
/* 028D7C70 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t68);
|
|
/* 028D7C74 */ _t69 = cpu->r[8] + 0x00006338u;
|
|
/* 028D7C74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028D7C74 */ cpu->r[8] = _t69;
|
|
/* 028D7C78 */ _t70 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7C78 */ rbrew_write_f32(cpu->mem, _t70, cpu->f[11]);
|
|
/* 028D7C7C */ _t71 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D7C7C */ rbrew_write32(cpu->mem, _t71, cpu->r[0]);
|
|
/* 028D7C80 */ _t72 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D7C80 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t72);
|
|
/* 028D7C84 */ _t73 = cpu->r[8] + 0x00000008u;
|
|
/* 028D7C84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028D7C88 */ _t74 = cpu->r[1] + 0x00000010u;
|
|
/* 028D7C88 */ rbrew_write_f32(cpu->mem, _t74, cpu->f[0]);
|
|
/* 028D7C8C */ _t75 = cpu->r[1] + 0x00000034u;
|
|
/* 028D7C8C */ rbrew_write32(cpu->mem, _t75, cpu->r[0]);
|
|
/* 028D7C90 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[13]);
|
|
/* 028D7C94 */ _t76 = cpu->r[8] + 0x00000004u;
|
|
/* 028D7C94 */ cpu->r[12] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028D7C98 */ _t77 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7C98 */ rbrew_write_f32(cpu->mem, _t77, cpu->f[13]);
|
|
/* 028D7C9C */ _t78 = cpu->r[1] + 0x00000030u;
|
|
/* 028D7C9C */ rbrew_write32(cpu->mem, _t78, cpu->r[12]);
|
|
/* 028D7CA0 */ _t79 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7CA0 */ _t80 = _t79 & 0x00000001u;
|
|
/* 028D7CA0 */ if (_t80) goto L_028D7CA4; else goto L_028D7CB4;
|
|
L_028D7CA4: ; // 0x28d7ca4
|
|
/* 028D7CA4 */ _t81 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7CA4 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t81);
|
|
/* 028D7CA8 */ _t82 = cpu->r[1] + 0x00000018u;
|
|
/* 028D7CA8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t82);
|
|
/* 028D7CAC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[11], cpu->f[12]);
|
|
/* 028D7CB0 */ _t83 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7CB0 */ _t84 = _t83 & 0x00000001u;
|
|
/* 028D7CB0 */ if (_t84) goto L_028D7D08; else goto L_028D7CB4;
|
|
L_028D7CB4: ; // 0x28d7cb4
|
|
/* 028D7CB4 */ /* nop */
|
|
/* 028D7CB8 */ /* nop */
|
|
/* 028D7CBC */ _t85 = cpu->r[1] + 0x00000010u;
|
|
/* 028D7CBC */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t85);
|
|
/* 028D7CC0 */ /* nop */
|
|
/* 028D7CC4 */ _t86 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D7CC4 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t86);
|
|
/* 028D7CC8 */ /* nop */
|
|
/* 028D7CCC */ _t87 = cpu->r[1] + 0x00000020u;
|
|
/* 028D7CCC */ cpu->r[10] = rbrew_read32(cpu->mem, _t87);
|
|
/* 028D7CD0 */ cpu->f[12] = cpu->f[12] - cpu->f[10];
|
|
/* 028D7CD4 */ _t88 = cpu->r[1] + 0x00000024u;
|
|
/* 028D7CD4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t88);
|
|
/* 028D7CD8 */ _t89 = cpu->r[1] + 0x00000038u;
|
|
/* 028D7CD8 */ rbrew_write32(cpu->mem, _t89, cpu->r[10]);
|
|
/* 028D7CDC */ _t90 = cpu->r[1] + 0x00000028u;
|
|
/* 028D7CDC */ rbrew_write_f32(cpu->mem, _t90, cpu->f[12]);
|
|
/* 028D7CE0 */ _t91 = cpu->r[1] + 0x00000028u;
|
|
/* 028D7CE0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t91);
|
|
/* 028D7CE4 */ _t92 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D7CE4 */ rbrew_write32(cpu->mem, _t92, cpu->r[11]);
|
|
/* 028D7CE8 */ cpu->r[3] = cpu->r[1] + 0x00000038u;
|
|
/* 028D7CEC */ _t93 = cpu->r[1] + 0x00000040u;
|
|
/* 028D7CEC */ rbrew_write32(cpu->mem, _t93, cpu->r[0]);
|
|
/* 028D7CF0 */ Gambit_fn_02C69350(cpu);
|
|
/* 028D7CF4 */ _t94 = cpu->r[29] + 0x00000048u;
|
|
/* 028D7CF4 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t94);
|
|
/* 028D7CF8 */ cpu->f[11] = cpu->f[1] * cpu->f[12];
|
|
/* 028D7CFC */ cpu->f[13] = -cpu->f[11];
|
|
/* 028D7D00 */ _t95 = cpu->r[1] + 0x00000034u;
|
|
/* 028D7D00 */ rbrew_write_f32(cpu->mem, _t95, cpu->f[13]);
|
|
/* 028D7D04 */ goto L_028D7D60;
|
|
L_028D7D08: ; // 0x28d7d08
|
|
/* 028D7D08 */ _t96 = cpu->r[1] + 0x00000010u;
|
|
/* 028D7D08 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t96);
|
|
/* 028D7D0C */ _t97 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D7D0C */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t97);
|
|
/* 028D7D10 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[10]);
|
|
/* 028D7D14 */ _t98 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7D14 */ _t99 = _t98 & 0x00000001u;
|
|
/* 028D7D14 */ if (_t99) goto L_028D7D60; else goto L_028D7D18;
|
|
L_028D7D18: ; // 0x28d7d18
|
|
/* 028D7D18 */ cpu->f[12] = cpu->f[12] - cpu->f[10];
|
|
/* 028D7D1C */ /* nop */
|
|
/* 028D7D20 */ /* nop */
|
|
/* 028D7D24 */ _t100 = cpu->r[1] + 0x00000028u;
|
|
/* 028D7D24 */ rbrew_write_f32(cpu->mem, _t100, cpu->f[12]);
|
|
/* 028D7D28 */ _t101 = cpu->r[1] + 0x00000028u;
|
|
/* 028D7D28 */ cpu->r[0] = rbrew_read32(cpu->mem, _t101);
|
|
/* 028D7D2C */ /* nop */
|
|
/* 028D7D30 */ /* nop */
|
|
/* 028D7D34 */ _t102 = cpu->r[1] + 0x00000024u;
|
|
/* 028D7D34 */ cpu->r[11] = rbrew_read32(cpu->mem, _t102);
|
|
/* 028D7D38 */ _t103 = cpu->r[1] + 0x00000020u;
|
|
/* 028D7D38 */ cpu->r[10] = rbrew_read32(cpu->mem, _t103);
|
|
/* 028D7D3C */ _t104 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D7D3C */ rbrew_write32(cpu->mem, _t104, cpu->r[11]);
|
|
/* 028D7D40 */ _t105 = cpu->r[1] + 0x00000040u;
|
|
/* 028D7D40 */ rbrew_write32(cpu->mem, _t105, cpu->r[0]);
|
|
/* 028D7D44 */ cpu->r[3] = cpu->r[1] + 0x00000038u;
|
|
/* 028D7D48 */ _t106 = cpu->r[1] + 0x00000038u;
|
|
/* 028D7D48 */ rbrew_write32(cpu->mem, _t106, cpu->r[10]);
|
|
/* 028D7D4C */ Gambit_fn_02C69350(cpu);
|
|
/* 028D7D50 */ _t107 = cpu->r[29] + 0x00000048u;
|
|
/* 028D7D50 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t107);
|
|
/* 028D7D54 */ cpu->f[11] = cpu->f[1] * cpu->f[12];
|
|
/* 028D7D58 */ cpu->f[13] = -cpu->f[11];
|
|
/* 028D7D5C */ _t108 = cpu->r[1] + 0x00000034u;
|
|
/* 028D7D5C */ rbrew_write_f32(cpu->mem, _t108, cpu->f[13]);
|
|
L_028D7D60: ; // 0x28d7d60
|
|
/* 028D7D60 */ cpu->r[6] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D7D64 */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 028D7D68 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D7D6C */ cpu->r[3] = cpu->r[30];
|
|
/* 028D7D70 */ Gambit_fn_028D771C(cpu);
|
|
L_028D7D74: ; // 0x28d7d74
|
|
/* 028D7D74 */ _t109 = cpu->r[1] + 0x00000074u;
|
|
/* 028D7D74 */ cpu->r[29] = rbrew_read32(cpu->mem, _t109);
|
|
/* 028D7D78 */ _t110 = cpu->r[1] + 0x00000084u;
|
|
/* 028D7D78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t110);
|
|
/* 028D7D7C */ _t111 = cpu->r[1] + 0x00000078u;
|
|
/* 028D7D7C */ cpu->r[30] = rbrew_read32(cpu->mem, _t111);
|
|
/* 028D7D80 */ cpu->lr = cpu->r[0];
|
|
/* 028D7D84 */ _t112 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028D7D84 */ cpu->r[31] = rbrew_read32(cpu->mem, _t112);
|
|
/* 028D7D88 */ cpu->r[1] = cpu->r[1] + 0x00000080u;
|
|
/* 028D7D8C */ return;
|
|
}
|
|
|
|
// fn_028D7B00 @ 0x28d7b00
|
|
void Gambit_fn_028D7B00(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112;
|
|
|
|
L_028D7B00: ; // 0x28d7b00
|
|
/* 028D7B00 */ _t0 = cpu->r[1] + 0xFFFFFF80u;
|
|
/* 028D7B00 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D7B00 */ cpu->r[1] = _t0;
|
|
/* 028D7B04 */ _t1 = cpu->r[1] + 0x00000074u;
|
|
/* 028D7B04 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028D7B08 */ _t2 = cpu->r[1] + 0x00000078u;
|
|
/* 028D7B08 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D7B0C */ _t3 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028D7B0C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D7B10 */ _t4 = cpu->r[1] + 0x00000084u;
|
|
/* 028D7B10 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D7B14 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D7B18 */ _t5 = cpu->r[29] + 0x0000003Cu;
|
|
/* 028D7B18 */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D7B1C */ cpu->r[30] = cpu->r[4];
|
|
/* 028D7B20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D7B24 */ cpu->r[4] = cpu->r[5];
|
|
/* 028D7B28 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7B28 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D7B28 */ if (_t7) goto L_028D7D74; else goto L_028D7B2C;
|
|
L_028D7B2C: ; // 0x28d7b2c
|
|
/* 028D7B2C */ cpu->r[0] = 0x00000003u;
|
|
/* 028D7B30 */ cpu->r[7] = cpu->r[31] + 0xFFFFFFFCu;
|
|
/* 028D7B34 */ cpu->ctr = cpu->r[0];
|
|
/* 028D7B38 */ cpu->r[10] = cpu->r[1] + 0x00000040u;
|
|
L_028D7B3C: ; // 0x28d7b3c
|
|
/* 028D7B3C */ _t8 = cpu->r[7] + 0x00000004u;
|
|
/* 028D7B3C */ cpu->r[6] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D7B40 */ _t9 = cpu->r[10] + 0x00000004u;
|
|
/* 028D7B40 */ rbrew_write32(cpu->mem, _t9, cpu->r[6]);
|
|
/* 028D7B44 */ _t10 = cpu->r[7] + 0x00000008u;
|
|
/* 028D7B44 */ cpu->r[8] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D7B48 */ _t11 = cpu->r[10] + 0x00000008u;
|
|
/* 028D7B48 */ rbrew_write32(cpu->mem, _t11, cpu->r[8]);
|
|
/* 028D7B4C */ _t12 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028D7B4C */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D7B50 */ _t13 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028D7B50 */ rbrew_write32(cpu->mem, _t13, cpu->r[9]);
|
|
/* 028D7B54 */ _t14 = cpu->r[7] + 0x00000010u;
|
|
/* 028D7B54 */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D7B54 */ cpu->r[7] = _t14;
|
|
/* 028D7B58 */ _t15 = cpu->r[10] + 0x00000010u;
|
|
/* 028D7B58 */ rbrew_write32(cpu->mem, _t15, cpu->r[12]);
|
|
/* 028D7B58 */ cpu->r[10] = _t15;
|
|
/* 028D7B5C */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028D7B5C */ _t16 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028D7B5C */ _t17 = _t16 >> (0x00000002u & 31u);
|
|
/* 028D7B5C */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D7B5C */ if (_t18) goto L_028D7B3C; else goto L_028D7B60;
|
|
L_028D7B60: ; // 0x28d7b60
|
|
/* 028D7B60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028D7B64 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7B64 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028D7B64 */ if (_t20) goto L_028D7B70; else goto L_028D7B68;
|
|
L_028D7B68: ; // 0x28d7b68
|
|
/* 028D7B68 */ cpu->r[3] = cpu->r[1] + 0x00000044u;
|
|
/* 028D7B6C */ Gambit_fn_02C69510(cpu);
|
|
L_028D7B70: ; // 0x28d7b70
|
|
/* 028D7B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D7B74 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7B74 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028D7B74 */ if (_t22) goto L_028D7D74; else goto L_028D7B78;
|
|
L_028D7B78: ; // 0x28d7b78
|
|
/* 028D7B78 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D7B7C */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 028D7B80 */ Gambit_fn_0281A90C(cpu);
|
|
/* 028D7B84 */ _t23 = cpu->r[29] + 0x0000004Cu;
|
|
/* 028D7B84 */ cpu->r[7] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D7B88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028D7B8C */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7B8C */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D7B8C */ if (_t25) goto L_028D7BD4; else goto L_028D7B90;
|
|
L_028D7B90: ; // 0x28d7b90
|
|
/* 028D7B90 */ _t26 = cpu->r[7] + 0x00000000u;
|
|
/* 028D7B90 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028D7B94 */ cpu->r[8] = 0x101F0000u;
|
|
/* 028D7B98 */ _t27 = cpu->r[8] + 0x00006338u;
|
|
/* 028D7B98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028D7B98 */ cpu->r[8] = _t27;
|
|
/* 028D7B9C */ _t28 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7B9C */ rbrew_write_f32(cpu->mem, _t28, cpu->f[13]);
|
|
/* 028D7BA0 */ _t29 = cpu->r[7] + 0x00000004u;
|
|
/* 028D7BA0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t29);
|
|
/* 028D7BA4 */ _t30 = cpu->r[8] + 0x00000004u;
|
|
/* 028D7BA4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028D7BA8 */ _t31 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7BA8 */ rbrew_write_f32(cpu->mem, _t31, cpu->f[0]);
|
|
/* 028D7BAC */ _t32 = cpu->r[7] + 0x00000008u;
|
|
/* 028D7BAC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t32);
|
|
/* 028D7BB0 */ _t33 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D7BB0 */ rbrew_write32(cpu->mem, _t33, cpu->r[0]);
|
|
/* 028D7BB4 */ _t34 = cpu->r[1] + 0x00000010u;
|
|
/* 028D7BB4 */ rbrew_write_f32(cpu->mem, _t34, cpu->f[0]);
|
|
/* 028D7BB8 */ _t35 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7BB8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t35);
|
|
/* 028D7BBC */ _t36 = cpu->r[8] + 0x00000008u;
|
|
/* 028D7BBC */ cpu->r[0] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028D7BC0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[0]);
|
|
/* 028D7BC4 */ _t37 = cpu->r[1] + 0x00000030u;
|
|
/* 028D7BC4 */ rbrew_write32(cpu->mem, _t37, cpu->r[12]);
|
|
/* 028D7BC8 */ _t38 = cpu->r[1] + 0x00000034u;
|
|
/* 028D7BC8 */ rbrew_write32(cpu->mem, _t38, cpu->r[0]);
|
|
/* 028D7BCC */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7BCC */ _t40 = _t39 & 0x00000001u;
|
|
/* 028D7BCC */ if (_t40) goto L_028D7BD0; else goto L_028D7CB4;
|
|
L_028D7BD0: ; // 0x28d7bd0
|
|
/* 028D7BD0 */ goto L_028D7CA4;
|
|
L_028D7BD4: ; // 0x28d7bd4
|
|
/* 028D7BD4 */ cpu->r[10] = 0x101D0000u;
|
|
/* 028D7BD8 */ _t41 = cpu->r[10] + 0xFFFFD840u;
|
|
/* 028D7BD8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028D7BD8 */ cpu->r[10] = _t41;
|
|
/* 028D7BDC */ cpu->r[4] = 0x101D0000u;
|
|
/* 028D7BE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028D7BE4 */ cpu->r[4] = cpu->r[4] + 0x0000141Cu;
|
|
/* 028D7BE8 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7BE8 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028D7BE8 */ if (_t43) goto L_028D7BEC; else goto L_028D7C00;
|
|
L_028D7BEC: ; // 0x28d7bec
|
|
/* 028D7BEC */ cpu->r[0] = 0x10140000u;
|
|
/* 028D7BF0 */ cpu->r[9] = 0x00000001u;
|
|
/* 028D7BF4 */ cpu->r[0] = cpu->r[0] + 0xFFFFAC04u;
|
|
/* 028D7BF8 */ _t44 = cpu->r[10] + 0x00000000u;
|
|
/* 028D7BF8 */ rbrew_write32(cpu->mem, _t44, cpu->r[9]);
|
|
/* 028D7BFC */ _t45 = cpu->r[4] + 0x00000000u;
|
|
/* 028D7BFC */ rbrew_write32(cpu->mem, _t45, cpu->r[0]);
|
|
L_028D7C00: ; // 0x28d7c00
|
|
/* 028D7C00 */ _t46 = cpu->r[31] + 0x00000030u;
|
|
/* 028D7C00 */ cpu->r[12] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028D7C04 */ _t47 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028D7C04 */ cpu->r[6] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028D7C08 */ cpu->ctr = cpu->r[6];
|
|
/* 028D7C0C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D7C10 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D7C14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7C18 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7C18 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028D7C18 */ if (_t49) goto L_028D7C68; else goto L_028D7C1C;
|
|
L_028D7C1C: ; // 0x28d7c1c
|
|
/* 028D7C1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D7C20 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7C20 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028D7C20 */ if (_t51) goto L_028D7C68; else goto L_028D7C24;
|
|
L_028D7C24: ; // 0x28d7c24
|
|
/* 028D7C24 */ _t52 = cpu->r[31] + 0x00000040u;
|
|
/* 028D7C24 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 028D7C28 */ cpu->r[8] = 0x101F0000u;
|
|
/* 028D7C2C */ _t53 = cpu->r[8] + 0x00006338u;
|
|
/* 028D7C2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028D7C2C */ cpu->r[8] = _t53;
|
|
/* 028D7C30 */ _t54 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7C30 */ rbrew_write_f32(cpu->mem, _t54, cpu->f[12]);
|
|
/* 028D7C34 */ _t55 = cpu->r[31] + 0x00000044u;
|
|
/* 028D7C34 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t55);
|
|
/* 028D7C38 */ _t56 = cpu->r[8] + 0x00000004u;
|
|
/* 028D7C38 */ cpu->r[12] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028D7C3C */ _t57 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7C3C */ rbrew_write_f32(cpu->mem, _t57, cpu->f[13]);
|
|
/* 028D7C40 */ _t58 = cpu->r[31] + 0x00000048u;
|
|
/* 028D7C40 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t58);
|
|
/* 028D7C44 */ _t59 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D7C44 */ rbrew_write32(cpu->mem, _t59, cpu->r[0]);
|
|
/* 028D7C48 */ _t60 = cpu->r[1] + 0x00000010u;
|
|
/* 028D7C48 */ rbrew_write_f32(cpu->mem, _t60, cpu->f[0]);
|
|
/* 028D7C4C */ _t61 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7C4C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t61);
|
|
/* 028D7C50 */ _t62 = cpu->r[8] + 0x00000008u;
|
|
/* 028D7C50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028D7C54 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[0]);
|
|
/* 028D7C58 */ _t63 = cpu->r[1] + 0x00000030u;
|
|
/* 028D7C58 */ rbrew_write32(cpu->mem, _t63, cpu->r[12]);
|
|
/* 028D7C5C */ _t64 = cpu->r[1] + 0x00000034u;
|
|
/* 028D7C5C */ rbrew_write32(cpu->mem, _t64, cpu->r[0]);
|
|
/* 028D7C60 */ _t65 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7C60 */ _t66 = _t65 & 0x00000001u;
|
|
/* 028D7C60 */ if (_t66) goto L_028D7C64; else goto L_028D7CB4;
|
|
L_028D7C64: ; // 0x28d7c64
|
|
/* 028D7C64 */ goto L_028D7CA4;
|
|
L_028D7C68: ; // 0x28d7c68
|
|
/* 028D7C68 */ _t67 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7C68 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t67);
|
|
/* 028D7C6C */ cpu->r[8] = 0x101F0000u;
|
|
/* 028D7C70 */ _t68 = cpu->r[1] + 0x00000018u;
|
|
/* 028D7C70 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t68);
|
|
/* 028D7C74 */ _t69 = cpu->r[8] + 0x00006338u;
|
|
/* 028D7C74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028D7C74 */ cpu->r[8] = _t69;
|
|
/* 028D7C78 */ _t70 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7C78 */ rbrew_write_f32(cpu->mem, _t70, cpu->f[11]);
|
|
/* 028D7C7C */ _t71 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D7C7C */ rbrew_write32(cpu->mem, _t71, cpu->r[0]);
|
|
/* 028D7C80 */ _t72 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D7C80 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t72);
|
|
/* 028D7C84 */ _t73 = cpu->r[8] + 0x00000008u;
|
|
/* 028D7C84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028D7C88 */ _t74 = cpu->r[1] + 0x00000010u;
|
|
/* 028D7C88 */ rbrew_write_f32(cpu->mem, _t74, cpu->f[0]);
|
|
/* 028D7C8C */ _t75 = cpu->r[1] + 0x00000034u;
|
|
/* 028D7C8C */ rbrew_write32(cpu->mem, _t75, cpu->r[0]);
|
|
/* 028D7C90 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[13]);
|
|
/* 028D7C94 */ _t76 = cpu->r[8] + 0x00000004u;
|
|
/* 028D7C94 */ cpu->r[12] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028D7C98 */ _t77 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7C98 */ rbrew_write_f32(cpu->mem, _t77, cpu->f[13]);
|
|
/* 028D7C9C */ _t78 = cpu->r[1] + 0x00000030u;
|
|
/* 028D7C9C */ rbrew_write32(cpu->mem, _t78, cpu->r[12]);
|
|
/* 028D7CA0 */ _t79 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7CA0 */ _t80 = _t79 & 0x00000001u;
|
|
/* 028D7CA0 */ if (_t80) goto L_028D7CA4; else goto L_028D7CB4;
|
|
L_028D7CA4: ; // 0x28d7ca4
|
|
/* 028D7CA4 */ _t81 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7CA4 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t81);
|
|
/* 028D7CA8 */ _t82 = cpu->r[1] + 0x00000018u;
|
|
/* 028D7CA8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t82);
|
|
/* 028D7CAC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[11], cpu->f[12]);
|
|
/* 028D7CB0 */ _t83 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7CB0 */ _t84 = _t83 & 0x00000001u;
|
|
/* 028D7CB0 */ if (_t84) goto L_028D7D08; else goto L_028D7CB4;
|
|
L_028D7CB4: ; // 0x28d7cb4
|
|
/* 028D7CB4 */ /* nop */
|
|
/* 028D7CB8 */ /* nop */
|
|
/* 028D7CBC */ _t85 = cpu->r[1] + 0x00000010u;
|
|
/* 028D7CBC */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t85);
|
|
/* 028D7CC0 */ /* nop */
|
|
/* 028D7CC4 */ _t86 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D7CC4 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t86);
|
|
/* 028D7CC8 */ /* nop */
|
|
/* 028D7CCC */ _t87 = cpu->r[1] + 0x00000020u;
|
|
/* 028D7CCC */ cpu->r[10] = rbrew_read32(cpu->mem, _t87);
|
|
/* 028D7CD0 */ cpu->f[12] = cpu->f[12] - cpu->f[10];
|
|
/* 028D7CD4 */ _t88 = cpu->r[1] + 0x00000024u;
|
|
/* 028D7CD4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t88);
|
|
/* 028D7CD8 */ _t89 = cpu->r[1] + 0x00000038u;
|
|
/* 028D7CD8 */ rbrew_write32(cpu->mem, _t89, cpu->r[10]);
|
|
/* 028D7CDC */ _t90 = cpu->r[1] + 0x00000028u;
|
|
/* 028D7CDC */ rbrew_write_f32(cpu->mem, _t90, cpu->f[12]);
|
|
/* 028D7CE0 */ _t91 = cpu->r[1] + 0x00000028u;
|
|
/* 028D7CE0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t91);
|
|
/* 028D7CE4 */ _t92 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D7CE4 */ rbrew_write32(cpu->mem, _t92, cpu->r[11]);
|
|
/* 028D7CE8 */ cpu->r[3] = cpu->r[1] + 0x00000038u;
|
|
/* 028D7CEC */ _t93 = cpu->r[1] + 0x00000040u;
|
|
/* 028D7CEC */ rbrew_write32(cpu->mem, _t93, cpu->r[0]);
|
|
/* 028D7CF0 */ Gambit_fn_02C69350(cpu);
|
|
/* 028D7CF4 */ _t94 = cpu->r[29] + 0x00000048u;
|
|
/* 028D7CF4 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t94);
|
|
/* 028D7CF8 */ cpu->f[11] = cpu->f[1] * cpu->f[12];
|
|
/* 028D7CFC */ cpu->f[13] = -cpu->f[11];
|
|
/* 028D7D00 */ _t95 = cpu->r[1] + 0x00000034u;
|
|
/* 028D7D00 */ rbrew_write_f32(cpu->mem, _t95, cpu->f[13]);
|
|
/* 028D7D04 */ goto L_028D7D60;
|
|
L_028D7D08: ; // 0x28d7d08
|
|
/* 028D7D08 */ _t96 = cpu->r[1] + 0x00000010u;
|
|
/* 028D7D08 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t96);
|
|
/* 028D7D0C */ _t97 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D7D0C */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t97);
|
|
/* 028D7D10 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[10]);
|
|
/* 028D7D14 */ _t98 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7D14 */ _t99 = _t98 & 0x00000001u;
|
|
/* 028D7D14 */ if (_t99) goto L_028D7D60; else goto L_028D7D18;
|
|
L_028D7D18: ; // 0x28d7d18
|
|
/* 028D7D18 */ cpu->f[12] = cpu->f[12] - cpu->f[10];
|
|
/* 028D7D1C */ /* nop */
|
|
/* 028D7D20 */ /* nop */
|
|
/* 028D7D24 */ _t100 = cpu->r[1] + 0x00000028u;
|
|
/* 028D7D24 */ rbrew_write_f32(cpu->mem, _t100, cpu->f[12]);
|
|
/* 028D7D28 */ _t101 = cpu->r[1] + 0x00000028u;
|
|
/* 028D7D28 */ cpu->r[0] = rbrew_read32(cpu->mem, _t101);
|
|
/* 028D7D2C */ /* nop */
|
|
/* 028D7D30 */ /* nop */
|
|
/* 028D7D34 */ _t102 = cpu->r[1] + 0x00000024u;
|
|
/* 028D7D34 */ cpu->r[11] = rbrew_read32(cpu->mem, _t102);
|
|
/* 028D7D38 */ _t103 = cpu->r[1] + 0x00000020u;
|
|
/* 028D7D38 */ cpu->r[10] = rbrew_read32(cpu->mem, _t103);
|
|
/* 028D7D3C */ _t104 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D7D3C */ rbrew_write32(cpu->mem, _t104, cpu->r[11]);
|
|
/* 028D7D40 */ _t105 = cpu->r[1] + 0x00000040u;
|
|
/* 028D7D40 */ rbrew_write32(cpu->mem, _t105, cpu->r[0]);
|
|
/* 028D7D44 */ cpu->r[3] = cpu->r[1] + 0x00000038u;
|
|
/* 028D7D48 */ _t106 = cpu->r[1] + 0x00000038u;
|
|
/* 028D7D48 */ rbrew_write32(cpu->mem, _t106, cpu->r[10]);
|
|
/* 028D7D4C */ Gambit_fn_02C69350(cpu);
|
|
/* 028D7D50 */ _t107 = cpu->r[29] + 0x00000048u;
|
|
/* 028D7D50 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t107);
|
|
/* 028D7D54 */ cpu->f[11] = cpu->f[1] * cpu->f[12];
|
|
/* 028D7D58 */ cpu->f[13] = -cpu->f[11];
|
|
/* 028D7D5C */ _t108 = cpu->r[1] + 0x00000034u;
|
|
/* 028D7D5C */ rbrew_write_f32(cpu->mem, _t108, cpu->f[13]);
|
|
L_028D7D60: ; // 0x28d7d60
|
|
/* 028D7D60 */ cpu->r[6] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D7D64 */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 028D7D68 */ cpu->r[4] = cpu->r[31];
|
|
/* 028D7D6C */ cpu->r[3] = cpu->r[30];
|
|
/* 028D7D70 */ Gambit_fn_028D771C(cpu);
|
|
L_028D7D74: ; // 0x28d7d74
|
|
/* 028D7D74 */ _t109 = cpu->r[1] + 0x00000074u;
|
|
/* 028D7D74 */ cpu->r[29] = rbrew_read32(cpu->mem, _t109);
|
|
/* 028D7D78 */ _t110 = cpu->r[1] + 0x00000084u;
|
|
/* 028D7D78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t110);
|
|
/* 028D7D7C */ _t111 = cpu->r[1] + 0x00000078u;
|
|
/* 028D7D7C */ cpu->r[30] = rbrew_read32(cpu->mem, _t111);
|
|
/* 028D7D80 */ cpu->lr = cpu->r[0];
|
|
/* 028D7D84 */ _t112 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028D7D84 */ cpu->r[31] = rbrew_read32(cpu->mem, _t112);
|
|
/* 028D7D88 */ cpu->r[1] = cpu->r[1] + 0x00000080u;
|
|
/* 028D7D8C */ return;
|
|
}
|
|
|
|
// fn_028D7D90 @ 0x28d7d90
|
|
void Gambit_fn_028D7D90(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24;
|
|
|
|
L_028D7D90: ; // 0x28d7d90
|
|
/* 028D7D90 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028D7D90 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D7D90 */ cpu->r[1] = _t0;
|
|
/* 028D7D94 */ /* nop */
|
|
/* 028D7D98 */ cpu->r[0] = cpu->lr;
|
|
/* 028D7D9C */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028D7D9C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D7DA0 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D7DA4 */ _t2 = cpu->r[29] + 0x00000004u;
|
|
/* 028D7DA4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028D7DA8 */ _t3 = cpu->r[8] + 0x00000014u;
|
|
/* 028D7DA8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D7DAC */ cpu->r[28] = cpu->r[3];
|
|
/* 028D7DB0 */ cpu->ctr = cpu->r[9];
|
|
/* 028D7DB4 */ _t4 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D7DB4 */ cpu->r[27] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D7DB8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D7DBC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D7DC0 */ cpu->r[31] = 0x10110000u;
|
|
/* 028D7DC4 */ _t5 = cpu->r[29] + 0x00000000u;
|
|
/* 028D7DC4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D7DC8 */ _t6 = cpu->r[31] + 0x00007399u;
|
|
/* 028D7DC8 */ cpu->r[31] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028D7DCC */ _t7 = cpu->r[11] + 0x00000000u;
|
|
/* 028D7DCC */ cpu->r[10] = rbrew_read8(cpu->mem, _t7);
|
|
/* 028D7DD0 */ cpu->r[30] = 0x00000000u;
|
|
/* 028D7DD4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[31]);
|
|
/* 028D7DD8 */ cpu->r[12] = 0x00080000u;
|
|
/* 028D7DDC */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7DDC */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D7DDC */ if (_t9) goto L_028D7E04; else goto L_028D7DE0;
|
|
L_028D7DE0: ; // 0x28d7de0
|
|
/* 028D7DE0 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028D7DE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[12]);
|
|
/* 028D7DE8 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 028D7DEC */ _t10 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D7DEC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D7DEC */ if (_t11) goto L_028D7E00; else goto L_028D7DF0;
|
|
L_028D7DF0: ; // 0x28d7df0
|
|
/* 028D7DF0 */ _t12 = cpu->r[11] + 0x00000000u;
|
|
/* 028D7DF0 */ cpu->r[0] = rbrew_read8(cpu->mem, _t12);
|
|
/* 028D7DF4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[31]);
|
|
/* 028D7DF8 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7DF8 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D7DF8 */ if (_t14) goto L_028D7DFC; else goto L_028D7DE0;
|
|
L_028D7DFC: ; // 0x28d7dfc
|
|
/* 028D7DFC */ goto L_028D7E04;
|
|
L_028D7E00: ; // 0x28d7e00
|
|
/* 028D7E00 */ cpu->r[30] = 0x00000000u;
|
|
L_028D7E04: ; // 0x28d7e04
|
|
/* 028D7E04 */ _t15 = cpu->r[28] + 0x00000014u;
|
|
/* 028D7E04 */ cpu->r[7] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D7E08 */ _t16 = cpu->r[29] + 0x00000004u;
|
|
/* 028D7E08 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D7E0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[7]);
|
|
/* 028D7E10 */ _t17 = cpu->r[12] + 0x00000014u;
|
|
/* 028D7E10 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D7E14 */ _t18 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D7E14 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D7E14 */ if (_t19) goto L_028D7E1C; else goto L_028D7E18;
|
|
L_028D7E18: ; // 0x28d7e18
|
|
/* 028D7E18 */ cpu->r[30] = cpu->r[7] + 0xFFFFFFFFu;
|
|
L_028D7E1C: ; // 0x28d7e1c
|
|
/* 028D7E1C */ cpu->ctr = cpu->r[0];
|
|
/* 028D7E20 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D7E24 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D7E28 */ _t20 = cpu->r[29] + 0x00000000u;
|
|
/* 028D7E28 */ cpu->r[4] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D7E2C */ cpu->r[6] = 0x00000000u;
|
|
/* 028D7E30 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D7E34 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D7E38 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028D7E3C */ _t21 = cpu->r[27] + cpu->r[30];
|
|
/* 028D7E3C */ rbrew_write8(cpu->mem, _t21, (uint8_t)cpu->r[31]);
|
|
/* 028D7E40 */ _t22 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D7E40 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D7E44 */ _t23 = cpu->r[28] + 0x00000000u;
|
|
/* 028D7E44 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 028D7E48 */ /* nop */
|
|
/* 028D7E4C */ _t24 = cpu->r[1] + 0x00000024u;
|
|
/* 028D7E4C */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D7E50 */ cpu->lr = cpu->r[0];
|
|
/* 028D7E54 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028D7E58 */ return;
|
|
}
|
|
|
|
// fn_028D7E5C @ 0x28d7e5c
|
|
void Gambit_fn_028D7E5C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D7E5C: ; // 0x28d7e5c
|
|
/* 028D7E5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7E60 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7E60 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D7E60 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D7E60 */ goto L_028D7E64;
|
|
L_028D7E64: ; // 0x28d7e64
|
|
/* 028D7E64 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D7E68 */ cpu->r[0] = cpu->r[0] + 0xFFFFABF4u;
|
|
/* 028D7E6C */ cpu->r[12] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D7E6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D7E70 */ _t18 = cpu->r[3] + 0x00000038u;
|
|
/* 028D7E70 */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028D7E74 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7E74 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028D7E74 */ if (_t20) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D7E74 */ goto L_028D7E78;
|
|
L_028D7E78: ; // 0x28d7e78
|
|
/* 028D7E78 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D7E7C @ 0x28d7e7c
|
|
void Gambit_fn_028D7E7C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24;
|
|
|
|
L_028D7E7C: ; // 0x28d7e7c
|
|
/* 028D7E7C */ cpu->r[0] = cpu->lr;
|
|
/* 028D7E80 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D7E80 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D7E80 */ cpu->r[1] = _t0;
|
|
/* 028D7E84 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7E84 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D7E88 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7E88 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D7E8C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D7E8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D7E90 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7E90 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D7E94 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7E94 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D7E94 */ if (_t5) goto L_028D7E98; else goto L_028D7EA8;
|
|
L_028D7E98: ; // 0x28d7e98
|
|
/* 028D7E98 */ cpu->r[3] = 0x00000060u;
|
|
/* 028D7E9C */ Gambit_fn_02801A78(cpu);
|
|
/* 028D7EA0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D7EA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D7EA4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7EA4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D7EA4 */ if (_t7) goto L_028D7F0C; else goto L_028D7EA8;
|
|
L_028D7EA8: ; // 0x28d7ea8
|
|
/* 028D7EA8 */ cpu->r[10] = 0x10140000u;
|
|
/* 028D7EAC */ cpu->r[10] = cpu->r[10] + 0xFFFFACB8u;
|
|
/* 028D7EB0 */ cpu->r[30] = cpu->r[31] + 0x00000014u;
|
|
/* 028D7EB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D7EB4 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028D7EB4 */ rbrew_write32(cpu->mem, _t8, cpu->r[10]);
|
|
/* 028D7EB8 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7EB8 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D7EB8 */ if (_t10) goto L_028D7EBC; else goto L_028D7ECC;
|
|
L_028D7EBC: ; // 0x28d7ebc
|
|
/* 028D7EBC */ cpu->r[3] = 0x00000010u;
|
|
/* 028D7EC0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D7EC4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D7EC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D7EC8 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7EC8 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D7EC8 */ if (_t12) goto L_028D7EFC; else goto L_028D7ECC;
|
|
L_028D7ECC: ; // 0x28d7ecc
|
|
/* 028D7ECC */ cpu->r[3] = cpu->r[30];
|
|
/* 028D7ECC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7ED0 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7ED0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D7ED0 */ if (_t14) goto L_028D7ED4; else goto L_028D7EE4;
|
|
L_028D7ED4: ; // 0x28d7ed4
|
|
/* 028D7ED4 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028D7ED8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D7EDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7EE0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7EE0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D7EE0 */ if (_t16) goto L_028D7EF4; else goto L_028D7EE4;
|
|
L_028D7EE4: ; // 0x28d7ee4
|
|
/* 028D7EE4 */ _t17 = cpu->r[3] + 0x00000000u;
|
|
/* 028D7EE4 */ rbrew_write32(cpu->mem, _t17, cpu->r[3]);
|
|
/* 028D7EE8 */ cpu->r[11] = 0x00000000u;
|
|
/* 028D7EEC */ _t18 = cpu->r[3] + 0x00000004u;
|
|
/* 028D7EEC */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
/* 028D7EF0 */ _t19 = cpu->r[3] + 0x00000008u;
|
|
/* 028D7EF0 */ rbrew_write32(cpu->mem, _t19, cpu->r[11]);
|
|
L_028D7EF4: ; // 0x28d7ef4
|
|
/* 028D7EF4 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028D7EF8 */ _t20 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028D7EF8 */ rbrew_write32(cpu->mem, _t20, cpu->r[0]);
|
|
L_028D7EFC: ; // 0x28d7efc
|
|
/* 028D7EFC */ cpu->r[3] = cpu->r[31] + 0x00000024u;
|
|
/* 028D7F00 */ Gambit_fn_02836EBC(cpu);
|
|
/* 028D7F04 */ cpu->r[0] = 0x00000004u;
|
|
/* 028D7F08 */ _t21 = cpu->r[31] + 0x00000020u;
|
|
/* 028D7F08 */ rbrew_write32(cpu->mem, _t21, cpu->r[0]);
|
|
L_028D7F0C: ; // 0x28d7f0c
|
|
/* 028D7F0C */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7F0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D7F10 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D7F14 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7F14 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D7F18 */ cpu->lr = cpu->r[0];
|
|
/* 028D7F1C */ _t24 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7F1C */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D7F20 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D7F24 */ return;
|
|
}
|
|
|
|
// fn_028D7E80 @ 0x28d7e80
|
|
void Gambit_fn_028D7E80(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24;
|
|
|
|
L_028D7E80: ; // 0x28d7e80
|
|
/* 028D7E80 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D7E80 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D7E80 */ cpu->r[1] = _t0;
|
|
/* 028D7E84 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7E84 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D7E88 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7E88 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D7E8C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D7E8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D7E90 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7E90 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D7E94 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7E94 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D7E94 */ if (_t5) goto L_028D7E98; else goto L_028D7EA8;
|
|
L_028D7E98: ; // 0x28d7e98
|
|
/* 028D7E98 */ cpu->r[3] = 0x00000060u;
|
|
/* 028D7E9C */ Gambit_fn_02801A78(cpu);
|
|
/* 028D7EA0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D7EA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D7EA4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7EA4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D7EA4 */ if (_t7) goto L_028D7F0C; else goto L_028D7EA8;
|
|
L_028D7EA8: ; // 0x28d7ea8
|
|
/* 028D7EA8 */ cpu->r[10] = 0x10140000u;
|
|
/* 028D7EAC */ cpu->r[10] = cpu->r[10] + 0xFFFFACB8u;
|
|
/* 028D7EB0 */ cpu->r[30] = cpu->r[31] + 0x00000014u;
|
|
/* 028D7EB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D7EB4 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028D7EB4 */ rbrew_write32(cpu->mem, _t8, cpu->r[10]);
|
|
/* 028D7EB8 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7EB8 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D7EB8 */ if (_t10) goto L_028D7EBC; else goto L_028D7ECC;
|
|
L_028D7EBC: ; // 0x28d7ebc
|
|
/* 028D7EBC */ cpu->r[3] = 0x00000010u;
|
|
/* 028D7EC0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D7EC4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D7EC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D7EC8 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7EC8 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D7EC8 */ if (_t12) goto L_028D7EFC; else goto L_028D7ECC;
|
|
L_028D7ECC: ; // 0x28d7ecc
|
|
/* 028D7ECC */ cpu->r[3] = cpu->r[30];
|
|
/* 028D7ECC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7ED0 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7ED0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D7ED0 */ if (_t14) goto L_028D7ED4; else goto L_028D7EE4;
|
|
L_028D7ED4: ; // 0x28d7ed4
|
|
/* 028D7ED4 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028D7ED8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D7EDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7EE0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7EE0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D7EE0 */ if (_t16) goto L_028D7EF4; else goto L_028D7EE4;
|
|
L_028D7EE4: ; // 0x28d7ee4
|
|
/* 028D7EE4 */ _t17 = cpu->r[3] + 0x00000000u;
|
|
/* 028D7EE4 */ rbrew_write32(cpu->mem, _t17, cpu->r[3]);
|
|
/* 028D7EE8 */ cpu->r[11] = 0x00000000u;
|
|
/* 028D7EEC */ _t18 = cpu->r[3] + 0x00000004u;
|
|
/* 028D7EEC */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
/* 028D7EF0 */ _t19 = cpu->r[3] + 0x00000008u;
|
|
/* 028D7EF0 */ rbrew_write32(cpu->mem, _t19, cpu->r[11]);
|
|
L_028D7EF4: ; // 0x28d7ef4
|
|
/* 028D7EF4 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028D7EF8 */ _t20 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028D7EF8 */ rbrew_write32(cpu->mem, _t20, cpu->r[0]);
|
|
L_028D7EFC: ; // 0x28d7efc
|
|
/* 028D7EFC */ cpu->r[3] = cpu->r[31] + 0x00000024u;
|
|
/* 028D7F00 */ Gambit_fn_02836EBC(cpu);
|
|
/* 028D7F04 */ cpu->r[0] = 0x00000004u;
|
|
/* 028D7F08 */ _t21 = cpu->r[31] + 0x00000020u;
|
|
/* 028D7F08 */ rbrew_write32(cpu->mem, _t21, cpu->r[0]);
|
|
L_028D7F0C: ; // 0x28d7f0c
|
|
/* 028D7F0C */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7F0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D7F10 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D7F14 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7F14 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D7F18 */ cpu->lr = cpu->r[0];
|
|
/* 028D7F1C */ _t24 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7F1C */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D7F20 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D7F24 */ return;
|
|
}
|
|
|
|
// fn_028D7F28 @ 0x28d7f28
|
|
void Gambit_fn_028D7F28(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20;
|
|
|
|
L_028D7F28: ; // 0x28d7f28
|
|
/* 028D7F28 */ cpu->r[0] = cpu->lr;
|
|
/* 028D7F2C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D7F2C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D7F2C */ cpu->r[1] = _t0;
|
|
/* 028D7F30 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028D7F30 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D7F34 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7F34 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028D7F38 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7F38 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028D7F3C */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7F3C */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028D7F40 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D7F40 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028D7F44 */ cpu->r[29] = 0x101D0000u;
|
|
/* 028D7F48 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D7F4C */ _t6 = cpu->r[29] + 0xFFFF9ABCu;
|
|
/* 028D7F4C */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D7F4C */ cpu->r[29] = _t6;
|
|
/* 028D7F50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7F54 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7F54 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D7F54 */ if (_t8) goto L_028D7F58; else goto L_028D7FA8;
|
|
L_028D7F58: ; // 0x28d7f58
|
|
/* 028D7F58 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D7F5C */ cpu->r[3] = 0x00000060u;
|
|
/* 028D7F60 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D7F64 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028D7F68 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D7F6C */ cpu->r[28] = cpu->r[31] + 0x00000004u;
|
|
/* 028D7F6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028D7F70 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7F70 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D7F70 */ if (_t10) goto L_028D7F90; else goto L_028D7F74;
|
|
L_028D7F74: ; // 0x28d7f74
|
|
/* 028D7F74 */ cpu->r[5] = 0x00000003u;
|
|
/* 028D7F78 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D7F7C */ cpu->r[3] = cpu->r[28];
|
|
/* 028D7F80 */ Gambit_fn_02821D88(cpu);
|
|
/* 028D7F84 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D7F88 */ cpu->r[0] = cpu->r[0] + 0xFFFFACA8u;
|
|
/* 028D7F8C */ _t11 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D7F8C */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_028D7F90: ; // 0x28d7f90
|
|
/* 028D7F90 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028D7F94 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D7F94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7F98 */ _t12 = cpu->r[12] + 0xFFFF9AC0u;
|
|
/* 028D7F98 */ rbrew_write32(cpu->mem, _t12, cpu->r[28]);
|
|
/* 028D7F9C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7F9C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D7F9C */ if (_t14) goto L_028D7FA4; else goto L_028D7FA0;
|
|
L_028D7FA0: ; // 0x28d7fa0
|
|
/* 028D7FA0 */ Gambit_fn_028D7E7C(cpu);
|
|
L_028D7FA4: ; // 0x28d7fa4
|
|
/* 028D7FA4 */ _t15 = cpu->r[29] + 0x00000000u;
|
|
/* 028D7FA4 */ rbrew_write32(cpu->mem, _t15, cpu->r[3]);
|
|
L_028D7FA8: ; // 0x28d7fa8
|
|
/* 028D7FA8 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7FA8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D7FAC */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7FAC */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D7FB0 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D7FB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D7FB4 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028D7FB4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D7FB8 */ cpu->lr = cpu->r[0];
|
|
/* 028D7FBC */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7FBC */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D7FC0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D7FC4 */ return;
|
|
}
|
|
|
|
// fn_028D7F2C @ 0x28d7f2c
|
|
void Gambit_fn_028D7F2C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20;
|
|
|
|
L_028D7F2C: ; // 0x28d7f2c
|
|
/* 028D7F2C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D7F2C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D7F2C */ cpu->r[1] = _t0;
|
|
/* 028D7F30 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028D7F30 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D7F34 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7F34 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028D7F38 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7F38 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028D7F3C */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7F3C */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028D7F40 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D7F40 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028D7F44 */ cpu->r[29] = 0x101D0000u;
|
|
/* 028D7F48 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D7F4C */ _t6 = cpu->r[29] + 0xFFFF9ABCu;
|
|
/* 028D7F4C */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D7F4C */ cpu->r[29] = _t6;
|
|
/* 028D7F50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7F54 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7F54 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D7F54 */ if (_t8) goto L_028D7F58; else goto L_028D7FA8;
|
|
L_028D7F58: ; // 0x28d7f58
|
|
/* 028D7F58 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D7F5C */ cpu->r[3] = 0x00000060u;
|
|
/* 028D7F60 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D7F64 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028D7F68 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D7F6C */ cpu->r[28] = cpu->r[31] + 0x00000004u;
|
|
/* 028D7F6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028D7F70 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7F70 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D7F70 */ if (_t10) goto L_028D7F90; else goto L_028D7F74;
|
|
L_028D7F74: ; // 0x28d7f74
|
|
/* 028D7F74 */ cpu->r[5] = 0x00000003u;
|
|
/* 028D7F78 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D7F7C */ cpu->r[3] = cpu->r[28];
|
|
/* 028D7F80 */ Gambit_fn_02821D88(cpu);
|
|
/* 028D7F84 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D7F88 */ cpu->r[0] = cpu->r[0] + 0xFFFFACA8u;
|
|
/* 028D7F8C */ _t11 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028D7F8C */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_028D7F90: ; // 0x28d7f90
|
|
/* 028D7F90 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028D7F94 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D7F94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D7F98 */ _t12 = cpu->r[12] + 0xFFFF9AC0u;
|
|
/* 028D7F98 */ rbrew_write32(cpu->mem, _t12, cpu->r[28]);
|
|
/* 028D7F9C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D7F9C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D7F9C */ if (_t14) goto L_028D7FA4; else goto L_028D7FA0;
|
|
L_028D7FA0: ; // 0x28d7fa0
|
|
/* 028D7FA0 */ Gambit_fn_028D7E7C(cpu);
|
|
L_028D7FA4: ; // 0x28d7fa4
|
|
/* 028D7FA4 */ _t15 = cpu->r[29] + 0x00000000u;
|
|
/* 028D7FA4 */ rbrew_write32(cpu->mem, _t15, cpu->r[3]);
|
|
L_028D7FA8: ; // 0x28d7fa8
|
|
/* 028D7FA8 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7FA8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D7FAC */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7FAC */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D7FB0 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D7FB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D7FB4 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028D7FB4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D7FB8 */ cpu->lr = cpu->r[0];
|
|
/* 028D7FBC */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7FBC */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D7FC0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D7FC4 */ return;
|
|
}
|
|
|
|
// fn_028D7FC8 @ 0x28d7fc8
|
|
void Gambit_fn_028D7FC8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028D7FC8: ; // 0x28d7fc8
|
|
/* 028D7FC8 */ cpu->r[0] = cpu->lr;
|
|
/* 028D7FCC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D7FCC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D7FCC */ cpu->r[1] = _t0;
|
|
/* 028D7FD0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7FD0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D7FD4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D7FD8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7FD8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D7FDC */ cpu->r[30] = cpu->r[31] + 0x00000024u;
|
|
/* 028D7FE0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D7FE4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7FE4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D7FE8 */ Gambit_fn_02836FFC(cpu);
|
|
/* 028D7FEC */ cpu->r[3] = cpu->r[31] + 0x00000014u;
|
|
/* 028D7FF0 */ Gambit_fn_0280236C(cpu);
|
|
/* 028D7FF4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D7FF8 */ Gambit_fn_02837030(cpu);
|
|
/* 028D7FFC */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7FFC */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D8000 */ _t5 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8000 */ cpu->r[30] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D8004 */ cpu->lr = cpu->r[0];
|
|
/* 028D8008 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8008 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D800C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D8010 */ return;
|
|
}
|
|
|
|
// fn_028D7FCC @ 0x28d7fcc
|
|
void Gambit_fn_028D7FCC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028D7FCC: ; // 0x28d7fcc
|
|
/* 028D7FCC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D7FCC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D7FCC */ cpu->r[1] = _t0;
|
|
/* 028D7FD0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D7FD0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D7FD4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D7FD8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D7FD8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D7FDC */ cpu->r[30] = cpu->r[31] + 0x00000024u;
|
|
/* 028D7FE0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D7FE4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7FE4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D7FE8 */ Gambit_fn_02836FFC(cpu);
|
|
/* 028D7FEC */ cpu->r[3] = cpu->r[31] + 0x00000014u;
|
|
/* 028D7FF0 */ Gambit_fn_0280236C(cpu);
|
|
/* 028D7FF4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D7FF8 */ Gambit_fn_02837030(cpu);
|
|
/* 028D7FFC */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028D7FFC */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D8000 */ _t5 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8000 */ cpu->r[30] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D8004 */ cpu->lr = cpu->r[0];
|
|
/* 028D8008 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8008 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D800C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D8010 */ return;
|
|
}
|
|
|
|
// fn_028D8014 @ 0x28d8014
|
|
void Gambit_fn_028D8014(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028D8014: ; // 0x28d8014
|
|
/* 028D8014 */ cpu->r[0] = cpu->lr;
|
|
/* 028D8018 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D8018 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8018 */ cpu->r[1] = _t0;
|
|
/* 028D801C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D801C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D8020 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8020 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D8024 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8024 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8028 */ cpu->r[30] = cpu->r[4];
|
|
/* 028D802C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D802C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D8030 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8030 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D8030 */ if (_t5) goto L_028D8064; else goto L_028D8034;
|
|
L_028D8034: ; // 0x28d8034
|
|
/* 028D8034 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D8038 */ cpu->r[0] = cpu->r[0] + 0xFFFFACB8u;
|
|
/* 028D803C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8040 */ _t6 = cpu->r[31] + 0x00000000u;
|
|
/* 028D8040 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028D8044 */ Gambit_fn_028D7FC8(cpu);
|
|
/* 028D8048 */ cpu->r[3] = cpu->r[31] + 0x00000024u;
|
|
/* 028D804C */ cpu->r[4] = 0x00000002u;
|
|
/* 028D8050 */ Gambit_fn_02836FA8(cpu);
|
|
/* 028D8054 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D8054 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D8058 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8058 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D8058 */ if (_t8) goto L_028D8064; else goto L_028D805C;
|
|
L_028D805C: ; // 0x28d805c
|
|
/* 028D805C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8060 */ Gambit_fn_02801BB0(cpu);
|
|
L_028D8064: ; // 0x28d8064
|
|
/* 028D8064 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8064 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D8068 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8068 */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D806C */ cpu->lr = cpu->r[0];
|
|
/* 028D8070 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8070 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D8074 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D8078 */ return;
|
|
}
|
|
|
|
// fn_028D8018 @ 0x28d8018
|
|
void Gambit_fn_028D8018(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028D8018: ; // 0x28d8018
|
|
/* 028D8018 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D8018 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8018 */ cpu->r[1] = _t0;
|
|
/* 028D801C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D801C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D8020 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8020 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D8024 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8024 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8028 */ cpu->r[30] = cpu->r[4];
|
|
/* 028D802C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D802C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D8030 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8030 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D8030 */ if (_t5) goto L_028D8064; else goto L_028D8034;
|
|
L_028D8034: ; // 0x28d8034
|
|
/* 028D8034 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D8038 */ cpu->r[0] = cpu->r[0] + 0xFFFFACB8u;
|
|
/* 028D803C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8040 */ _t6 = cpu->r[31] + 0x00000000u;
|
|
/* 028D8040 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028D8044 */ Gambit_fn_028D7FC8(cpu);
|
|
/* 028D8048 */ cpu->r[3] = cpu->r[31] + 0x00000024u;
|
|
/* 028D804C */ cpu->r[4] = 0x00000002u;
|
|
/* 028D8050 */ Gambit_fn_02836FA8(cpu);
|
|
/* 028D8054 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D8054 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D8058 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8058 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D8058 */ if (_t8) goto L_028D8064; else goto L_028D805C;
|
|
L_028D805C: ; // 0x28d805c
|
|
/* 028D805C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8060 */ Gambit_fn_02801BB0(cpu);
|
|
L_028D8064: ; // 0x28d8064
|
|
/* 028D8064 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8064 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D8068 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8068 */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D806C */ cpu->lr = cpu->r[0];
|
|
/* 028D8070 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8070 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D8074 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D8078 */ return;
|
|
}
|
|
|
|
// fn_028D807C @ 0x28d807c
|
|
void Gambit_fn_028D807C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028D807C: ; // 0x28d807c
|
|
/* 028D807C */ cpu->r[0] = cpu->lr;
|
|
/* 028D8080 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D8080 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8080 */ cpu->r[1] = _t0;
|
|
/* 028D8084 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8084 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028D8088 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028D8088 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D808C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D808C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D8090 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8090 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D8094 */ _t5 = cpu->r[3] + 0x00000020u;
|
|
/* 028D8094 */ cpu->r[30] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D8098 */ cpu->r[0] = cpu->r[3] + 0x00000014u;
|
|
/* 028D809C */ _t6 = cpu->r[3] + 0x00000018u;
|
|
/* 028D809C */ cpu->r[9] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D80A0 */ cpu->r[31] = cpu->r[0] - cpu->r[30];
|
|
/* 028D80A4 */ cpu->r[29] = cpu->r[9] - cpu->r[30];
|
|
/* 028D80A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028D80AC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D80AC */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D80AC */ if (_t8) goto L_028D80D8; else goto L_028D80B0;
|
|
L_028D80B0: ; // 0x28d80b0
|
|
/* 028D80B0 */ _t9 = cpu->r[29] + 0x00000000u;
|
|
/* 028D80B0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D80B4 */ _t10 = cpu->r[11] + 0x00000024u;
|
|
/* 028D80B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D80B8 */ cpu->ctr = cpu->r[12];
|
|
/* 028D80BC */ cpu->r[3] = cpu->r[29];
|
|
/* 028D80C0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D80C4 */ cpu->r[11] = cpu->r[29] + cpu->r[30];
|
|
/* 028D80C8 */ _t11 = cpu->r[11] + 0x00000004u;
|
|
/* 028D80C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D80CC */ cpu->r[29] = cpu->r[0] - cpu->r[30];
|
|
/* 028D80D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028D80D4 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D80D4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D80D4 */ if (_t13) goto L_028D80D8; else goto L_028D80B0;
|
|
L_028D80D8: ; // 0x28d80d8
|
|
/* 028D80D8 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D80D8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D80DC */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D80DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D80E0 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028D80E0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D80E4 */ cpu->lr = cpu->r[0];
|
|
/* 028D80E8 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028D80E8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D80EC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D80F0 */ return;
|
|
}
|
|
|
|
// fn_028D8080 @ 0x28d8080
|
|
void Gambit_fn_028D8080(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028D8080: ; // 0x28d8080
|
|
/* 028D8080 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D8080 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8080 */ cpu->r[1] = _t0;
|
|
/* 028D8084 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8084 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028D8088 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028D8088 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D808C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D808C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D8090 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8090 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D8094 */ _t5 = cpu->r[3] + 0x00000020u;
|
|
/* 028D8094 */ cpu->r[30] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D8098 */ cpu->r[0] = cpu->r[3] + 0x00000014u;
|
|
/* 028D809C */ _t6 = cpu->r[3] + 0x00000018u;
|
|
/* 028D809C */ cpu->r[9] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D80A0 */ cpu->r[31] = cpu->r[0] - cpu->r[30];
|
|
/* 028D80A4 */ cpu->r[29] = cpu->r[9] - cpu->r[30];
|
|
/* 028D80A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028D80AC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D80AC */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D80AC */ if (_t8) goto L_028D80D8; else goto L_028D80B0;
|
|
L_028D80B0: ; // 0x28d80b0
|
|
/* 028D80B0 */ _t9 = cpu->r[29] + 0x00000000u;
|
|
/* 028D80B0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D80B4 */ _t10 = cpu->r[11] + 0x00000024u;
|
|
/* 028D80B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D80B8 */ cpu->ctr = cpu->r[12];
|
|
/* 028D80BC */ cpu->r[3] = cpu->r[29];
|
|
/* 028D80C0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D80C4 */ cpu->r[11] = cpu->r[29] + cpu->r[30];
|
|
/* 028D80C8 */ _t11 = cpu->r[11] + 0x00000004u;
|
|
/* 028D80C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D80CC */ cpu->r[29] = cpu->r[0] - cpu->r[30];
|
|
/* 028D80D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028D80D4 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D80D4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D80D4 */ if (_t13) goto L_028D80D8; else goto L_028D80B0;
|
|
L_028D80D8: ; // 0x28d80d8
|
|
/* 028D80D8 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D80D8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D80DC */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D80DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D80E0 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028D80E0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D80E4 */ cpu->lr = cpu->r[0];
|
|
/* 028D80E8 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028D80E8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D80EC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D80F0 */ return;
|
|
}
|
|
|
|
// fn_028D80F4 @ 0x28d80f4
|
|
void Gambit_fn_028D80F4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72;
|
|
|
|
L_028D80F4: ; // 0x28d80f4
|
|
/* 028D80F4 */ _t0 = cpu->r[1] + 0xFFFFFFA8u;
|
|
/* 028D80F4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D80F4 */ cpu->r[1] = _t0;
|
|
/* 028D80F8 */ _t1 = cpu->r[1] + 0x00000048u;
|
|
/* 028D80F8 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028D80FC */ /* nop */
|
|
/* 028D8100 */ cpu->r[0] = cpu->lr;
|
|
/* 028D8104 */ cpu->r[25] = cpu->r[4];
|
|
/* 028D8108 */ /* nop */
|
|
/* 028D810C */ _t2 = cpu->r[1] + 0x00000050u;
|
|
/* 028D810C */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028D8110 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D8114 */ _t3 = cpu->r[1] + 0x00000038u;
|
|
/* 028D8114 */ rbrew_write_f64(cpu->mem, _t3, cpu->f[30]);
|
|
/* 028D8118 */ cpu->r[26] = cpu->r[5];
|
|
/* 028D811C */ _t4 = cpu->r[11] + 0xFFFFACA0u;
|
|
/* 028D811C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028D8120 */ /* nop */
|
|
/* 028D8124 */ _t5 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028D8124 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028D8128 */ cpu->r[27] = cpu->r[6];
|
|
/* 028D8128 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028D812C */ _t6 = cpu->r[1] + 0x00000040u;
|
|
/* 028D812C */ rbrew_write_f32(cpu->mem, _t6, cpu->f[30]);
|
|
/* 028D8130 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8130 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D8130 */ if (_t8) goto L_028D8144; else goto L_028D8134;
|
|
L_028D8134: ; // 0x28d8134
|
|
/* 028D8134 */ _t9 = cpu->r[27] + 0x00000004u;
|
|
/* 028D8134 */ rbrew_write_f32(cpu->mem, _t9, cpu->f[31]);
|
|
/* 028D8138 */ _t10 = cpu->r[27] + 0x00000008u;
|
|
/* 028D8138 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[31]);
|
|
/* 028D813C */ _t11 = cpu->r[27] + 0x00000000u;
|
|
/* 028D813C */ rbrew_write_f32(cpu->mem, _t11, cpu->f[31]);
|
|
/* 028D8140 */ _t12 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028D8140 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[31]);
|
|
L_028D8144: ; // 0x28d8144
|
|
/* 028D8144 */ _t13 = cpu->r[3] + 0x00000020u;
|
|
/* 028D8144 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D8148 */ cpu->r[5] = cpu->r[3] + 0x00000014u;
|
|
/* 028D814C */ _t14 = cpu->r[3] + 0x00000018u;
|
|
/* 028D814C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D8150 */ cpu->r[29] = cpu->r[5] - cpu->r[31];
|
|
/* 028D8154 */ cpu->r[30] = cpu->r[0] - cpu->r[31];
|
|
/* 028D8158 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028D815C */ cpu->r[28] = 0x00000000u;
|
|
/* 028D8160 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8160 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D8160 */ if (_t16) goto L_028D8200; else goto L_028D8164;
|
|
L_028D8164: ; // 0x28d8164
|
|
/* 028D8164 */ cpu->f[30] = cpu->f[31];
|
|
L_028D8168: ; // 0x28d8168
|
|
/* 028D8168 */ _t17 = cpu->r[1] + 0x00000010u;
|
|
/* 028D8168 */ rbrew_write_f32(cpu->mem, _t17, cpu->f[30]);
|
|
/* 028D816C */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D816C */ rbrew_write_f32(cpu->mem, _t18, cpu->f[30]);
|
|
/* 028D8170 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8170 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[30]);
|
|
/* 028D8174 */ _t20 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8174 */ rbrew_write_f32(cpu->mem, _t20, cpu->f[30]);
|
|
/* 028D8178 */ _t21 = cpu->r[30] + 0x00000000u;
|
|
/* 028D8178 */ cpu->r[7] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D817C */ _t22 = cpu->r[7] + 0x0000002Cu;
|
|
/* 028D817C */ cpu->r[12] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D8180 */ cpu->ctr = cpu->r[12];
|
|
/* 028D8184 */ cpu->r[4] = cpu->r[25];
|
|
/* 028D8188 */ cpu->r[5] = cpu->r[26];
|
|
/* 028D818C */ cpu->r[6] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8190 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D8194 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D8198 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D819C */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D819C */ _t24 = _t23 & 0x00000001u;
|
|
/* 028D819C */ if (_t24) goto L_028D81EC; else goto L_028D81A0;
|
|
L_028D81A0: ; // 0x28d81a0
|
|
/* 028D81A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028D81A4 */ cpu->r[28] = 0x00000001u;
|
|
/* 028D81A8 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D81A8 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028D81A8 */ if (_t26) goto L_028D81EC; else goto L_028D81AC;
|
|
L_028D81AC: ; // 0x28d81ac
|
|
/* 028D81AC */ _t27 = cpu->r[27] + 0x00000000u;
|
|
/* 028D81AC */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 028D81B0 */ _t28 = cpu->r[1] + 0x00000008u;
|
|
/* 028D81B0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 028D81B4 */ _t29 = cpu->r[27] + 0x00000004u;
|
|
/* 028D81B4 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t29);
|
|
/* 028D81B8 */ cpu->f[12] = cpu->f[12] + cpu->f[0];
|
|
/* 028D81BC */ _t30 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D81BC */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t30);
|
|
/* 028D81C0 */ _t31 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028D81C0 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 028D81C4 */ _t32 = cpu->r[1] + 0x00000010u;
|
|
/* 028D81C4 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t32);
|
|
/* 028D81C8 */ _t33 = cpu->r[27] + 0x00000008u;
|
|
/* 028D81C8 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t33);
|
|
/* 028D81CC */ cpu->f[8] = cpu->f[8] + cpu->f[9];
|
|
/* 028D81D0 */ _t34 = cpu->r[1] + 0x00000014u;
|
|
/* 028D81D0 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t34);
|
|
/* 028D81D4 */ cpu->f[10] = cpu->f[10] + cpu->f[11];
|
|
/* 028D81D8 */ _t35 = cpu->r[27] + 0x00000000u;
|
|
/* 028D81D8 */ rbrew_write_f32(cpu->mem, _t35, cpu->f[12]);
|
|
/* 028D81DC */ cpu->f[13] = cpu->f[13] + cpu->f[7];
|
|
/* 028D81E0 */ _t36 = cpu->r[27] + 0x00000004u;
|
|
/* 028D81E0 */ rbrew_write_f32(cpu->mem, _t36, cpu->f[8]);
|
|
/* 028D81E4 */ _t37 = cpu->r[27] + 0x00000008u;
|
|
/* 028D81E4 */ rbrew_write_f32(cpu->mem, _t37, cpu->f[10]);
|
|
/* 028D81E8 */ _t38 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028D81E8 */ rbrew_write_f32(cpu->mem, _t38, cpu->f[13]);
|
|
L_028D81EC: ; // 0x28d81ec
|
|
/* 028D81EC */ cpu->r[8] = cpu->r[30] + cpu->r[31];
|
|
/* 028D81F0 */ _t39 = cpu->r[8] + 0x00000004u;
|
|
/* 028D81F0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028D81F4 */ cpu->r[30] = cpu->r[6] - cpu->r[31];
|
|
/* 028D81F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028D81FC */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D81FC */ _t41 = _t40 & 0x00000001u;
|
|
/* 028D81FC */ if (_t41) goto L_028D8200; else goto L_028D8168;
|
|
L_028D8200: ; // 0x28d8200
|
|
/* 028D8200 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028D8204 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8204 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028D8204 */ if (_t43) goto L_028D8280; else goto L_028D8208;
|
|
L_028D8208: ; // 0x28d8208
|
|
/* 028D8208 */ _t44 = cpu->r[27] + 0x00000000u;
|
|
/* 028D8208 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t44);
|
|
/* 028D820C */ cpu->r[9] = 0x10140000u;
|
|
/* 028D8210 */ _t45 = cpu->r[27] + 0x00000004u;
|
|
/* 028D8210 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t45);
|
|
/* 028D8214 */ /* nop */
|
|
/* 028D8218 */ _t46 = cpu->r[9] + 0xFFFFACA4u;
|
|
/* 028D8218 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t46);
|
|
/* 028D821C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[11], cpu->f[31]);
|
|
/* 028D8220 */ _t47 = cpu->r[27] + 0x00000008u;
|
|
/* 028D8220 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t47);
|
|
/* 028D8224 */ _t48 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028D8224 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t48);
|
|
/* 028D8228 */ _t49 = cpu->r[27] + 0x00000000u;
|
|
/* 028D8228 */ rbrew_write_f32(cpu->mem, _t49, cpu->f[10]);
|
|
/* 028D822C */ _t50 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D822C */ _t51 = _t50 & 0x00000001u;
|
|
/* 028D822C */ if (_t51) goto L_028D8230; else goto L_028D8248;
|
|
L_028D8230: ; // 0x28d8230
|
|
/* 028D8230 */ /* nop */
|
|
/* 028D8234 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[31]);
|
|
/* 028D8238 */ _t52 = cpu->r[27] + 0x00000004u;
|
|
/* 028D8238 */ rbrew_write_f32(cpu->mem, _t52, cpu->f[31]);
|
|
/* 028D823C */ _t53 = cpu->r[27] + 0x00000008u;
|
|
/* 028D823C */ rbrew_write_f32(cpu->mem, _t53, cpu->f[7]);
|
|
/* 028D8240 */ _t54 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D8240 */ _t55 = _t54 & 0x00000001u;
|
|
/* 028D8240 */ if (_t55) goto L_028D8268; else goto L_028D8244;
|
|
L_028D8244: ; // 0x28d8244
|
|
/* 028D8244 */ goto L_028D8270;
|
|
L_028D8248: ; // 0x28d8248
|
|
/* 028D8248 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[11], cpu->f[0]);
|
|
/* 028D824C */ _t56 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D824C */ _t57 = _t56 & 0x00000001u;
|
|
/* 028D824C */ if (_t57) goto L_028D8250; else goto L_028D8254;
|
|
L_028D8250: ; // 0x28d8250
|
|
/* 028D8250 */ cpu->f[11] = cpu->f[0];
|
|
L_028D8254: ; // 0x28d8254
|
|
/* 028D8254 */ /* nop */
|
|
/* 028D8258 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[31]);
|
|
/* 028D825C */ _t58 = cpu->r[27] + 0x00000004u;
|
|
/* 028D825C */ rbrew_write_f32(cpu->mem, _t58, cpu->f[11]);
|
|
/* 028D8260 */ _t59 = cpu->r[27] + 0x00000008u;
|
|
/* 028D8260 */ rbrew_write_f32(cpu->mem, _t59, cpu->f[7]);
|
|
/* 028D8264 */ _t60 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D8264 */ _t61 = _t60 & 0x00000001u;
|
|
/* 028D8264 */ if (_t61) goto L_028D8268; else goto L_028D8270;
|
|
L_028D8268: ; // 0x28d8268
|
|
/* 028D8268 */ _t62 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028D8268 */ rbrew_write_f32(cpu->mem, _t62, cpu->f[31]);
|
|
/* 028D826C */ goto L_028D8280;
|
|
L_028D8270: ; // 0x28d8270
|
|
/* 028D8270 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[0]);
|
|
/* 028D8274 */ _t63 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D8274 */ _t64 = _t63 & 0x00000001u;
|
|
/* 028D8274 */ if (_t64) goto L_028D8278; else goto L_028D827C;
|
|
L_028D8278: ; // 0x28d8278
|
|
/* 028D8278 */ cpu->f[12] = cpu->f[0];
|
|
L_028D827C: ; // 0x28d827c
|
|
/* 028D827C */ _t65 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028D827C */ rbrew_write_f32(cpu->mem, _t65, cpu->f[12]);
|
|
L_028D8280: ; // 0x28d8280
|
|
/* 028D8280 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D8284 */ /* nop */
|
|
/* 028D8288 */ _t66 = cpu->r[1] + 0x00000040u;
|
|
/* 028D8288 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t66);
|
|
/* 028D828C */ _t67 = cpu->r[1] + 0x00000050u;
|
|
/* 028D828C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t67);
|
|
/* 028D8290 */ _t68 = cpu->r[1] + 0x00000038u;
|
|
/* 028D8290 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t68);
|
|
/* 028D8294 */ _t69 = cpu->r[1] + 0x00000048u;
|
|
/* 028D8294 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t69);
|
|
/* 028D8298 */ _t70 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D8298 */ _t71 = _t70 & 0x00000001u;
|
|
/* 028D8298 */ if (_t71) goto L_028D829C; // else: addr-0 trap, fall-through
|
|
L_028D829C: ; // 0x28d829c
|
|
/* 028D829C */ _t72 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028D829C */ cpu->r[0] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028D82A0 */ cpu->lr = cpu->r[0];
|
|
/* 028D82A4 */ cpu->r[1] = cpu->r[1] + 0x00000058u;
|
|
/* 028D82A8 */ return;
|
|
}
|
|
|
|
// fn_028D82AC @ 0x28d82ac
|
|
void Gambit_fn_028D82AC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23;
|
|
|
|
L_028D82AC: ; // 0x28d82ac
|
|
/* 028D82AC */ cpu->r[0] = cpu->lr;
|
|
/* 028D82B0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D82B0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D82B0 */ cpu->r[1] = _t0;
|
|
/* 028D82B4 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D82B4 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 028D82B8 */ cpu->r[28] = cpu->r[4];
|
|
/* 028D82BC */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D82BC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D82C0 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D82C0 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028D82C4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D82C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D82C8 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028D82C8 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028D82CC */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D82CC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028D82D0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D82D0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D82D0 */ if (_t7) goto L_028D8334; else goto L_028D82D4;
|
|
L_028D82D4: ; // 0x28d82d4
|
|
/* 028D82D4 */ cpu->r[6] = 0x10140000u;
|
|
/* 028D82D8 */ cpu->r[6] = cpu->r[6] + 0xFFFFACA8u;
|
|
/* 028D82DC */ cpu->r[12] = 0x101D0000u;
|
|
/* 028D82E0 */ _t8 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D82E0 */ rbrew_write32(cpu->mem, _t8, cpu->r[6]);
|
|
/* 028D82E4 */ _t9 = cpu->r[12] + 0xFFFF9AC0u;
|
|
/* 028D82E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D82E4 */ cpu->r[12] = _t9;
|
|
/* 028D82E8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[0]);
|
|
/* 028D82EC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D82EC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D82EC */ if (_t11) goto L_028D82F0; else goto L_028D8318;
|
|
L_028D82F0: ; // 0x28d82f0
|
|
/* 028D82F0 */ cpu->r[30] = 0x101D0000u;
|
|
/* 028D82F4 */ cpu->r[29] = 0x00000000u;
|
|
/* 028D82F8 */ _t12 = cpu->r[30] + 0xFFFF9ABCu;
|
|
/* 028D82F8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D82FC */ _t13 = cpu->r[12] + 0x00000000u;
|
|
/* 028D82FC */ rbrew_write32(cpu->mem, _t13, cpu->r[29]);
|
|
/* 028D8300 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028D8300 */ cpu->r[8] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D8304 */ _t15 = cpu->r[8] + 0x00000014u;
|
|
/* 028D8304 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D8308 */ cpu->ctr = cpu->r[10];
|
|
/* 028D830C */ cpu->r[4] = 0x00000002u;
|
|
/* 028D8310 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D8314 */ _t16 = cpu->r[30] + 0xFFFF9ABCu;
|
|
/* 028D8314 */ rbrew_write32(cpu->mem, _t16, cpu->r[29]);
|
|
L_028D8318: ; // 0x28d8318
|
|
/* 028D8318 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D831C */ cpu->r[4] = 0x00000000u;
|
|
/* 028D8320 */ Gambit_fn_02821E68(cpu);
|
|
/* 028D8324 */ cpu->r[0] = rbrew_rlwinm(cpu->r[28], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D8324 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D8328 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8328 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D8328 */ if (_t18) goto L_028D8334; else goto L_028D832C;
|
|
L_028D832C: ; // 0x28d832c
|
|
/* 028D832C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8330 */ Gambit_fn_02801BB0(cpu);
|
|
L_028D8334: ; // 0x28d8334
|
|
/* 028D8334 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8334 */ cpu->r[28] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D8338 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8338 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D833C */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D833C */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D8340 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028D8340 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D8344 */ cpu->lr = cpu->r[0];
|
|
/* 028D8348 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8348 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D834C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D8350 */ return;
|
|
}
|
|
|
|
// fn_028D82B0 @ 0x28d82b0
|
|
void Gambit_fn_028D82B0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23;
|
|
|
|
L_028D82B0: ; // 0x28d82b0
|
|
/* 028D82B0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D82B0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D82B0 */ cpu->r[1] = _t0;
|
|
/* 028D82B4 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028D82B4 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 028D82B8 */ cpu->r[28] = cpu->r[4];
|
|
/* 028D82BC */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D82BC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D82C0 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D82C0 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028D82C4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D82C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D82C8 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028D82C8 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028D82CC */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D82CC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028D82D0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D82D0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D82D0 */ if (_t7) goto L_028D8334; else goto L_028D82D4;
|
|
L_028D82D4: ; // 0x28d82d4
|
|
/* 028D82D4 */ cpu->r[6] = 0x10140000u;
|
|
/* 028D82D8 */ cpu->r[6] = cpu->r[6] + 0xFFFFACA8u;
|
|
/* 028D82DC */ cpu->r[12] = 0x101D0000u;
|
|
/* 028D82E0 */ _t8 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D82E0 */ rbrew_write32(cpu->mem, _t8, cpu->r[6]);
|
|
/* 028D82E4 */ _t9 = cpu->r[12] + 0xFFFF9AC0u;
|
|
/* 028D82E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D82E4 */ cpu->r[12] = _t9;
|
|
/* 028D82E8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[0]);
|
|
/* 028D82EC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D82EC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D82EC */ if (_t11) goto L_028D82F0; else goto L_028D8318;
|
|
L_028D82F0: ; // 0x28d82f0
|
|
/* 028D82F0 */ cpu->r[30] = 0x101D0000u;
|
|
/* 028D82F4 */ cpu->r[29] = 0x00000000u;
|
|
/* 028D82F8 */ _t12 = cpu->r[30] + 0xFFFF9ABCu;
|
|
/* 028D82F8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D82FC */ _t13 = cpu->r[12] + 0x00000000u;
|
|
/* 028D82FC */ rbrew_write32(cpu->mem, _t13, cpu->r[29]);
|
|
/* 028D8300 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028D8300 */ cpu->r[8] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D8304 */ _t15 = cpu->r[8] + 0x00000014u;
|
|
/* 028D8304 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D8308 */ cpu->ctr = cpu->r[10];
|
|
/* 028D830C */ cpu->r[4] = 0x00000002u;
|
|
/* 028D8310 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D8314 */ _t16 = cpu->r[30] + 0xFFFF9ABCu;
|
|
/* 028D8314 */ rbrew_write32(cpu->mem, _t16, cpu->r[29]);
|
|
L_028D8318: ; // 0x28d8318
|
|
/* 028D8318 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D831C */ cpu->r[4] = 0x00000000u;
|
|
/* 028D8320 */ Gambit_fn_02821E68(cpu);
|
|
/* 028D8324 */ cpu->r[0] = rbrew_rlwinm(cpu->r[28], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D8324 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D8328 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8328 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D8328 */ if (_t18) goto L_028D8334; else goto L_028D832C;
|
|
L_028D832C: ; // 0x28d832c
|
|
/* 028D832C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8330 */ Gambit_fn_02801BB0(cpu);
|
|
L_028D8334: ; // 0x28d8334
|
|
/* 028D8334 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8334 */ cpu->r[28] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D8338 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8338 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D833C */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D833C */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D8340 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028D8340 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D8344 */ cpu->lr = cpu->r[0];
|
|
/* 028D8348 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8348 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D834C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D8350 */ return;
|
|
}
|
|
|
|
// fn_028D8354 @ 0x28d8354
|
|
void Gambit_fn_028D8354(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D8354: ; // 0x28d8354
|
|
/* 028D8354 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8358 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8358 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D8358 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D8358 */ goto L_028D835C;
|
|
L_028D835C: ; // 0x28d835c
|
|
/* 028D835C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D835C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D8360 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8360 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D8360 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D8360 */ goto L_028D8364;
|
|
L_028D8364: ; // 0x28d8364
|
|
/* 028D8364 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D8368 @ 0x28d8368
|
|
void Gambit_fn_028D8368(CPUState* cpu) {
|
|
L_028D8368: ; // 0x28d8368
|
|
/* 028D8368 */ return;
|
|
}
|
|
|
|
// fn_028D836C @ 0x28d836c
|
|
void Gambit_fn_028D836C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028D836C: ; // 0x28d836c
|
|
/* 028D836C */ _t0 = cpu->r[3] + 0x00000010u;
|
|
/* 028D836C */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028D8370 */ goto L_028ED238;
|
|
L_028ED238: ; // 0x28ed238
|
|
/* 028ED238 */ cpu->r[0] = cpu->lr;
|
|
/* 028ED23C */ cpu->f[0] = cpu->f[1];
|
|
/* 028ED240 */ _t1 = cpu->r[1] + 0x00000004u;
|
|
/* 028ED240 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028ED244 */ _t2 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028ED244 */ rbrew_write32(cpu->mem, _t2, cpu->r[1]);
|
|
/* 028ED244 */ cpu->r[1] = _t2;
|
|
/* 028ED248 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028ED24C */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028ED24C */ rbrew_write_f32(cpu->mem, _t3, cpu->f[0]);
|
|
/* 028ED250 */ Gambit_fn_028ED224(cpu);
|
|
/* 028ED254 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028ED254 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028ED258 */ cpu->lr = cpu->r[0];
|
|
/* 028ED25C */ cpu->f[1] = cpu->f[0] * cpu->f[1];
|
|
/* 028ED260 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028ED264 */ return;
|
|
}
|
|
|
|
// fn_028D8374 @ 0x28d8374
|
|
void Gambit_fn_028D8374(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028D8374: ; // 0x28d8374
|
|
/* 028D8374 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028D8374 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028D8378 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000001u);
|
|
/* 028D837C */ _t1 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D837C */ _t2 = _t1 & 0x00000001u;
|
|
/* 028D837C */ if (_t2) goto L_028D8398; else goto L_028D8380;
|
|
L_028D8380: ; // 0x28d8380
|
|
/* 028D8380 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8380 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D8380 */ if (_t4) goto L_028D83A4; else goto L_028D8384;
|
|
L_028D8384: ; // 0x28d8384
|
|
/* 028D8384 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000003u);
|
|
/* 028D8388 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D8388 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D8388 */ if (_t6) goto L_028D83AC; else goto L_028D838C;
|
|
L_028D838C: ; // 0x28d838c
|
|
/* 028D838C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D838C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D838C */ if (_t8) goto L_028D83B8; else goto L_028D8390;
|
|
L_028D8390: ; // 0x28d8390
|
|
/* 028D8390 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D8394 */ return;
|
|
L_028D8398: ; // 0x28d8398
|
|
/* 028D8398 */ _t9 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028D8398 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D839C */ cpu->r[3] = (uint32_t)(-(int32_t)cpu->r[0]);
|
|
/* 028D83A0 */ return;
|
|
L_028D83A4: ; // 0x28d83a4
|
|
/* 028D83A4 */ _t10 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028D83A4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D83A8 */ return;
|
|
L_028D83AC: ; // 0x28d83ac
|
|
/* 028D83AC */ _t11 = cpu->r[3] + 0x00000020u;
|
|
/* 028D83AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D83B0 */ cpu->r[3] = (uint32_t)(-(int32_t)cpu->r[0]);
|
|
/* 028D83B4 */ return;
|
|
L_028D83B8: ; // 0x28d83b8
|
|
/* 028D83B8 */ _t12 = cpu->r[3] + 0x00000020u;
|
|
/* 028D83B8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D83BC */ return;
|
|
}
|
|
|
|
// fn_028D83F4 @ 0x28d83f4
|
|
void Gambit_fn_028D83F4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028D83C0: ; // 0x28d83c0
|
|
/* 028D83C0 */ _t0 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028D83C0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028D83C4 */ cpu->r[10] = 0x00000000u;
|
|
/* 028D83C8 */ _t1 = cpu->r[3] + 0x00000020u;
|
|
/* 028D83C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028D83CC */ cpu->r[9] = (uint32_t)(-(int32_t)cpu->r[7]);
|
|
/* 028D83D0 */ _t2 = cpu->r[3] + 0x00000024u;
|
|
/* 028D83D0 */ rbrew_write32(cpu->mem, _t2, cpu->r[10]);
|
|
/* 028D83D4 */ cpu->r[12] = cpu->r[0] - cpu->r[7];
|
|
/* 028D83D8 */ _t3 = cpu->r[3] + 0x00000034u;
|
|
/* 028D83D8 */ rbrew_write32(cpu->mem, _t3, cpu->r[9]);
|
|
/* 028D83DC */ cpu->r[8] = cpu->r[9] - cpu->r[0];
|
|
/* 028D83E0 */ _t4 = cpu->r[3] + 0x00000028u;
|
|
/* 028D83E0 */ rbrew_write32(cpu->mem, _t4, cpu->r[12]);
|
|
/* 028D83E4 */ cpu->r[11] = cpu->r[9] - cpu->r[7];
|
|
/* 028D83E8 */ _t5 = cpu->r[3] + 0x0000002Cu;
|
|
/* 028D83E8 */ rbrew_write32(cpu->mem, _t5, cpu->r[8]);
|
|
/* 028D83EC */ _t6 = cpu->r[3] + 0x00000030u;
|
|
/* 028D83EC */ rbrew_write32(cpu->mem, _t6, cpu->r[11]);
|
|
/* 028D83F0 */ return;
|
|
L_028D83F4: ; // 0x28d83f4
|
|
/* 028D83F4 */ _t7 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028D83F4 */ rbrew_write32(cpu->mem, _t7, cpu->r[4]);
|
|
/* 028D83F8 */ _t8 = cpu->r[3] + 0x00000020u;
|
|
/* 028D83F8 */ rbrew_write32(cpu->mem, _t8, cpu->r[5]);
|
|
/* 028D83FC */ goto L_028D83C0;
|
|
}
|
|
|
|
// fn_028D8400 @ 0x28d8400
|
|
void Gambit_fn_028D8400(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32;
|
|
|
|
L_028D8400: ; // 0x28d8400
|
|
/* 028D8400 */ cpu->r[0] = cpu->lr;
|
|
/* 028D8404 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D8404 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8404 */ cpu->r[1] = _t0;
|
|
/* 028D8408 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028D8408 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D840C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D840C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D8410 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8410 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8414 */ cpu->r[30] = cpu->r[4];
|
|
/* 028D8418 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8418 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028D841C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D841C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D8420 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8420 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D8420 */ if (_t6) goto L_028D8424; else goto L_028D8434;
|
|
L_028D8424: ; // 0x28d8424
|
|
/* 028D8424 */ cpu->r[3] = 0x00000038u;
|
|
/* 028D8428 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D842C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D842C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8430 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8430 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D8430 */ if (_t8) goto L_028D84DC; else goto L_028D8434;
|
|
L_028D8434: ; // 0x28d8434
|
|
/* 028D8434 */ cpu->r[29] = cpu->r[31];
|
|
/* 028D8434 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D8438 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8438 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D8438 */ if (_t10) goto L_028D843C; else goto L_028D844C;
|
|
L_028D843C: ; // 0x28d843c
|
|
/* 028D843C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028D8440 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D8444 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D8444 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D8448 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8448 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D8448 */ if (_t12) goto L_028D8490; else goto L_028D844C;
|
|
L_028D844C: ; // 0x28d844c
|
|
/* 028D844C */ cpu->r[3] = cpu->r[29];
|
|
/* 028D844C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8450 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8450 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D8450 */ if (_t14) goto L_028D8454; else goto L_028D8464;
|
|
L_028D8454: ; // 0x28d8454
|
|
/* 028D8454 */ cpu->r[3] = 0x00000008u;
|
|
/* 028D8458 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D845C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8460 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8460 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D8460 */ if (_t16) goto L_028D847C; else goto L_028D8464;
|
|
L_028D8464: ; // 0x28d8464
|
|
/* 028D8464 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D8468 */ cpu->r[6] = 0x10140000u;
|
|
/* 028D846C */ cpu->r[0] = cpu->r[0] + 0xFFFFACE0u;
|
|
/* 028D8470 */ cpu->r[6] = cpu->r[6] + 0xFFFFACDCu;
|
|
/* 028D8474 */ _t17 = cpu->r[3] + 0x00000004u;
|
|
/* 028D8474 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 028D8478 */ _t18 = cpu->r[3] + 0x00000000u;
|
|
/* 028D8478 */ rbrew_write32(cpu->mem, _t18, cpu->r[6]);
|
|
L_028D847C: ; // 0x28d847c
|
|
/* 028D847C */ cpu->r[7] = 0x10140000u;
|
|
/* 028D8480 */ cpu->r[7] = cpu->r[7] + 0xFFFFAD18u;
|
|
/* 028D8484 */ _t19 = cpu->r[29] + 0x00000008u;
|
|
/* 028D8484 */ rbrew_write32(cpu->mem, _t19, cpu->r[7]);
|
|
/* 028D8488 */ _t20 = cpu->r[30] + 0x00000000u;
|
|
/* 028D8488 */ cpu->r[8] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D848C */ _t21 = cpu->r[29] + 0x00000000u;
|
|
/* 028D848C */ rbrew_write32(cpu->mem, _t21, cpu->r[8]);
|
|
L_028D8490: ; // 0x28d8490
|
|
/* 028D8490 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D8494 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D8498 */ _t22 = cpu->r[12] + 0xFFFFACD4u;
|
|
/* 028D8498 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 028D849C */ cpu->r[0] = 0x10140000u;
|
|
/* 028D84A0 */ _t23 = cpu->r[11] + 0xFFFFACD0u;
|
|
/* 028D84A0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 028D84A4 */ cpu->r[4] = 0x15550000u;
|
|
/* 028D84A8 */ cpu->r[9] = 0x10140000u;
|
|
/* 028D84AC */ _t24 = cpu->r[31] + 0x00000010u;
|
|
/* 028D84AC */ rbrew_write_f32(cpu->mem, _t24, cpu->f[13]);
|
|
/* 028D84B0 */ cpu->r[9] = cpu->r[9] + 0xFFFFAD30u;
|
|
/* 028D84B4 */ _t25 = cpu->r[31] + 0x00000014u;
|
|
/* 028D84B4 */ rbrew_write_f32(cpu->mem, _t25, cpu->f[0]);
|
|
/* 028D84B8 */ cpu->r[0] = cpu->r[0] + 0xFFFFAD60u;
|
|
/* 028D84BC */ cpu->r[5] = 0x4E390000u;
|
|
/* 028D84C0 */ _t26 = cpu->r[31] + 0x00000018u;
|
|
/* 028D84C0 */ rbrew_write_f32(cpu->mem, _t26, cpu->f[13]);
|
|
/* 028D84C4 */ cpu->r[4] = cpu->r[4] + 0x00005560u;
|
|
/* 028D84C8 */ cpu->r[5] = cpu->r[5] + 0xFFFFE380u;
|
|
/* 028D84CC */ _t27 = cpu->r[31] + 0x00000008u;
|
|
/* 028D84CC */ rbrew_write32(cpu->mem, _t27, cpu->r[9]);
|
|
/* 028D84D0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D84D4 */ _t28 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D84D4 */ rbrew_write32(cpu->mem, _t28, cpu->r[0]);
|
|
/* 028D84D8 */ Gambit_fn_028D83F4(cpu);
|
|
L_028D84DC: ; // 0x28d84dc
|
|
/* 028D84DC */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D84DC */ cpu->r[29] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028D84E0 */ _t30 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D84E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028D84E4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D84E8 */ _t31 = cpu->r[1] + 0x00000010u;
|
|
/* 028D84E8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028D84EC */ cpu->lr = cpu->r[0];
|
|
/* 028D84F0 */ _t32 = cpu->r[1] + 0x00000014u;
|
|
/* 028D84F0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028D84F4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D84F8 */ return;
|
|
}
|
|
|
|
// fn_028D8404 @ 0x28d8404
|
|
void Gambit_fn_028D8404(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32;
|
|
|
|
L_028D8404: ; // 0x28d8404
|
|
/* 028D8404 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D8404 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8404 */ cpu->r[1] = _t0;
|
|
/* 028D8408 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028D8408 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D840C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D840C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D8410 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8410 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8414 */ cpu->r[30] = cpu->r[4];
|
|
/* 028D8418 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8418 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028D841C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D841C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D8420 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8420 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D8420 */ if (_t6) goto L_028D8424; else goto L_028D8434;
|
|
L_028D8424: ; // 0x28d8424
|
|
/* 028D8424 */ cpu->r[3] = 0x00000038u;
|
|
/* 028D8428 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D842C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D842C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8430 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8430 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D8430 */ if (_t8) goto L_028D84DC; else goto L_028D8434;
|
|
L_028D8434: ; // 0x28d8434
|
|
/* 028D8434 */ cpu->r[29] = cpu->r[31];
|
|
/* 028D8434 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D8438 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8438 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D8438 */ if (_t10) goto L_028D843C; else goto L_028D844C;
|
|
L_028D843C: ; // 0x28d843c
|
|
/* 028D843C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028D8440 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D8444 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D8444 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D8448 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8448 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D8448 */ if (_t12) goto L_028D8490; else goto L_028D844C;
|
|
L_028D844C: ; // 0x28d844c
|
|
/* 028D844C */ cpu->r[3] = cpu->r[29];
|
|
/* 028D844C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8450 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8450 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D8450 */ if (_t14) goto L_028D8454; else goto L_028D8464;
|
|
L_028D8454: ; // 0x28d8454
|
|
/* 028D8454 */ cpu->r[3] = 0x00000008u;
|
|
/* 028D8458 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D845C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8460 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8460 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D8460 */ if (_t16) goto L_028D847C; else goto L_028D8464;
|
|
L_028D8464: ; // 0x28d8464
|
|
/* 028D8464 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D8468 */ cpu->r[6] = 0x10140000u;
|
|
/* 028D846C */ cpu->r[0] = cpu->r[0] + 0xFFFFACE0u;
|
|
/* 028D8470 */ cpu->r[6] = cpu->r[6] + 0xFFFFACDCu;
|
|
/* 028D8474 */ _t17 = cpu->r[3] + 0x00000004u;
|
|
/* 028D8474 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 028D8478 */ _t18 = cpu->r[3] + 0x00000000u;
|
|
/* 028D8478 */ rbrew_write32(cpu->mem, _t18, cpu->r[6]);
|
|
L_028D847C: ; // 0x28d847c
|
|
/* 028D847C */ cpu->r[7] = 0x10140000u;
|
|
/* 028D8480 */ cpu->r[7] = cpu->r[7] + 0xFFFFAD18u;
|
|
/* 028D8484 */ _t19 = cpu->r[29] + 0x00000008u;
|
|
/* 028D8484 */ rbrew_write32(cpu->mem, _t19, cpu->r[7]);
|
|
/* 028D8488 */ _t20 = cpu->r[30] + 0x00000000u;
|
|
/* 028D8488 */ cpu->r[8] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028D848C */ _t21 = cpu->r[29] + 0x00000000u;
|
|
/* 028D848C */ rbrew_write32(cpu->mem, _t21, cpu->r[8]);
|
|
L_028D8490: ; // 0x28d8490
|
|
/* 028D8490 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D8494 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D8498 */ _t22 = cpu->r[12] + 0xFFFFACD4u;
|
|
/* 028D8498 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 028D849C */ cpu->r[0] = 0x10140000u;
|
|
/* 028D84A0 */ _t23 = cpu->r[11] + 0xFFFFACD0u;
|
|
/* 028D84A0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 028D84A4 */ cpu->r[4] = 0x15550000u;
|
|
/* 028D84A8 */ cpu->r[9] = 0x10140000u;
|
|
/* 028D84AC */ _t24 = cpu->r[31] + 0x00000010u;
|
|
/* 028D84AC */ rbrew_write_f32(cpu->mem, _t24, cpu->f[13]);
|
|
/* 028D84B0 */ cpu->r[9] = cpu->r[9] + 0xFFFFAD30u;
|
|
/* 028D84B4 */ _t25 = cpu->r[31] + 0x00000014u;
|
|
/* 028D84B4 */ rbrew_write_f32(cpu->mem, _t25, cpu->f[0]);
|
|
/* 028D84B8 */ cpu->r[0] = cpu->r[0] + 0xFFFFAD60u;
|
|
/* 028D84BC */ cpu->r[5] = 0x4E390000u;
|
|
/* 028D84C0 */ _t26 = cpu->r[31] + 0x00000018u;
|
|
/* 028D84C0 */ rbrew_write_f32(cpu->mem, _t26, cpu->f[13]);
|
|
/* 028D84C4 */ cpu->r[4] = cpu->r[4] + 0x00005560u;
|
|
/* 028D84C8 */ cpu->r[5] = cpu->r[5] + 0xFFFFE380u;
|
|
/* 028D84CC */ _t27 = cpu->r[31] + 0x00000008u;
|
|
/* 028D84CC */ rbrew_write32(cpu->mem, _t27, cpu->r[9]);
|
|
/* 028D84D0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D84D4 */ _t28 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D84D4 */ rbrew_write32(cpu->mem, _t28, cpu->r[0]);
|
|
/* 028D84D8 */ Gambit_fn_028D83F4(cpu);
|
|
L_028D84DC: ; // 0x28d84dc
|
|
/* 028D84DC */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D84DC */ cpu->r[29] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028D84E0 */ _t30 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D84E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028D84E4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D84E8 */ _t31 = cpu->r[1] + 0x00000010u;
|
|
/* 028D84E8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028D84EC */ cpu->lr = cpu->r[0];
|
|
/* 028D84F0 */ _t32 = cpu->r[1] + 0x00000014u;
|
|
/* 028D84F0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028D84F4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D84F8 */ return;
|
|
}
|
|
|
|
// fn_028D84FC @ 0x28d84fc
|
|
void Gambit_fn_028D84FC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028D84FC: ; // 0x28d84fc
|
|
/* 028D84FC */ cpu->r[0] = cpu->lr;
|
|
/* 028D8500 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D8500 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8500 */ cpu->r[1] = _t0;
|
|
/* 028D8504 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8504 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D8508 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8508 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D850C */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D850C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D8510 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8510 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D8510 */ if (_t4) goto L_028D8514; else goto L_028D8524;
|
|
L_028D8514: ; // 0x28d8514
|
|
/* 028D8514 */ cpu->r[3] = 0x00000038u;
|
|
/* 028D8518 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D851C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D851C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8520 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8520 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D8520 */ if (_t6) goto L_028D8570; else goto L_028D8524;
|
|
L_028D8524: ; // 0x28d8524
|
|
/* 028D8524 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D8528 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D852C */ cpu->r[11] = cpu->r[11] + 0xFFFFACE0u;
|
|
/* 028D8530 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D8534 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8534 */ rbrew_write32(cpu->mem, _t7, cpu->r[11]);
|
|
/* 028D8538 */ cpu->r[12] = cpu->r[12] + 0xFFFFAE70u;
|
|
/* 028D853C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8540 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8540 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 028D8544 */ Gambit_fn_028D8400(cpu);
|
|
/* 028D8548 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D854C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8550 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D8554 */ cpu->r[0] = cpu->r[0] + 0xFFFFAD70u;
|
|
/* 028D8558 */ cpu->r[4] = 0x20000000u;
|
|
/* 028D855C */ cpu->r[12] = cpu->r[12] + 0xFFFFADA0u;
|
|
/* 028D8560 */ _t9 = cpu->r[31] + 0x00000008u;
|
|
/* 028D8560 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028D8564 */ cpu->r[5] = 0x60000000u;
|
|
/* 028D8568 */ _t10 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D8568 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028D856C */ Gambit_fn_028D83F4(cpu);
|
|
L_028D8570: ; // 0x28d8570
|
|
/* 028D8570 */ _t11 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8570 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D8574 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8578 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8578 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D857C */ cpu->lr = cpu->r[0];
|
|
/* 028D8580 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D8584 */ return;
|
|
}
|
|
|
|
// fn_028D8500 @ 0x28d8500
|
|
void Gambit_fn_028D8500(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028D8500: ; // 0x28d8500
|
|
/* 028D8500 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D8500 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8500 */ cpu->r[1] = _t0;
|
|
/* 028D8504 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8504 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D8508 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8508 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D850C */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D850C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D8510 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8510 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D8510 */ if (_t4) goto L_028D8514; else goto L_028D8524;
|
|
L_028D8514: ; // 0x28d8514
|
|
/* 028D8514 */ cpu->r[3] = 0x00000038u;
|
|
/* 028D8518 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D851C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D851C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8520 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8520 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D8520 */ if (_t6) goto L_028D8570; else goto L_028D8524;
|
|
L_028D8524: ; // 0x28d8524
|
|
/* 028D8524 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D8528 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D852C */ cpu->r[11] = cpu->r[11] + 0xFFFFACE0u;
|
|
/* 028D8530 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D8534 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8534 */ rbrew_write32(cpu->mem, _t7, cpu->r[11]);
|
|
/* 028D8538 */ cpu->r[12] = cpu->r[12] + 0xFFFFAE70u;
|
|
/* 028D853C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8540 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8540 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 028D8544 */ Gambit_fn_028D8400(cpu);
|
|
/* 028D8548 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D854C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8550 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D8554 */ cpu->r[0] = cpu->r[0] + 0xFFFFAD70u;
|
|
/* 028D8558 */ cpu->r[4] = 0x20000000u;
|
|
/* 028D855C */ cpu->r[12] = cpu->r[12] + 0xFFFFADA0u;
|
|
/* 028D8560 */ _t9 = cpu->r[31] + 0x00000008u;
|
|
/* 028D8560 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028D8564 */ cpu->r[5] = 0x60000000u;
|
|
/* 028D8568 */ _t10 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D8568 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028D856C */ Gambit_fn_028D83F4(cpu);
|
|
L_028D8570: ; // 0x28d8570
|
|
/* 028D8570 */ _t11 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8570 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D8574 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8578 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8578 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D857C */ cpu->lr = cpu->r[0];
|
|
/* 028D8580 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D8584 */ return;
|
|
}
|
|
|
|
// fn_028D8588 @ 0x28d8588
|
|
void Gambit_fn_028D8588(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028D8588: ; // 0x28d8588
|
|
/* 028D8588 */ cpu->r[0] = cpu->lr;
|
|
/* 028D858C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D858C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D858C */ cpu->r[1] = _t0;
|
|
/* 028D8590 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8590 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D8594 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8594 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8598 */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8598 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D859C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D859C */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D859C */ if (_t4) goto L_028D85A0; else goto L_028D85B0;
|
|
L_028D85A0: ; // 0x28d85a0
|
|
/* 028D85A0 */ cpu->r[3] = 0x00000038u;
|
|
/* 028D85A4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D85A8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D85A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D85AC */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D85AC */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D85AC */ if (_t6) goto L_028D8604; else goto L_028D85B0;
|
|
L_028D85B0: ; // 0x28d85b0
|
|
/* 028D85B0 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D85B4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D85B8 */ cpu->r[11] = cpu->r[11] + 0xFFFFACE0u;
|
|
/* 028D85BC */ cpu->r[12] = 0x10140000u;
|
|
/* 028D85C0 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D85C0 */ rbrew_write32(cpu->mem, _t7, cpu->r[11]);
|
|
/* 028D85C4 */ cpu->r[12] = cpu->r[12] + 0xFFFFAE88u;
|
|
/* 028D85C8 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D85CC */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028D85CC */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 028D85D0 */ Gambit_fn_028D8400(cpu);
|
|
/* 028D85D4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D85D8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D85DC */ cpu->r[4] = 0x2AAB0000u;
|
|
/* 028D85E0 */ cpu->r[0] = cpu->r[0] + 0xFFFFADB0u;
|
|
/* 028D85E4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D85E8 */ cpu->r[5] = 0x4E390000u;
|
|
/* 028D85EC */ _t9 = cpu->r[31] + 0x00000008u;
|
|
/* 028D85EC */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028D85F0 */ cpu->r[12] = cpu->r[12] + 0xFFFFADE0u;
|
|
/* 028D85F4 */ cpu->r[4] = cpu->r[4] + 0xFFFFAAC0u;
|
|
/* 028D85F8 */ cpu->r[5] = cpu->r[5] + 0xFFFFE380u;
|
|
/* 028D85FC */ _t10 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D85FC */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028D8600 */ Gambit_fn_028D83F4(cpu);
|
|
L_028D8604: ; // 0x28d8604
|
|
/* 028D8604 */ _t11 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8604 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D8608 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D860C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028D860C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D8610 */ cpu->lr = cpu->r[0];
|
|
/* 028D8614 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D8618 */ return;
|
|
}
|
|
|
|
// fn_028D858C @ 0x28d858c
|
|
void Gambit_fn_028D858C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028D858C: ; // 0x28d858c
|
|
/* 028D858C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D858C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D858C */ cpu->r[1] = _t0;
|
|
/* 028D8590 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8590 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D8594 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8594 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8598 */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8598 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D859C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D859C */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D859C */ if (_t4) goto L_028D85A0; else goto L_028D85B0;
|
|
L_028D85A0: ; // 0x28d85a0
|
|
/* 028D85A0 */ cpu->r[3] = 0x00000038u;
|
|
/* 028D85A4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D85A8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D85A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D85AC */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D85AC */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D85AC */ if (_t6) goto L_028D8604; else goto L_028D85B0;
|
|
L_028D85B0: ; // 0x28d85b0
|
|
/* 028D85B0 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D85B4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D85B8 */ cpu->r[11] = cpu->r[11] + 0xFFFFACE0u;
|
|
/* 028D85BC */ cpu->r[12] = 0x10140000u;
|
|
/* 028D85C0 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D85C0 */ rbrew_write32(cpu->mem, _t7, cpu->r[11]);
|
|
/* 028D85C4 */ cpu->r[12] = cpu->r[12] + 0xFFFFAE88u;
|
|
/* 028D85C8 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D85CC */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028D85CC */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 028D85D0 */ Gambit_fn_028D8400(cpu);
|
|
/* 028D85D4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D85D8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D85DC */ cpu->r[4] = 0x2AAB0000u;
|
|
/* 028D85E0 */ cpu->r[0] = cpu->r[0] + 0xFFFFADB0u;
|
|
/* 028D85E4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D85E8 */ cpu->r[5] = 0x4E390000u;
|
|
/* 028D85EC */ _t9 = cpu->r[31] + 0x00000008u;
|
|
/* 028D85EC */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028D85F0 */ cpu->r[12] = cpu->r[12] + 0xFFFFADE0u;
|
|
/* 028D85F4 */ cpu->r[4] = cpu->r[4] + 0xFFFFAAC0u;
|
|
/* 028D85F8 */ cpu->r[5] = cpu->r[5] + 0xFFFFE380u;
|
|
/* 028D85FC */ _t10 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D85FC */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028D8600 */ Gambit_fn_028D83F4(cpu);
|
|
L_028D8604: ; // 0x28d8604
|
|
/* 028D8604 */ _t11 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8604 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D8608 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D860C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028D860C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D8610 */ cpu->lr = cpu->r[0];
|
|
/* 028D8614 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D8618 */ return;
|
|
}
|
|
|
|
// fn_028D861C @ 0x28d861c
|
|
void Gambit_fn_028D861C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028D861C: ; // 0x28d861c
|
|
/* 028D861C */ cpu->r[0] = cpu->lr;
|
|
/* 028D8620 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D8620 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8620 */ cpu->r[1] = _t0;
|
|
/* 028D8624 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8624 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D8628 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8628 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D862C */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D862C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D8630 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8630 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D8630 */ if (_t4) goto L_028D8634; else goto L_028D8644;
|
|
L_028D8634: ; // 0x28d8634
|
|
/* 028D8634 */ cpu->r[3] = 0x00000038u;
|
|
/* 028D8638 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D863C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D863C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8640 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8640 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D8640 */ if (_t6) goto L_028D8698; else goto L_028D8644;
|
|
L_028D8644: ; // 0x28d8644
|
|
/* 028D8644 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D8648 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D864C */ cpu->r[11] = cpu->r[11] + 0xFFFFACE0u;
|
|
/* 028D8650 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D8654 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8654 */ rbrew_write32(cpu->mem, _t7, cpu->r[11]);
|
|
/* 028D8658 */ cpu->r[12] = cpu->r[12] + 0xFFFFAEA0u;
|
|
/* 028D865C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8660 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8660 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 028D8664 */ Gambit_fn_028D8400(cpu);
|
|
/* 028D8668 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D866C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8670 */ cpu->r[4] = 0x15550000u;
|
|
/* 028D8674 */ cpu->r[0] = cpu->r[0] + 0xFFFFADF0u;
|
|
/* 028D8678 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D867C */ cpu->r[5] = 0x4E390000u;
|
|
/* 028D8680 */ _t9 = cpu->r[31] + 0x00000008u;
|
|
/* 028D8680 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028D8684 */ cpu->r[12] = cpu->r[12] + 0xFFFFAE20u;
|
|
/* 028D8688 */ cpu->r[4] = cpu->r[4] + 0x00005560u;
|
|
/* 028D868C */ cpu->r[5] = cpu->r[5] + 0xFFFFE380u;
|
|
/* 028D8690 */ _t10 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D8690 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028D8694 */ Gambit_fn_028D83F4(cpu);
|
|
L_028D8698: ; // 0x28d8698
|
|
/* 028D8698 */ _t11 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8698 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D869C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D86A0 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028D86A0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D86A4 */ cpu->lr = cpu->r[0];
|
|
/* 028D86A8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D86AC */ return;
|
|
}
|
|
|
|
// fn_028D8620 @ 0x28d8620
|
|
void Gambit_fn_028D8620(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028D8620: ; // 0x28d8620
|
|
/* 028D8620 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D8620 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8620 */ cpu->r[1] = _t0;
|
|
/* 028D8624 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8624 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D8628 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8628 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D862C */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D862C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D8630 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8630 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D8630 */ if (_t4) goto L_028D8634; else goto L_028D8644;
|
|
L_028D8634: ; // 0x28d8634
|
|
/* 028D8634 */ cpu->r[3] = 0x00000038u;
|
|
/* 028D8638 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D863C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D863C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8640 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8640 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D8640 */ if (_t6) goto L_028D8698; else goto L_028D8644;
|
|
L_028D8644: ; // 0x28d8644
|
|
/* 028D8644 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D8648 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D864C */ cpu->r[11] = cpu->r[11] + 0xFFFFACE0u;
|
|
/* 028D8650 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D8654 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8654 */ rbrew_write32(cpu->mem, _t7, cpu->r[11]);
|
|
/* 028D8658 */ cpu->r[12] = cpu->r[12] + 0xFFFFAEA0u;
|
|
/* 028D865C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8660 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8660 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 028D8664 */ Gambit_fn_028D8400(cpu);
|
|
/* 028D8668 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D866C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8670 */ cpu->r[4] = 0x15550000u;
|
|
/* 028D8674 */ cpu->r[0] = cpu->r[0] + 0xFFFFADF0u;
|
|
/* 028D8678 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D867C */ cpu->r[5] = 0x4E390000u;
|
|
/* 028D8680 */ _t9 = cpu->r[31] + 0x00000008u;
|
|
/* 028D8680 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028D8684 */ cpu->r[12] = cpu->r[12] + 0xFFFFAE20u;
|
|
/* 028D8688 */ cpu->r[4] = cpu->r[4] + 0x00005560u;
|
|
/* 028D868C */ cpu->r[5] = cpu->r[5] + 0xFFFFE380u;
|
|
/* 028D8690 */ _t10 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D8690 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028D8694 */ Gambit_fn_028D83F4(cpu);
|
|
L_028D8698: ; // 0x28d8698
|
|
/* 028D8698 */ _t11 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8698 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D869C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D86A0 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028D86A0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D86A4 */ cpu->lr = cpu->r[0];
|
|
/* 028D86A8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D86AC */ return;
|
|
}
|
|
|
|
// fn_028D86B0 @ 0x28d86b0
|
|
void Gambit_fn_028D86B0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028D86B0: ; // 0x28d86b0
|
|
/* 028D86B0 */ cpu->r[0] = cpu->lr;
|
|
/* 028D86B4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D86B4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D86B4 */ cpu->r[1] = _t0;
|
|
/* 028D86B8 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028D86B8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D86BC */ cpu->r[31] = cpu->r[3];
|
|
/* 028D86BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D86C0 */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D86C0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D86C4 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D86C4 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D86C4 */ if (_t4) goto L_028D86C8; else goto L_028D86D8;
|
|
L_028D86C8: ; // 0x28d86c8
|
|
/* 028D86C8 */ cpu->r[3] = 0x00000038u;
|
|
/* 028D86CC */ Gambit_fn_02801A78(cpu);
|
|
/* 028D86D0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D86D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D86D4 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D86D4 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D86D4 */ if (_t6) goto L_028D8724; else goto L_028D86D8;
|
|
L_028D86D8: ; // 0x28d86d8
|
|
/* 028D86D8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D86DC */ cpu->r[3] = cpu->r[31];
|
|
/* 028D86E0 */ cpu->r[11] = cpu->r[11] + 0xFFFFACE0u;
|
|
/* 028D86E4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D86E8 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D86E8 */ rbrew_write32(cpu->mem, _t7, cpu->r[11]);
|
|
/* 028D86EC */ cpu->r[12] = cpu->r[12] + 0xFFFFAEB4u;
|
|
/* 028D86F0 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D86F4 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028D86F4 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 028D86F8 */ Gambit_fn_028D8400(cpu);
|
|
/* 028D86FC */ cpu->r[0] = 0x10140000u;
|
|
/* 028D8700 */ cpu->r[4] = 0x40000000u;
|
|
/* 028D8704 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D8708 */ cpu->r[0] = cpu->r[0] + 0xFFFFAE30u;
|
|
/* 028D870C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8710 */ cpu->r[12] = cpu->r[12] + 0xFFFFAE60u;
|
|
/* 028D8714 */ _t9 = cpu->r[31] + 0x00000008u;
|
|
/* 028D8714 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028D8718 */ cpu->r[5] = 0x40000000u;
|
|
/* 028D871C */ _t10 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D871C */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028D8720 */ Gambit_fn_028D83F4(cpu);
|
|
L_028D8724: ; // 0x28d8724
|
|
/* 028D8724 */ _t11 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8724 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D8728 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D872C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028D872C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D8730 */ cpu->lr = cpu->r[0];
|
|
/* 028D8734 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D8738 */ return;
|
|
}
|
|
|
|
// fn_028D86B4 @ 0x28d86b4
|
|
void Gambit_fn_028D86B4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028D86B4: ; // 0x28d86b4
|
|
/* 028D86B4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D86B4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D86B4 */ cpu->r[1] = _t0;
|
|
/* 028D86B8 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028D86B8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D86BC */ cpu->r[31] = cpu->r[3];
|
|
/* 028D86BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D86C0 */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D86C0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D86C4 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D86C4 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D86C4 */ if (_t4) goto L_028D86C8; else goto L_028D86D8;
|
|
L_028D86C8: ; // 0x28d86c8
|
|
/* 028D86C8 */ cpu->r[3] = 0x00000038u;
|
|
/* 028D86CC */ Gambit_fn_02801A78(cpu);
|
|
/* 028D86D0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D86D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D86D4 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D86D4 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D86D4 */ if (_t6) goto L_028D8724; else goto L_028D86D8;
|
|
L_028D86D8: ; // 0x28d86d8
|
|
/* 028D86D8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D86DC */ cpu->r[3] = cpu->r[31];
|
|
/* 028D86E0 */ cpu->r[11] = cpu->r[11] + 0xFFFFACE0u;
|
|
/* 028D86E4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D86E8 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D86E8 */ rbrew_write32(cpu->mem, _t7, cpu->r[11]);
|
|
/* 028D86EC */ cpu->r[12] = cpu->r[12] + 0xFFFFAEB4u;
|
|
/* 028D86F0 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D86F4 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028D86F4 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 028D86F8 */ Gambit_fn_028D8400(cpu);
|
|
/* 028D86FC */ cpu->r[0] = 0x10140000u;
|
|
/* 028D8700 */ cpu->r[4] = 0x40000000u;
|
|
/* 028D8704 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D8708 */ cpu->r[0] = cpu->r[0] + 0xFFFFAE30u;
|
|
/* 028D870C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8710 */ cpu->r[12] = cpu->r[12] + 0xFFFFAE60u;
|
|
/* 028D8714 */ _t9 = cpu->r[31] + 0x00000008u;
|
|
/* 028D8714 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028D8718 */ cpu->r[5] = 0x40000000u;
|
|
/* 028D871C */ _t10 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D871C */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028D8720 */ Gambit_fn_028D83F4(cpu);
|
|
L_028D8724: ; // 0x28d8724
|
|
/* 028D8724 */ _t11 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8724 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D8728 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D872C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028D872C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D8730 */ cpu->lr = cpu->r[0];
|
|
/* 028D8734 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D8738 */ return;
|
|
}
|
|
|
|
// fn_028D873C @ 0x28d873c
|
|
void Gambit_fn_028D873C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D873C: ; // 0x28d873c
|
|
/* 028D873C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8740 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8740 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D8740 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D8740 */ goto L_028D8744;
|
|
L_028D8744: ; // 0x28d8744
|
|
/* 028D8744 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D8744 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D8748 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8748 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D8748 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D8748 */ goto L_028D874C;
|
|
L_028D874C: ; // 0x28d874c
|
|
/* 028D874C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D8750 @ 0x28d8750
|
|
void Gambit_fn_028D8750(CPUState* cpu) {
|
|
L_028D8750: ; // 0x28d8750
|
|
/* 028D8750 */ return;
|
|
}
|
|
|
|
// fn_028D8754 @ 0x28d8754
|
|
void Gambit_fn_028D8754(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028D8754: ; // 0x28d8754
|
|
/* 028D8754 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028D8754 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028D8758 */ _t1 = cpu->r[3] + 0x00000000u;
|
|
/* 028D8758 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D875C */ return;
|
|
}
|
|
|
|
// fn_028D8760 @ 0x28d8760
|
|
void Gambit_fn_028D8760(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D8760: ; // 0x28d8760
|
|
/* 028D8760 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8764 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8764 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D8764 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D8764 */ goto L_028D8768;
|
|
L_028D8768: ; // 0x28d8768
|
|
/* 028D8768 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D876C */ cpu->r[0] = cpu->r[0] + 0xFFFFAD60u;
|
|
/* 028D8770 */ cpu->r[12] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D8770 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D8774 */ _t18 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028D8774 */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028D8778 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8778 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028D8778 */ if (_t20) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D8778 */ goto L_028D877C;
|
|
L_028D877C: ; // 0x28d877c
|
|
/* 028D877C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D8780 @ 0x28d8780
|
|
void Gambit_fn_028D8780(CPUState* cpu) {
|
|
L_028D8780: ; // 0x28d8780
|
|
/* 028D8780 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D8784 */ return;
|
|
}
|
|
|
|
// fn_028D8788 @ 0x28d8788
|
|
void Gambit_fn_028D8788(CPUState* cpu) {
|
|
L_028D8788: ; // 0x28d8788
|
|
/* 028D8788 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D878C */ return;
|
|
}
|
|
|
|
// fn_028D8790 @ 0x28d8790
|
|
void Gambit_fn_028D8790(CPUState* cpu) {
|
|
L_028D8790: ; // 0x28d8790
|
|
/* 028D8790 */ cpu->r[3] = 0x00000001u;
|
|
/* 028D8794 */ return;
|
|
}
|
|
|
|
// fn_028D8798 @ 0x28d8798
|
|
void Gambit_fn_028D8798(CPUState* cpu) {
|
|
L_028D8798: ; // 0x28d8798
|
|
/* 028D8798 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D879C */ return;
|
|
}
|
|
|
|
// fn_028D87A0 @ 0x28d87a0
|
|
void Gambit_fn_028D87A0(CPUState* cpu) {
|
|
L_028D87A0: ; // 0x28d87a0
|
|
/* 028D87A0 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D87A4 */ return;
|
|
}
|
|
|
|
// fn_028D87A8 @ 0x28d87a8
|
|
void Gambit_fn_028D87A8(CPUState* cpu) {
|
|
L_028D87A8: ; // 0x28d87a8
|
|
/* 028D87A8 */ cpu->r[3] = 0x00000001u;
|
|
/* 028D87AC */ return;
|
|
}
|
|
|
|
// fn_028D87B0 @ 0x28d87b0
|
|
void Gambit_fn_028D87B0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D87B0: ; // 0x28d87b0
|
|
/* 028D87B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D87B4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D87B4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D87B4 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D87B4 */ goto L_028D87B8;
|
|
L_028D87B8: ; // 0x28d87b8
|
|
/* 028D87B8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D87BC */ cpu->r[0] = cpu->r[0] + 0xFFFFAD60u;
|
|
/* 028D87C0 */ cpu->r[12] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D87C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D87C4 */ _t18 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028D87C4 */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028D87C8 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D87C8 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028D87C8 */ if (_t20) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D87C8 */ goto L_028D87CC;
|
|
L_028D87CC: ; // 0x28d87cc
|
|
/* 028D87CC */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D87D0 @ 0x28d87d0
|
|
void Gambit_fn_028D87D0(CPUState* cpu) {
|
|
L_028D87D0: ; // 0x28d87d0
|
|
/* 028D87D0 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D87D4 */ return;
|
|
}
|
|
|
|
// fn_028D87D8 @ 0x28d87d8
|
|
void Gambit_fn_028D87D8(CPUState* cpu) {
|
|
L_028D87D8: ; // 0x28d87d8
|
|
/* 028D87D8 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D87DC */ return;
|
|
}
|
|
|
|
// fn_028D87E0 @ 0x28d87e0
|
|
void Gambit_fn_028D87E0(CPUState* cpu) {
|
|
L_028D87E0: ; // 0x28d87e0
|
|
/* 028D87E0 */ cpu->r[3] = 0x00000001u;
|
|
/* 028D87E4 */ return;
|
|
}
|
|
|
|
// fn_028D87E8 @ 0x28d87e8
|
|
void Gambit_fn_028D87E8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D87E8: ; // 0x28d87e8
|
|
/* 028D87E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D87EC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D87EC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D87EC */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D87EC */ goto L_028D87F0;
|
|
L_028D87F0: ; // 0x28d87f0
|
|
/* 028D87F0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D87F4 */ cpu->r[0] = cpu->r[0] + 0xFFFFAD60u;
|
|
/* 028D87F8 */ cpu->r[12] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D87F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D87FC */ _t18 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028D87FC */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028D8800 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8800 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028D8800 */ if (_t20) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D8800 */ goto L_028D8804;
|
|
L_028D8804: ; // 0x28d8804
|
|
/* 028D8804 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D8808 @ 0x28d8808
|
|
void Gambit_fn_028D8808(CPUState* cpu) {
|
|
L_028D8808: ; // 0x28d8808
|
|
/* 028D8808 */ cpu->r[3] = 0x00000001u;
|
|
/* 028D880C */ return;
|
|
}
|
|
|
|
// fn_028D8810 @ 0x28d8810
|
|
void Gambit_fn_028D8810(CPUState* cpu) {
|
|
L_028D8810: ; // 0x28d8810
|
|
/* 028D8810 */ cpu->r[3] = 0x00000001u;
|
|
/* 028D8814 */ return;
|
|
}
|
|
|
|
// fn_028D8818 @ 0x28d8818
|
|
void Gambit_fn_028D8818(CPUState* cpu) {
|
|
L_028D8818: ; // 0x28d8818
|
|
/* 028D8818 */ cpu->r[3] = 0x00000001u;
|
|
/* 028D881C */ return;
|
|
}
|
|
|
|
// fn_028D8820 @ 0x28d8820
|
|
void Gambit_fn_028D8820(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D8820: ; // 0x28d8820
|
|
/* 028D8820 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8824 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8824 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D8824 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D8824 */ goto L_028D8828;
|
|
L_028D8828: ; // 0x28d8828
|
|
/* 028D8828 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D882C */ cpu->r[0] = cpu->r[0] + 0xFFFFAD60u;
|
|
/* 028D8830 */ cpu->r[12] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D8830 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D8834 */ _t18 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028D8834 */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028D8838 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8838 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028D8838 */ if (_t20) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D8838 */ goto L_028D883C;
|
|
L_028D883C: ; // 0x28d883c
|
|
/* 028D883C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D8840 @ 0x28d8840
|
|
void Gambit_fn_028D8840(CPUState* cpu) {
|
|
L_028D8840: ; // 0x28d8840
|
|
/* 028D8840 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D8844 */ return;
|
|
}
|
|
|
|
// fn_028D8848 @ 0x28d8848
|
|
void Gambit_fn_028D8848(CPUState* cpu) {
|
|
L_028D8848: ; // 0x28d8848
|
|
/* 028D8848 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D884C */ return;
|
|
}
|
|
|
|
// fn_028D8850 @ 0x28d8850
|
|
void Gambit_fn_028D8850(CPUState* cpu) {
|
|
L_028D8850: ; // 0x28d8850
|
|
/* 028D8850 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D8854 */ return;
|
|
}
|
|
|
|
// fn_028D8858 @ 0x28d8858
|
|
void Gambit_fn_028D8858(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D8858: ; // 0x28d8858
|
|
/* 028D8858 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D885C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D885C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D885C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D885C */ goto L_028D8860;
|
|
L_028D8860: ; // 0x28d8860
|
|
/* 028D8860 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D8864 */ cpu->r[0] = cpu->r[0] + 0xFFFFAD60u;
|
|
/* 028D8868 */ cpu->r[12] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D8868 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D886C */ _t18 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028D886C */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028D8870 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8870 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028D8870 */ if (_t20) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D8870 */ goto L_028D8874;
|
|
L_028D8874: ; // 0x28d8874
|
|
/* 028D8874 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D8878 @ 0x28d8878
|
|
void Gambit_fn_028D8878(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028D8878: ; // 0x28d8878
|
|
/* 028D8878 */ cpu->r[0] = cpu->lr;
|
|
/* 028D887C */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028D887C */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028D8880 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8884 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028D8884 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028D8884 */ cpu->r[1] = _t1;
|
|
/* 028D8888 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8888 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028D8888 */ if (_t3) goto L_028D888C; else goto L_028D889C;
|
|
L_028D888C: ; // 0x28d888c
|
|
/* 028D888C */ cpu->r[3] = 0x00000014u;
|
|
/* 028D8890 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D8894 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8898 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8898 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D8898 */ if (_t5) goto L_028D88C4; else goto L_028D889C;
|
|
L_028D889C: ; // 0x28d889c
|
|
/* 028D889C */ cpu->r[12] = 0x10140000u;
|
|
/* 028D88A0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D88A4 */ _t6 = cpu->r[12] + 0xFFFFAF3Cu;
|
|
/* 028D88A4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028D88A8 */ cpu->r[0] = cpu->r[0] + 0xFFFFAF44u;
|
|
/* 028D88AC */ cpu->r[12] = 0x00000000u;
|
|
/* 028D88B0 */ _t7 = cpu->r[3] + 0x00000000u;
|
|
/* 028D88B0 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028D88B4 */ _t8 = cpu->r[3] + 0x00000004u;
|
|
/* 028D88B4 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 028D88B8 */ _t9 = cpu->r[3] + 0x00000008u;
|
|
/* 028D88B8 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 028D88BC */ _t10 = cpu->r[3] + 0x00000010u;
|
|
/* 028D88BC */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 028D88C0 */ _t11 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028D88C0 */ rbrew_write32(cpu->mem, _t11, cpu->r[12]);
|
|
L_028D88C4: ; // 0x28d88c4
|
|
/* 028D88C4 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D88C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D88C8 */ cpu->lr = cpu->r[0];
|
|
/* 028D88CC */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D88D0 */ return;
|
|
}
|
|
|
|
// fn_028D8884 @ 0x28d8884
|
|
void Gambit_fn_028D8884(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028D8884: ; // 0x28d8884
|
|
/* 028D8884 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028D8884 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8884 */ cpu->r[1] = _t0;
|
|
/* 028D8888 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8888 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028D8888 */ if (_t2) goto L_028D888C; else goto L_028D889C;
|
|
L_028D888C: ; // 0x28d888c
|
|
/* 028D888C */ cpu->r[3] = 0x00000014u;
|
|
/* 028D8890 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D8894 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8898 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8898 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D8898 */ if (_t4) goto L_028D88C4; else goto L_028D889C;
|
|
L_028D889C: ; // 0x28d889c
|
|
/* 028D889C */ cpu->r[12] = 0x10140000u;
|
|
/* 028D88A0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D88A4 */ _t5 = cpu->r[12] + 0xFFFFAF3Cu;
|
|
/* 028D88A4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 028D88A8 */ cpu->r[0] = cpu->r[0] + 0xFFFFAF44u;
|
|
/* 028D88AC */ cpu->r[12] = 0x00000000u;
|
|
/* 028D88B0 */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 028D88B0 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028D88B4 */ _t7 = cpu->r[3] + 0x00000004u;
|
|
/* 028D88B4 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 028D88B8 */ _t8 = cpu->r[3] + 0x00000008u;
|
|
/* 028D88B8 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 028D88BC */ _t9 = cpu->r[3] + 0x00000010u;
|
|
/* 028D88BC */ rbrew_write_f32(cpu->mem, _t9, cpu->f[0]);
|
|
/* 028D88C0 */ _t10 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028D88C0 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
L_028D88C4: ; // 0x28d88c4
|
|
/* 028D88C4 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D88C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D88C8 */ cpu->lr = cpu->r[0];
|
|
/* 028D88CC */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D88D0 */ return;
|
|
}
|
|
|
|
// fn_028D88D4 @ 0x28d88d4
|
|
void Gambit_fn_028D88D4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25;
|
|
|
|
L_028D88D4: ; // 0x28d88d4
|
|
/* 028D88D4 */ cpu->r[0] = cpu->lr;
|
|
/* 028D88D8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D88D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D88D8 */ cpu->r[1] = _t0;
|
|
/* 028D88DC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D88DC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028D88E0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028D88E0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D88E4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D88E4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D88E8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D88E8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D88EC */ cpu->r[29] = cpu->r[3];
|
|
/* 028D88EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D88F0 */ cpu->r[30] = cpu->r[4];
|
|
/* 028D88F4 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D88F4 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D88F4 */ if (_t6) goto L_028D8960; else goto L_028D88F8;
|
|
L_028D88F8: ; // 0x28d88f8
|
|
/* 028D88F8 */ _t7 = cpu->r[29] + 0x00000008u;
|
|
/* 028D88F8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D88FC */ cpu->r[8] = 0x10140000u;
|
|
/* 028D8900 */ cpu->r[31] = 0x00000000u;
|
|
/* 028D8904 */ cpu->r[8] = cpu->r[8] + 0xFFFFAF44u;
|
|
/* 028D8908 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D890C */ _t8 = cpu->r[29] + 0x00000000u;
|
|
/* 028D890C */ rbrew_write32(cpu->mem, _t8, cpu->r[8]);
|
|
/* 028D8910 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8910 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D8910 */ if (_t10) goto L_028D892C; else goto L_028D8914;
|
|
L_028D8914: ; // 0x28d8914
|
|
/* 028D8914 */ _t11 = cpu->r[3] + 0x00000008u;
|
|
/* 028D8914 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D8918 */ _t12 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028D8918 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D891C */ cpu->ctr = cpu->r[11];
|
|
/* 028D8920 */ cpu->r[4] = 0x00000003u;
|
|
/* 028D8924 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D8928 */ _t13 = cpu->r[29] + 0x00000008u;
|
|
/* 028D8928 */ rbrew_write32(cpu->mem, _t13, cpu->r[31]);
|
|
L_028D892C: ; // 0x28d892c
|
|
/* 028D892C */ _t14 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028D892C */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D8930 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8934 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8934 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D8934 */ if (_t16) goto L_028D8950; else goto L_028D8938;
|
|
L_028D8938: ; // 0x28d8938
|
|
/* 028D8938 */ _t17 = cpu->r[3] + 0x00000008u;
|
|
/* 028D8938 */ cpu->r[9] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D893C */ _t18 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028D893C */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D8940 */ cpu->ctr = cpu->r[12];
|
|
/* 028D8944 */ cpu->r[4] = 0x00000003u;
|
|
/* 028D8948 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D894C */ _t19 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028D894C */ rbrew_write32(cpu->mem, _t19, cpu->r[31]);
|
|
L_028D8950: ; // 0x28d8950
|
|
/* 028D8950 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D8950 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D8954 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8954 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028D8954 */ if (_t21) goto L_028D8960; else goto L_028D8958;
|
|
L_028D8958: ; // 0x28d8958
|
|
/* 028D8958 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D895C */ Gambit_fn_02801BB0(cpu);
|
|
L_028D8960: ; // 0x28d8960
|
|
/* 028D8960 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8960 */ cpu->r[29] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D8964 */ _t23 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8964 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D8968 */ _t24 = cpu->r[1] + 0x00000010u;
|
|
/* 028D8968 */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D896C */ cpu->lr = cpu->r[0];
|
|
/* 028D8970 */ _t25 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8970 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D8974 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D8978 */ return;
|
|
}
|
|
|
|
// fn_028D88D8 @ 0x28d88d8
|
|
void Gambit_fn_028D88D8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25;
|
|
|
|
L_028D88D8: ; // 0x28d88d8
|
|
/* 028D88D8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D88D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D88D8 */ cpu->r[1] = _t0;
|
|
/* 028D88DC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D88DC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028D88E0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028D88E0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D88E4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D88E4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D88E8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D88E8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D88EC */ cpu->r[29] = cpu->r[3];
|
|
/* 028D88EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D88F0 */ cpu->r[30] = cpu->r[4];
|
|
/* 028D88F4 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D88F4 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D88F4 */ if (_t6) goto L_028D8960; else goto L_028D88F8;
|
|
L_028D88F8: ; // 0x28d88f8
|
|
/* 028D88F8 */ _t7 = cpu->r[29] + 0x00000008u;
|
|
/* 028D88F8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D88FC */ cpu->r[8] = 0x10140000u;
|
|
/* 028D8900 */ cpu->r[31] = 0x00000000u;
|
|
/* 028D8904 */ cpu->r[8] = cpu->r[8] + 0xFFFFAF44u;
|
|
/* 028D8908 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D890C */ _t8 = cpu->r[29] + 0x00000000u;
|
|
/* 028D890C */ rbrew_write32(cpu->mem, _t8, cpu->r[8]);
|
|
/* 028D8910 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8910 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D8910 */ if (_t10) goto L_028D892C; else goto L_028D8914;
|
|
L_028D8914: ; // 0x28d8914
|
|
/* 028D8914 */ _t11 = cpu->r[3] + 0x00000008u;
|
|
/* 028D8914 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D8918 */ _t12 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028D8918 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D891C */ cpu->ctr = cpu->r[11];
|
|
/* 028D8920 */ cpu->r[4] = 0x00000003u;
|
|
/* 028D8924 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D8928 */ _t13 = cpu->r[29] + 0x00000008u;
|
|
/* 028D8928 */ rbrew_write32(cpu->mem, _t13, cpu->r[31]);
|
|
L_028D892C: ; // 0x28d892c
|
|
/* 028D892C */ _t14 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028D892C */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D8930 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8934 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8934 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D8934 */ if (_t16) goto L_028D8950; else goto L_028D8938;
|
|
L_028D8938: ; // 0x28d8938
|
|
/* 028D8938 */ _t17 = cpu->r[3] + 0x00000008u;
|
|
/* 028D8938 */ cpu->r[9] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D893C */ _t18 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028D893C */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D8940 */ cpu->ctr = cpu->r[12];
|
|
/* 028D8944 */ cpu->r[4] = 0x00000003u;
|
|
/* 028D8948 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D894C */ _t19 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028D894C */ rbrew_write32(cpu->mem, _t19, cpu->r[31]);
|
|
L_028D8950: ; // 0x28d8950
|
|
/* 028D8950 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D8950 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D8954 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8954 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028D8954 */ if (_t21) goto L_028D8960; else goto L_028D8958;
|
|
L_028D8958: ; // 0x28d8958
|
|
/* 028D8958 */ cpu->r[3] = cpu->r[29];
|
|
/* 028D895C */ Gambit_fn_02801BB0(cpu);
|
|
L_028D8960: ; // 0x28d8960
|
|
/* 028D8960 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8960 */ cpu->r[29] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D8964 */ _t23 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8964 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028D8968 */ _t24 = cpu->r[1] + 0x00000010u;
|
|
/* 028D8968 */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028D896C */ cpu->lr = cpu->r[0];
|
|
/* 028D8970 */ _t25 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8970 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028D8974 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D8978 */ return;
|
|
}
|
|
|
|
// fn_028D897C @ 0x28d897c
|
|
void Gambit_fn_028D897C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028D897C: ; // 0x28d897c
|
|
/* 028D897C */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028D897C */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028D8980 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000001u);
|
|
/* 028D8984 */ _t1 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D8984 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028D8984 */ if (_t2) goto L_028D8998; else goto L_028D8988;
|
|
L_028D8988: ; // 0x28d8988
|
|
/* 028D8988 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8988 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D8988 */ if (_t4) goto L_028D89A4; else goto L_028D898C;
|
|
L_028D898C: ; // 0x28d898c
|
|
/* 028D898C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000002u);
|
|
/* 028D8990 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8990 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D8990 */ if (_t6) goto L_028D89B0; else goto L_028D8994;
|
|
L_028D8994: ; // 0x28d8994
|
|
/* 028D8994 */ return;
|
|
L_028D8998: ; // 0x28d8998
|
|
/* 028D8998 */ cpu->r[0] = 0x00000000u;
|
|
/* 028D899C */ _t7 = cpu->r[3] + 0x00000004u;
|
|
/* 028D899C */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028D89A0 */ return;
|
|
L_028D89A4: ; // 0x28d89a4
|
|
/* 028D89A4 */ _t8 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028D89A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D89A8 */ _t9 = cpu->r[3] + 0x00000004u;
|
|
/* 028D89A8 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028D89AC */ return;
|
|
L_028D89B0: ; // 0x28d89b0
|
|
/* 028D89B0 */ _t10 = cpu->r[3] + 0x00000008u;
|
|
/* 028D89B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D89B4 */ _t11 = cpu->r[3] + 0x00000004u;
|
|
/* 028D89B4 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028D89B8 */ return;
|
|
}
|
|
|
|
// fn_028D89BC @ 0x28d89bc
|
|
void Gambit_fn_028D89BC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_028D89BC: ; // 0x28d89bc
|
|
/* 028D89BC */ cpu->r[0] = cpu->lr;
|
|
/* 028D89C0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D89C0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D89C0 */ cpu->r[1] = _t0;
|
|
/* 028D89C4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D89C4 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028D89C8 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028D89C8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D89CC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D89CC */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D89D0 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D89D0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D89D4 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D89D8 */ _t5 = cpu->r[3] + 0x00000000u;
|
|
/* 028D89D8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D89DC */ _t6 = cpu->r[10] + 0x0000002Cu;
|
|
/* 028D89DC */ cpu->r[9] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D89E0 */ cpu->r[30] = cpu->r[5];
|
|
/* 028D89E4 */ cpu->ctr = cpu->r[9];
|
|
/* 028D89E8 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D89EC */ cpu->r[31] = cpu->r[3];
|
|
/* 028D89F0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D89F4 */ _t7 = cpu->r[31] + 0x00000000u;
|
|
/* 028D89F4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D89F8 */ _t8 = cpu->r[31] + 0x00000008u;
|
|
/* 028D89F8 */ rbrew_write32(cpu->mem, _t8, cpu->r[3]);
|
|
/* 028D89FC */ _t9 = cpu->r[11] + 0x00000034u;
|
|
/* 028D89FC */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D8A00 */ cpu->ctr = cpu->r[12];
|
|
/* 028D8A04 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D8A08 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8A0C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D8A10 */ _t10 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D8A10 */ rbrew_write32(cpu->mem, _t10, cpu->r[3]);
|
|
/* 028D8A14 */ _t11 = cpu->r[29] + 0x00000000u;
|
|
/* 028D8A14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D8A18 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8A1C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8A20 */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8A20 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 028D8A24 */ Gambit_fn_028D897C(cpu);
|
|
/* 028D8A28 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8A28 */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D8A2C */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8A2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D8A30 */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 028D8A30 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D8A34 */ cpu->lr = cpu->r[0];
|
|
/* 028D8A38 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8A38 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D8A3C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D8A40 */ return;
|
|
}
|
|
|
|
// fn_028D89C0 @ 0x28d89c0
|
|
void Gambit_fn_028D89C0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_028D89C0: ; // 0x28d89c0
|
|
/* 028D89C0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D89C0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D89C0 */ cpu->r[1] = _t0;
|
|
/* 028D89C4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D89C4 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028D89C8 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028D89C8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D89CC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D89CC */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028D89D0 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D89D0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D89D4 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D89D8 */ _t5 = cpu->r[3] + 0x00000000u;
|
|
/* 028D89D8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D89DC */ _t6 = cpu->r[10] + 0x0000002Cu;
|
|
/* 028D89DC */ cpu->r[9] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D89E0 */ cpu->r[30] = cpu->r[5];
|
|
/* 028D89E4 */ cpu->ctr = cpu->r[9];
|
|
/* 028D89E8 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D89EC */ cpu->r[31] = cpu->r[3];
|
|
/* 028D89F0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D89F4 */ _t7 = cpu->r[31] + 0x00000000u;
|
|
/* 028D89F4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D89F8 */ _t8 = cpu->r[31] + 0x00000008u;
|
|
/* 028D89F8 */ rbrew_write32(cpu->mem, _t8, cpu->r[3]);
|
|
/* 028D89FC */ _t9 = cpu->r[11] + 0x00000034u;
|
|
/* 028D89FC */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D8A00 */ cpu->ctr = cpu->r[12];
|
|
/* 028D8A04 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D8A08 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8A0C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D8A10 */ _t10 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028D8A10 */ rbrew_write32(cpu->mem, _t10, cpu->r[3]);
|
|
/* 028D8A14 */ _t11 = cpu->r[29] + 0x00000000u;
|
|
/* 028D8A14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D8A18 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8A1C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8A20 */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8A20 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 028D8A24 */ Gambit_fn_028D897C(cpu);
|
|
/* 028D8A28 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8A28 */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D8A2C */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8A2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D8A30 */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 028D8A30 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D8A34 */ cpu->lr = cpu->r[0];
|
|
/* 028D8A38 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8A38 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D8A3C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D8A40 */ return;
|
|
}
|
|
|
|
// fn_028D8A44 @ 0x28d8a44
|
|
void Gambit_fn_028D8A44(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028D8A44: ; // 0x28d8a44
|
|
/* 028D8A44 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D8A48 */ _t0 = cpu->r[12] + 0xFFFFAF40u;
|
|
/* 028D8A48 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028D8A4C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[1]);
|
|
/* 028D8A50 */ _t1 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D8A50 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028D8A50 */ if (_t2) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D8A50 */ goto L_028D8A54;
|
|
L_028D8A54: ; // 0x28d8a54
|
|
/* 028D8A54 */ _t3 = cpu->r[3] + 0x00000010u;
|
|
/* 028D8A54 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[1]);
|
|
/* 028D8A58 */ return;
|
|
}
|
|
|
|
// fn_028D8A5C @ 0x28d8a5c
|
|
void Gambit_fn_028D8A5C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028D8A5C: ; // 0x28d8a5c
|
|
/* 028D8A5C */ cpu->r[0] = cpu->lr;
|
|
/* 028D8A60 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028D8A60 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028D8A64 */ _t1 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D8A64 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028D8A64 */ cpu->r[1] = _t1;
|
|
/* 028D8A68 */ _t2 = cpu->r[3] + 0x00000004u;
|
|
/* 028D8A68 */ cpu->r[3] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028D8A6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8A70 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8A70 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D8A70 */ if (_t4) goto L_028D8A74; else goto L_028D8A88;
|
|
L_028D8A74: ; // 0x28d8a74
|
|
/* 028D8A74 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8A74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D8A78 */ cpu->lr = cpu->r[0];
|
|
/* 028D8A7C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D8A80 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D8A84 */ return;
|
|
L_028D8A88: ; // 0x28d8a88
|
|
/* 028D8A88 */ _t6 = cpu->r[4] + 0x00000000u;
|
|
/* 028D8A88 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D8A8C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8A90 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8A90 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028D8A94 */ Gambit_fn_028D8374(cpu);
|
|
/* 028D8A98 */ _t8 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8A98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D8A9C */ cpu->lr = cpu->r[0];
|
|
/* 028D8AA0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D8AA4 */ return;
|
|
}
|
|
|
|
// fn_028D8A64 @ 0x28d8a64
|
|
void Gambit_fn_028D8A64(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_028D8A64: ; // 0x28d8a64
|
|
/* 028D8A64 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D8A64 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8A64 */ cpu->r[1] = _t0;
|
|
/* 028D8A68 */ _t1 = cpu->r[3] + 0x00000004u;
|
|
/* 028D8A68 */ cpu->r[3] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028D8A6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8A70 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8A70 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028D8A70 */ if (_t3) goto L_028D8A74; else goto L_028D8A88;
|
|
L_028D8A74: ; // 0x28d8a74
|
|
/* 028D8A74 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8A74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D8A78 */ cpu->lr = cpu->r[0];
|
|
/* 028D8A7C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D8A80 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D8A84 */ return;
|
|
L_028D8A88: ; // 0x28d8a88
|
|
/* 028D8A88 */ _t5 = cpu->r[4] + 0x00000000u;
|
|
/* 028D8A88 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D8A8C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8A90 */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8A90 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028D8A94 */ Gambit_fn_028D8374(cpu);
|
|
/* 028D8A98 */ _t7 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8A98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D8A9C */ cpu->lr = cpu->r[0];
|
|
/* 028D8AA0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D8AA4 */ return;
|
|
}
|
|
|
|
// fn_028D8AA8 @ 0x28d8aa8
|
|
void Gambit_fn_028D8AA8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028D8AA8: ; // 0x28d8aa8
|
|
/* 028D8AA8 */ cpu->r[0] = cpu->lr;
|
|
/* 028D8AAC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D8AAC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8AAC */ cpu->r[1] = _t0;
|
|
/* 028D8AB0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8AB0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D8AB4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8AB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8AB8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8AB8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D8ABC */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8ABC */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D8ABC */ if (_t4) goto L_028D8AC0; else goto L_028D8AD0;
|
|
L_028D8AC0: ; // 0x28d8ac0
|
|
/* 028D8AC0 */ cpu->r[3] = 0x00000014u;
|
|
/* 028D8AC4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D8AC8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8AC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8ACC */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8ACC */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D8ACC */ if (_t6) goto L_028D8AE4; else goto L_028D8AD0;
|
|
L_028D8AD0: ; // 0x28d8ad0
|
|
/* 028D8AD0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8AD4 */ Gambit_fn_028D8878(cpu);
|
|
/* 028D8AD8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D8ADC */ cpu->r[0] = cpu->r[0] + 0xFFFFAF7Cu;
|
|
/* 028D8AE0 */ _t7 = cpu->r[31] + 0x00000000u;
|
|
/* 028D8AE0 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
L_028D8AE4: ; // 0x28d8ae4
|
|
/* 028D8AE4 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8AE4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D8AE8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8AEC */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8AEC */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D8AF0 */ cpu->lr = cpu->r[0];
|
|
/* 028D8AF4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D8AF8 */ return;
|
|
}
|
|
|
|
// fn_028D8AAC @ 0x28d8aac
|
|
void Gambit_fn_028D8AAC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028D8AAC: ; // 0x28d8aac
|
|
/* 028D8AAC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D8AAC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8AAC */ cpu->r[1] = _t0;
|
|
/* 028D8AB0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8AB0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D8AB4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8AB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8AB8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8AB8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D8ABC */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8ABC */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D8ABC */ if (_t4) goto L_028D8AC0; else goto L_028D8AD0;
|
|
L_028D8AC0: ; // 0x28d8ac0
|
|
/* 028D8AC0 */ cpu->r[3] = 0x00000014u;
|
|
/* 028D8AC4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D8AC8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8AC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8ACC */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8ACC */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D8ACC */ if (_t6) goto L_028D8AE4; else goto L_028D8AD0;
|
|
L_028D8AD0: ; // 0x28d8ad0
|
|
/* 028D8AD0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8AD4 */ Gambit_fn_028D8878(cpu);
|
|
/* 028D8AD8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028D8ADC */ cpu->r[0] = cpu->r[0] + 0xFFFFAF7Cu;
|
|
/* 028D8AE0 */ _t7 = cpu->r[31] + 0x00000000u;
|
|
/* 028D8AE0 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
L_028D8AE4: ; // 0x28d8ae4
|
|
/* 028D8AE4 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8AE4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D8AE8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8AEC */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8AEC */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D8AF0 */ cpu->lr = cpu->r[0];
|
|
/* 028D8AF4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D8AF8 */ return;
|
|
}
|
|
|
|
// fn_028D8AFC @ 0x28d8afc
|
|
void Gambit_fn_028D8AFC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028D8AFC: ; // 0x28d8afc
|
|
/* 028D8AFC */ cpu->r[0] = cpu->lr;
|
|
/* 028D8B00 */ cpu->r[3] = 0x00000038u;
|
|
/* 028D8B04 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028D8B04 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028D8B08 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D8B0C */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028D8B0C */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028D8B0C */ cpu->r[1] = _t1;
|
|
/* 028D8B10 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D8B14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8B18 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8B18 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028D8B18 */ if (_t3) goto L_028D8B20; else goto L_028D8B1C;
|
|
L_028D8B1C: ; // 0x28d8b1c
|
|
/* 028D8B1C */ Gambit_fn_028D861C(cpu);
|
|
L_028D8B20: ; // 0x28d8b20
|
|
/* 028D8B20 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8B20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D8B24 */ cpu->lr = cpu->r[0];
|
|
/* 028D8B28 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8B2C */ return;
|
|
}
|
|
|
|
// fn_028D8B0C @ 0x28d8b0c
|
|
void Gambit_fn_028D8B0C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028D8B0C: ; // 0x28d8b0c
|
|
/* 028D8B0C */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028D8B0C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8B0C */ cpu->r[1] = _t0;
|
|
/* 028D8B10 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D8B14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8B18 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8B18 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028D8B18 */ if (_t2) goto L_028D8B20; else goto L_028D8B1C;
|
|
L_028D8B1C: ; // 0x28d8b1c
|
|
/* 028D8B1C */ Gambit_fn_028D861C(cpu);
|
|
L_028D8B20: ; // 0x28d8b20
|
|
/* 028D8B20 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8B20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D8B24 */ cpu->lr = cpu->r[0];
|
|
/* 028D8B28 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8B2C */ return;
|
|
}
|
|
|
|
// fn_028D8B30 @ 0x28d8b30
|
|
void Gambit_fn_028D8B30(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028D8B30: ; // 0x28d8b30
|
|
/* 028D8B30 */ cpu->r[0] = cpu->lr;
|
|
/* 028D8B34 */ cpu->r[3] = 0x00000038u;
|
|
/* 028D8B38 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028D8B38 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028D8B3C */ cpu->r[5] = 0x00000004u;
|
|
/* 028D8B40 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028D8B40 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028D8B40 */ cpu->r[1] = _t1;
|
|
/* 028D8B44 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D8B48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8B4C */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8B4C */ _t3 = _t2 & 0x00000001u;
|
|
/* 028D8B4C */ if (_t3) goto L_028D8B54; else goto L_028D8B50;
|
|
L_028D8B50: ; // 0x28d8b50
|
|
/* 028D8B50 */ Gambit_fn_028D86B0(cpu);
|
|
L_028D8B54: ; // 0x28d8b54
|
|
/* 028D8B54 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8B54 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D8B58 */ cpu->lr = cpu->r[0];
|
|
/* 028D8B5C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8B60 */ return;
|
|
}
|
|
|
|
// fn_028D8B40 @ 0x28d8b40
|
|
void Gambit_fn_028D8B40(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028D8B40: ; // 0x28d8b40
|
|
/* 028D8B40 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028D8B40 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8B40 */ cpu->r[1] = _t0;
|
|
/* 028D8B44 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D8B48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8B4C */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8B4C */ _t2 = _t1 & 0x00000001u;
|
|
/* 028D8B4C */ if (_t2) goto L_028D8B54; else goto L_028D8B50;
|
|
L_028D8B50: ; // 0x28d8b50
|
|
/* 028D8B50 */ Gambit_fn_028D86B0(cpu);
|
|
L_028D8B54: ; // 0x28d8b54
|
|
/* 028D8B54 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8B54 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D8B58 */ cpu->lr = cpu->r[0];
|
|
/* 028D8B5C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8B60 */ return;
|
|
}
|
|
|
|
// fn_028D8B64 @ 0x28d8b64
|
|
void Gambit_fn_028D8B64(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028D8B64: ; // 0x28d8b64
|
|
/* 028D8B64 */ cpu->r[0] = cpu->lr;
|
|
/* 028D8B68 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D8B68 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8B68 */ cpu->r[1] = _t0;
|
|
/* 028D8B6C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8B6C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D8B70 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8B74 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8B74 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D8B78 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8B78 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D8B78 */ if (_t4) goto L_028D8B7C; else goto L_028D8B8C;
|
|
L_028D8B7C: ; // 0x28d8b7c
|
|
/* 028D8B7C */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028D8B80 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D8B84 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8B84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8B88 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8B88 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D8B88 */ if (_t6) goto L_028D8BAC; else goto L_028D8B8C;
|
|
L_028D8B8C: ; // 0x28d8b8c
|
|
/* 028D8B8C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8B90 */ Gambit_fn_028D8878(cpu);
|
|
/* 028D8B94 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D8B98 */ cpu->r[12] = 0x00000000u;
|
|
/* 028D8B9C */ cpu->r[11] = cpu->r[11] + 0xFFFFAFB4u;
|
|
/* 028D8BA0 */ _t7 = cpu->r[31] + 0x00000018u;
|
|
/* 028D8BA0 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 028D8BA4 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028D8BA4 */ rbrew_write32(cpu->mem, _t8, cpu->r[11]);
|
|
/* 028D8BA8 */ _t9 = cpu->r[31] + 0x00000014u;
|
|
/* 028D8BA8 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
L_028D8BAC: ; // 0x28d8bac
|
|
/* 028D8BAC */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8BAC */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D8BB0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8BB4 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8BB4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D8BB8 */ cpu->lr = cpu->r[0];
|
|
/* 028D8BBC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D8BC0 */ return;
|
|
}
|
|
|
|
// fn_028D8B68 @ 0x28d8b68
|
|
void Gambit_fn_028D8B68(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028D8B68: ; // 0x28d8b68
|
|
/* 028D8B68 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D8B68 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8B68 */ cpu->r[1] = _t0;
|
|
/* 028D8B6C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8B6C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D8B70 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8B74 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8B74 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D8B78 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8B78 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D8B78 */ if (_t4) goto L_028D8B7C; else goto L_028D8B8C;
|
|
L_028D8B7C: ; // 0x28d8b7c
|
|
/* 028D8B7C */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028D8B80 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D8B84 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8B84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8B88 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8B88 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D8B88 */ if (_t6) goto L_028D8BAC; else goto L_028D8B8C;
|
|
L_028D8B8C: ; // 0x28d8b8c
|
|
/* 028D8B8C */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8B90 */ Gambit_fn_028D8878(cpu);
|
|
/* 028D8B94 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D8B98 */ cpu->r[12] = 0x00000000u;
|
|
/* 028D8B9C */ cpu->r[11] = cpu->r[11] + 0xFFFFAFB4u;
|
|
/* 028D8BA0 */ _t7 = cpu->r[31] + 0x00000018u;
|
|
/* 028D8BA0 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 028D8BA4 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028D8BA4 */ rbrew_write32(cpu->mem, _t8, cpu->r[11]);
|
|
/* 028D8BA8 */ _t9 = cpu->r[31] + 0x00000014u;
|
|
/* 028D8BA8 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
L_028D8BAC: ; // 0x28d8bac
|
|
/* 028D8BAC */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8BAC */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D8BB0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8BB4 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8BB4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D8BB8 */ cpu->lr = cpu->r[0];
|
|
/* 028D8BBC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D8BC0 */ return;
|
|
}
|
|
|
|
// fn_028D8BC4 @ 0x28d8bc4
|
|
void Gambit_fn_028D8BC4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028D8BC4: ; // 0x28d8bc4
|
|
/* 028D8BC4 */ cpu->r[0] = cpu->lr;
|
|
/* 028D8BC8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D8BC8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8BC8 */ cpu->r[1] = _t0;
|
|
/* 028D8BCC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8BCC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D8BD0 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8BD0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D8BD4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D8BD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D8BD8 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D8BDC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8BDC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D8BE0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8BE0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D8BE0 */ if (_t5) goto L_028D8C34; else goto L_028D8BE4;
|
|
L_028D8BE4: ; // 0x28d8be4
|
|
/* 028D8BE4 */ _t6 = cpu->r[30] + 0x00000018u;
|
|
/* 028D8BE4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D8BE8 */ cpu->r[9] = 0x10140000u;
|
|
/* 028D8BEC */ cpu->r[9] = cpu->r[9] + 0xFFFFAFB4u;
|
|
/* 028D8BF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8BF4 */ _t7 = cpu->r[30] + 0x00000000u;
|
|
/* 028D8BF4 */ rbrew_write32(cpu->mem, _t7, cpu->r[9]);
|
|
/* 028D8BF8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8BF8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D8BF8 */ if (_t9) goto L_028D8C18; else goto L_028D8BFC;
|
|
L_028D8BFC: ; // 0x28d8bfc
|
|
/* 028D8BFC */ _t10 = cpu->r[3] + 0x00000000u;
|
|
/* 028D8BFC */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D8C00 */ _t11 = cpu->r[11] + 0x00000014u;
|
|
/* 028D8C00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D8C04 */ cpu->ctr = cpu->r[0];
|
|
/* 028D8C08 */ cpu->r[4] = 0x00000003u;
|
|
/* 028D8C0C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D8C10 */ cpu->r[0] = 0x00000000u;
|
|
/* 028D8C14 */ _t12 = cpu->r[30] + 0x00000018u;
|
|
/* 028D8C14 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
L_028D8C18: ; // 0x28d8c18
|
|
/* 028D8C18 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D8C1C */ cpu->r[4] = 0x00000000u;
|
|
/* 028D8C20 */ Gambit_fn_028D88D4(cpu);
|
|
/* 028D8C24 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D8C24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D8C28 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8C28 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D8C28 */ if (_t14) goto L_028D8C34; else goto L_028D8C2C;
|
|
L_028D8C2C: ; // 0x28d8c2c
|
|
/* 028D8C2C */ cpu->r[3] = cpu->r[30];
|
|
/* 028D8C30 */ Gambit_fn_02801BB0(cpu);
|
|
L_028D8C34: ; // 0x28d8c34
|
|
/* 028D8C34 */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8C34 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D8C38 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8C38 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D8C3C */ cpu->lr = cpu->r[0];
|
|
/* 028D8C40 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8C40 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D8C44 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D8C48 */ return;
|
|
}
|
|
|
|
// fn_028D8BC8 @ 0x28d8bc8
|
|
void Gambit_fn_028D8BC8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028D8BC8: ; // 0x28d8bc8
|
|
/* 028D8BC8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D8BC8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8BC8 */ cpu->r[1] = _t0;
|
|
/* 028D8BCC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8BCC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D8BD0 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8BD0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D8BD4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D8BD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D8BD8 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D8BDC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8BDC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D8BE0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8BE0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D8BE0 */ if (_t5) goto L_028D8C34; else goto L_028D8BE4;
|
|
L_028D8BE4: ; // 0x28d8be4
|
|
/* 028D8BE4 */ _t6 = cpu->r[30] + 0x00000018u;
|
|
/* 028D8BE4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D8BE8 */ cpu->r[9] = 0x10140000u;
|
|
/* 028D8BEC */ cpu->r[9] = cpu->r[9] + 0xFFFFAFB4u;
|
|
/* 028D8BF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8BF4 */ _t7 = cpu->r[30] + 0x00000000u;
|
|
/* 028D8BF4 */ rbrew_write32(cpu->mem, _t7, cpu->r[9]);
|
|
/* 028D8BF8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8BF8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D8BF8 */ if (_t9) goto L_028D8C18; else goto L_028D8BFC;
|
|
L_028D8BFC: ; // 0x28d8bfc
|
|
/* 028D8BFC */ _t10 = cpu->r[3] + 0x00000000u;
|
|
/* 028D8BFC */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D8C00 */ _t11 = cpu->r[11] + 0x00000014u;
|
|
/* 028D8C00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D8C04 */ cpu->ctr = cpu->r[0];
|
|
/* 028D8C08 */ cpu->r[4] = 0x00000003u;
|
|
/* 028D8C0C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D8C10 */ cpu->r[0] = 0x00000000u;
|
|
/* 028D8C14 */ _t12 = cpu->r[30] + 0x00000018u;
|
|
/* 028D8C14 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
L_028D8C18: ; // 0x28d8c18
|
|
/* 028D8C18 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D8C1C */ cpu->r[4] = 0x00000000u;
|
|
/* 028D8C20 */ Gambit_fn_028D88D4(cpu);
|
|
/* 028D8C24 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D8C24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D8C28 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8C28 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028D8C28 */ if (_t14) goto L_028D8C34; else goto L_028D8C2C;
|
|
L_028D8C2C: ; // 0x28d8c2c
|
|
/* 028D8C2C */ cpu->r[3] = cpu->r[30];
|
|
/* 028D8C30 */ Gambit_fn_02801BB0(cpu);
|
|
L_028D8C34: ; // 0x28d8c34
|
|
/* 028D8C34 */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8C34 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D8C38 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8C38 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D8C3C */ cpu->lr = cpu->r[0];
|
|
/* 028D8C40 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8C40 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D8C44 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D8C48 */ return;
|
|
}
|
|
|
|
// fn_028D8C4C @ 0x28d8c4c
|
|
void Gambit_fn_028D8C4C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028D8C4C: ; // 0x28d8c4c
|
|
/* 028D8C4C */ cpu->r[0] = cpu->lr;
|
|
/* 028D8C50 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028D8C50 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8C50 */ cpu->r[1] = _t0;
|
|
/* 028D8C54 */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028D8C54 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D8C58 */ cpu->r[30] = cpu->r[5];
|
|
/* 028D8C5C */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8C5C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D8C60 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8C64 */ cpu->r[3] = 0x00000028u;
|
|
/* 028D8C68 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D8C6C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8C6C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028D8C70 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 028D8C70 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D8C74 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D8C78 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D8C7C */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D8C80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8C84 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8C84 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D8C84 */ if (_t6) goto L_028D8C8C; else goto L_028D8C88;
|
|
L_028D8C88: ; // 0x28d8c88
|
|
/* 028D8C88 */ Gambit_fn_028DA4A4(cpu);
|
|
L_028D8C8C: ; // 0x28d8c8c
|
|
/* 028D8C8C */ _t7 = cpu->r[31] + 0x00000014u;
|
|
/* 028D8C8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D8C90 */ _t8 = cpu->r[31] + 0x00000018u;
|
|
/* 028D8C90 */ rbrew_write32(cpu->mem, _t8, cpu->r[3]);
|
|
/* 028D8C94 */ cpu->r[4] = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8C98 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8C98 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028D8C9C */ Gambit_fn_028DA6F0(cpu);
|
|
/* 028D8CA0 */ _t10 = cpu->r[29] + 0x00000000u;
|
|
/* 028D8CA0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D8CA4 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8CA8 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D8CAC */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8CB0 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8CB0 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028D8CB4 */ Gambit_fn_028D89BC(cpu);
|
|
/* 028D8CB8 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8CB8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D8CBC */ _t13 = cpu->r[1] + 0x00000024u;
|
|
/* 028D8CBC */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D8CC0 */ _t14 = cpu->r[1] + 0x00000018u;
|
|
/* 028D8CC0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D8CC4 */ cpu->lr = cpu->r[0];
|
|
/* 028D8CC8 */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8CC8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D8CCC */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028D8CD0 */ return;
|
|
}
|
|
|
|
// fn_028D8C50 @ 0x28d8c50
|
|
void Gambit_fn_028D8C50(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028D8C50: ; // 0x28d8c50
|
|
/* 028D8C50 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028D8C50 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8C50 */ cpu->r[1] = _t0;
|
|
/* 028D8C54 */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028D8C54 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028D8C58 */ cpu->r[30] = cpu->r[5];
|
|
/* 028D8C5C */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8C5C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028D8C60 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8C64 */ cpu->r[3] = 0x00000028u;
|
|
/* 028D8C68 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D8C6C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8C6C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028D8C70 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 028D8C70 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028D8C74 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D8C78 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D8C7C */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D8C80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8C84 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8C84 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D8C84 */ if (_t6) goto L_028D8C8C; else goto L_028D8C88;
|
|
L_028D8C88: ; // 0x28d8c88
|
|
/* 028D8C88 */ Gambit_fn_028DA4A4(cpu);
|
|
L_028D8C8C: ; // 0x28d8c8c
|
|
/* 028D8C8C */ _t7 = cpu->r[31] + 0x00000014u;
|
|
/* 028D8C8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D8C90 */ _t8 = cpu->r[31] + 0x00000018u;
|
|
/* 028D8C90 */ rbrew_write32(cpu->mem, _t8, cpu->r[3]);
|
|
/* 028D8C94 */ cpu->r[4] = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8C98 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8C98 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028D8C9C */ Gambit_fn_028DA6F0(cpu);
|
|
/* 028D8CA0 */ _t10 = cpu->r[29] + 0x00000000u;
|
|
/* 028D8CA0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D8CA4 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8CA8 */ cpu->r[5] = cpu->r[30];
|
|
/* 028D8CAC */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8CB0 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8CB0 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028D8CB4 */ Gambit_fn_028D89BC(cpu);
|
|
/* 028D8CB8 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8CB8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D8CBC */ _t13 = cpu->r[1] + 0x00000024u;
|
|
/* 028D8CBC */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D8CC0 */ _t14 = cpu->r[1] + 0x00000018u;
|
|
/* 028D8CC0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D8CC4 */ cpu->lr = cpu->r[0];
|
|
/* 028D8CC8 */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D8CC8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D8CCC */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028D8CD0 */ return;
|
|
}
|
|
|
|
// fn_028D8CD4 @ 0x28d8cd4
|
|
void Gambit_fn_028D8CD4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028D8CD4: ; // 0x28d8cd4
|
|
/* 028D8CD4 */ cpu->r[0] = cpu->lr;
|
|
/* 028D8CD8 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028D8CD8 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028D8CDC */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028D8CDC */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028D8CDC */ cpu->r[1] = _t1;
|
|
/* 028D8CE0 */ _t2 = cpu->r[3] + 0x00000018u;
|
|
/* 028D8CE0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028D8CE4 */ _t3 = cpu->r[12] + 0x00000008u;
|
|
/* 028D8CE4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D8CE8 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D8CEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000001u);
|
|
/* 028D8CF0 */ cpu->r[3] = 0x00000038u;
|
|
/* 028D8CF4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8CF4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D8CF4 */ if (_t5) goto L_028D8CF8; else goto L_028D8D18;
|
|
L_028D8CF8: ; // 0x28d8cf8
|
|
/* 028D8CF8 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D8CFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8D00 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8D00 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D8D00 */ if (_t7) goto L_028D8D08; else goto L_028D8D04;
|
|
L_028D8D04: ; // 0x28d8d04
|
|
/* 028D8D04 */ Gambit_fn_028D8588(cpu);
|
|
L_028D8D08: ; // 0x28d8d08
|
|
/* 028D8D08 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8D08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D8D0C */ cpu->lr = cpu->r[0];
|
|
/* 028D8D10 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8D14 */ return;
|
|
L_028D8D18: ; // 0x28d8d18
|
|
/* 028D8D18 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D8D1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8D20 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8D20 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D8D20 */ if (_t10) goto L_028D8D28; else goto L_028D8D24;
|
|
L_028D8D24: ; // 0x28d8d24
|
|
/* 028D8D24 */ Gambit_fn_028D84FC(cpu);
|
|
L_028D8D28: ; // 0x28d8d28
|
|
/* 028D8D28 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8D28 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D8D2C */ cpu->lr = cpu->r[0];
|
|
/* 028D8D30 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8D34 */ return;
|
|
}
|
|
|
|
// fn_028D8CDC @ 0x28d8cdc
|
|
void Gambit_fn_028D8CDC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028D8CDC: ; // 0x28d8cdc
|
|
/* 028D8CDC */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028D8CDC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8CDC */ cpu->r[1] = _t0;
|
|
/* 028D8CE0 */ _t1 = cpu->r[3] + 0x00000018u;
|
|
/* 028D8CE0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028D8CE4 */ _t2 = cpu->r[12] + 0x00000008u;
|
|
/* 028D8CE4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028D8CE8 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D8CEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000001u);
|
|
/* 028D8CF0 */ cpu->r[3] = 0x00000038u;
|
|
/* 028D8CF4 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8CF4 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D8CF4 */ if (_t4) goto L_028D8CF8; else goto L_028D8D18;
|
|
L_028D8CF8: ; // 0x28d8cf8
|
|
/* 028D8CF8 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D8CFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8D00 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8D00 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D8D00 */ if (_t6) goto L_028D8D08; else goto L_028D8D04;
|
|
L_028D8D04: ; // 0x28d8d04
|
|
/* 028D8D04 */ Gambit_fn_028D8588(cpu);
|
|
L_028D8D08: ; // 0x28d8d08
|
|
/* 028D8D08 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8D08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D8D0C */ cpu->lr = cpu->r[0];
|
|
/* 028D8D10 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8D14 */ return;
|
|
L_028D8D18: ; // 0x28d8d18
|
|
/* 028D8D18 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D8D1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8D20 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8D20 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D8D20 */ if (_t9) goto L_028D8D28; else goto L_028D8D24;
|
|
L_028D8D24: ; // 0x28d8d24
|
|
/* 028D8D24 */ Gambit_fn_028D84FC(cpu);
|
|
L_028D8D28: ; // 0x28d8d28
|
|
/* 028D8D28 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8D28 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D8D2C */ cpu->lr = cpu->r[0];
|
|
/* 028D8D30 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8D34 */ return;
|
|
}
|
|
|
|
// fn_028D8D38 @ 0x28d8d38
|
|
void Gambit_fn_028D8D38(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028D8D38: ; // 0x28d8d38
|
|
/* 028D8D38 */ cpu->r[0] = cpu->lr;
|
|
/* 028D8D3C */ cpu->r[3] = 0x00000038u;
|
|
/* 028D8D40 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028D8D40 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028D8D44 */ cpu->r[5] = 0x00000004u;
|
|
/* 028D8D48 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028D8D48 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028D8D48 */ cpu->r[1] = _t1;
|
|
/* 028D8D4C */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D8D50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8D54 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8D54 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028D8D54 */ if (_t3) goto L_028D8D5C; else goto L_028D8D58;
|
|
L_028D8D58: ; // 0x28d8d58
|
|
/* 028D8D58 */ Gambit_fn_028D86B0(cpu);
|
|
L_028D8D5C: ; // 0x28d8d5c
|
|
/* 028D8D5C */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8D5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D8D60 */ cpu->lr = cpu->r[0];
|
|
/* 028D8D64 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8D68 */ return;
|
|
}
|
|
|
|
// fn_028D8D48 @ 0x28d8d48
|
|
void Gambit_fn_028D8D48(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028D8D48: ; // 0x28d8d48
|
|
/* 028D8D48 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028D8D48 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8D48 */ cpu->r[1] = _t0;
|
|
/* 028D8D4C */ Gambit_fn_02801AC8(cpu);
|
|
/* 028D8D50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8D54 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8D54 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028D8D54 */ if (_t2) goto L_028D8D5C; else goto L_028D8D58;
|
|
L_028D8D58: ; // 0x28d8d58
|
|
/* 028D8D58 */ Gambit_fn_028D86B0(cpu);
|
|
L_028D8D5C: ; // 0x28d8d5c
|
|
/* 028D8D5C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8D5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D8D60 */ cpu->lr = cpu->r[0];
|
|
/* 028D8D64 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8D68 */ return;
|
|
}
|
|
|
|
// fn_028D8D6C @ 0x28d8d6c
|
|
void Gambit_fn_028D8D6C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028D8D6C: ; // 0x28d8d6c
|
|
/* 028D8D6C */ cpu->r[0] = cpu->lr;
|
|
/* 028D8D70 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D8D70 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8D70 */ cpu->r[1] = _t0;
|
|
/* 028D8D74 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8D74 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D8D78 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8D78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8D7C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8D7C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D8D80 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8D80 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D8D80 */ if (_t4) goto L_028D8D84; else goto L_028D8D94;
|
|
L_028D8D84: ; // 0x28d8d84
|
|
/* 028D8D84 */ cpu->r[3] = 0x00000014u;
|
|
/* 028D8D88 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D8D8C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8D8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8D90 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8D90 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D8D90 */ if (_t6) goto L_028D8DA8; else goto L_028D8D94;
|
|
L_028D8D94: ; // 0x28d8d94
|
|
/* 028D8D94 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8D98 */ Gambit_fn_028D8878(cpu);
|
|
/* 028D8D9C */ cpu->r[0] = 0x10140000u;
|
|
/* 028D8DA0 */ cpu->r[0] = cpu->r[0] + 0xFFFFAF04u;
|
|
/* 028D8DA4 */ _t7 = cpu->r[31] + 0x00000000u;
|
|
/* 028D8DA4 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
L_028D8DA8: ; // 0x28d8da8
|
|
/* 028D8DA8 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8DA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D8DAC */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8DB0 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8DB0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D8DB4 */ cpu->lr = cpu->r[0];
|
|
/* 028D8DB8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D8DBC */ return;
|
|
}
|
|
|
|
// fn_028D8D70 @ 0x28d8d70
|
|
void Gambit_fn_028D8D70(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028D8D70: ; // 0x28d8d70
|
|
/* 028D8D70 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D8D70 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8D70 */ cpu->r[1] = _t0;
|
|
/* 028D8D74 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8D74 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D8D78 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8D78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8D7C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8D7C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028D8D80 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8D80 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D8D80 */ if (_t4) goto L_028D8D84; else goto L_028D8D94;
|
|
L_028D8D84: ; // 0x28d8d84
|
|
/* 028D8D84 */ cpu->r[3] = 0x00000014u;
|
|
/* 028D8D88 */ Gambit_fn_02801A78(cpu);
|
|
/* 028D8D8C */ cpu->r[31] = cpu->r[3];
|
|
/* 028D8D8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D8D90 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8D90 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D8D90 */ if (_t6) goto L_028D8DA8; else goto L_028D8D94;
|
|
L_028D8D94: ; // 0x28d8d94
|
|
/* 028D8D94 */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8D98 */ Gambit_fn_028D8878(cpu);
|
|
/* 028D8D9C */ cpu->r[0] = 0x10140000u;
|
|
/* 028D8DA0 */ cpu->r[0] = cpu->r[0] + 0xFFFFAF04u;
|
|
/* 028D8DA4 */ _t7 = cpu->r[31] + 0x00000000u;
|
|
/* 028D8DA4 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
L_028D8DA8: ; // 0x28d8da8
|
|
/* 028D8DA8 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8DA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D8DAC */ cpu->r[3] = cpu->r[31];
|
|
/* 028D8DB0 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8DB0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D8DB4 */ cpu->lr = cpu->r[0];
|
|
/* 028D8DB8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D8DBC */ return;
|
|
}
|
|
|
|
// fn_028D8DC0 @ 0x28d8dc0
|
|
void Gambit_fn_028D8DC0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028D8DC0: ; // 0x28d8dc0
|
|
/* 028D8DC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8DC4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8DC4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D8DC4 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D8DC4 */ goto L_028D8DC8;
|
|
L_028D8DC8: ; // 0x28d8dc8
|
|
/* 028D8DC8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D8DC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D8DCC */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8DCC */ _t19 = _t18 & 0x00000001u;
|
|
/* 028D8DCC */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028D8DCC */ goto L_028D8DD0;
|
|
L_028D8DD0: ; // 0x28d8dd0
|
|
/* 028D8DD0 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028D8DD4 @ 0x28d8dd4
|
|
void Gambit_fn_028D8DD4(CPUState* cpu) {
|
|
L_028D8DD4: ; // 0x28d8dd4
|
|
/* 028D8DD4 */ return;
|
|
}
|
|
|
|
// fn_028D8DD8 @ 0x28d8dd8
|
|
void Gambit_fn_028D8DD8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028D8DD8: ; // 0x28d8dd8
|
|
/* 028D8DD8 */ cpu->r[0] = cpu->lr;
|
|
/* 028D8DDC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D8DDC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8DDC */ cpu->r[1] = _t0;
|
|
/* 028D8DE0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8DE0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D8DE4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8DE4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D8DE8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D8DE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D8DEC */ cpu->r[31] = cpu->r[4];
|
|
/* 028D8DF0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8DF0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D8DF4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8DF4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D8DF4 */ if (_t5) goto L_028D8E14; else goto L_028D8DF8;
|
|
L_028D8DF8: ; // 0x28d8df8
|
|
/* 028D8DF8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D8DFC */ cpu->r[4] = 0x00000000u;
|
|
/* 028D8E00 */ Gambit_fn_028D88D4(cpu);
|
|
/* 028D8E04 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D8E04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D8E08 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8E08 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D8E08 */ if (_t7) goto L_028D8E14; else goto L_028D8E0C;
|
|
L_028D8E0C: ; // 0x28d8e0c
|
|
/* 028D8E0C */ cpu->r[3] = cpu->r[30];
|
|
/* 028D8E10 */ Gambit_fn_02801BB0(cpu);
|
|
L_028D8E14: ; // 0x28d8e14
|
|
/* 028D8E14 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8E14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D8E18 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8E18 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D8E1C */ cpu->lr = cpu->r[0];
|
|
/* 028D8E20 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8E20 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D8E24 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D8E28 */ return;
|
|
}
|
|
|
|
// fn_028D8DDC @ 0x28d8ddc
|
|
void Gambit_fn_028D8DDC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028D8DDC: ; // 0x28d8ddc
|
|
/* 028D8DDC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D8DDC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8DDC */ cpu->r[1] = _t0;
|
|
/* 028D8DE0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8DE0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D8DE4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8DE4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D8DE8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D8DE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D8DEC */ cpu->r[31] = cpu->r[4];
|
|
/* 028D8DF0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8DF0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D8DF4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8DF4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D8DF4 */ if (_t5) goto L_028D8E14; else goto L_028D8DF8;
|
|
L_028D8DF8: ; // 0x28d8df8
|
|
/* 028D8DF8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D8DFC */ cpu->r[4] = 0x00000000u;
|
|
/* 028D8E00 */ Gambit_fn_028D88D4(cpu);
|
|
/* 028D8E04 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D8E04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D8E08 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8E08 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D8E08 */ if (_t7) goto L_028D8E14; else goto L_028D8E0C;
|
|
L_028D8E0C: ; // 0x28d8e0c
|
|
/* 028D8E0C */ cpu->r[3] = cpu->r[30];
|
|
/* 028D8E10 */ Gambit_fn_02801BB0(cpu);
|
|
L_028D8E14: ; // 0x28d8e14
|
|
/* 028D8E14 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8E14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D8E18 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8E18 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D8E1C */ cpu->lr = cpu->r[0];
|
|
/* 028D8E20 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8E20 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D8E24 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D8E28 */ return;
|
|
}
|
|
|
|
// fn_028D8E2C @ 0x28d8e2c
|
|
void Gambit_fn_028D8E2C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028D8E2C: ; // 0x28d8e2c
|
|
/* 028D8E2C */ cpu->r[0] = cpu->lr;
|
|
/* 028D8E30 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D8E30 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8E30 */ cpu->r[1] = _t0;
|
|
/* 028D8E34 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8E34 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D8E38 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8E38 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D8E3C */ cpu->r[30] = cpu->r[3];
|
|
/* 028D8E3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D8E40 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D8E44 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8E44 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D8E48 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8E48 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D8E48 */ if (_t5) goto L_028D8E68; else goto L_028D8E4C;
|
|
L_028D8E4C: ; // 0x28d8e4c
|
|
/* 028D8E4C */ cpu->r[3] = cpu->r[30];
|
|
/* 028D8E50 */ cpu->r[4] = 0x00000000u;
|
|
/* 028D8E54 */ Gambit_fn_028D88D4(cpu);
|
|
/* 028D8E58 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D8E58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D8E5C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8E5C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D8E5C */ if (_t7) goto L_028D8E68; else goto L_028D8E60;
|
|
L_028D8E60: ; // 0x28d8e60
|
|
/* 028D8E60 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D8E64 */ Gambit_fn_02801BB0(cpu);
|
|
L_028D8E68: ; // 0x28d8e68
|
|
/* 028D8E68 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8E68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D8E6C */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8E6C */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D8E70 */ cpu->lr = cpu->r[0];
|
|
/* 028D8E74 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8E74 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D8E78 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D8E7C */ return;
|
|
}
|
|
|
|
// fn_028D8E30 @ 0x28d8e30
|
|
void Gambit_fn_028D8E30(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028D8E30: ; // 0x28d8e30
|
|
/* 028D8E30 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028D8E30 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8E30 */ cpu->r[1] = _t0;
|
|
/* 028D8E34 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8E34 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028D8E38 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8E38 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028D8E3C */ cpu->r[30] = cpu->r[3];
|
|
/* 028D8E3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D8E40 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D8E44 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8E44 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D8E48 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8E48 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D8E48 */ if (_t5) goto L_028D8E68; else goto L_028D8E4C;
|
|
L_028D8E4C: ; // 0x28d8e4c
|
|
/* 028D8E4C */ cpu->r[3] = cpu->r[30];
|
|
/* 028D8E50 */ cpu->r[4] = 0x00000000u;
|
|
/* 028D8E54 */ Gambit_fn_028D88D4(cpu);
|
|
/* 028D8E58 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028D8E58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D8E5C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8E5C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028D8E5C */ if (_t7) goto L_028D8E68; else goto L_028D8E60;
|
|
L_028D8E60: ; // 0x28d8e60
|
|
/* 028D8E60 */ cpu->r[3] = cpu->r[30];
|
|
/* 028D8E64 */ Gambit_fn_02801BB0(cpu);
|
|
L_028D8E68: ; // 0x28d8e68
|
|
/* 028D8E68 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028D8E68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D8E6C */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8E6C */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D8E70 */ cpu->lr = cpu->r[0];
|
|
/* 028D8E74 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8E74 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028D8E78 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028D8E7C */ return;
|
|
}
|
|
|
|
// fn_028D8E80 @ 0x28d8e80
|
|
void Gambit_fn_028D8E80(CPUState* cpu) {
|
|
L_028D8E80: ; // 0x28d8e80
|
|
/* 028D8E80 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D8E84 */ return;
|
|
}
|
|
|
|
// fn_028D8E88 @ 0x28d8e88
|
|
void Gambit_fn_028D8E88(CPUState* cpu) {
|
|
L_028D8E88: ; // 0x28d8e88
|
|
/* 028D8E88 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D8E8C */ return;
|
|
}
|
|
|
|
// fn_028D8E90 @ 0x28d8e90
|
|
void Gambit_fn_028D8E90(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_028D8E90: ; // 0x28d8e90
|
|
/* 028D8E90 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028D8E90 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8E90 */ cpu->r[1] = _t0;
|
|
/* 028D8E94 */ /* nop */
|
|
/* 028D8E98 */ cpu->r[0] = cpu->lr;
|
|
/* 028D8E9C */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028D8E9C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028D8EA0 */ cpu->r[29] = cpu->r[3];
|
|
/* 028D8EA4 */ cpu->r[3] = cpu->r[5];
|
|
/* 028D8EA8 */ cpu->r[31] = cpu->r[3] + 0x00000024u;
|
|
/* 028D8EAC */ cpu->r[30] = cpu->r[4];
|
|
/* 028D8EB0 */ _t2 = cpu->r[3] + 0x00000008u;
|
|
/* 028D8EB0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028D8EB4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], 0x00000005u);
|
|
/* 028D8EB8 */ _t3 = cpu->r[7] + 0x0000001Cu;
|
|
/* 028D8EB8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028D8EBC */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D8EBC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028D8EBC */ if (_t5) goto L_028D8EC0; else goto L_028D8EE4;
|
|
L_028D8EC0: ; // 0x28d8ec0
|
|
/* 028D8EC0 */ cpu->ctr = cpu->r[8];
|
|
/* 028D8EC4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028D8EC8 */ _t6 = cpu->r[31] + cpu->r[0];
|
|
/* 028D8EC8 */ cpu->r[26] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028D8ECC */ cpu->r[27] = 0xFFFFFFFFu;
|
|
/* 028D8ED0 */ cpu->r[28] = 0x00000005u;
|
|
/* 028D8ED4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D8ED8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8EDC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8EDC */ _t8 = _t7 & 0x00000001u;
|
|
/* 028D8EDC */ if (_t8) goto L_028D8EE0; else goto L_028D8F04;
|
|
L_028D8EE0: ; // 0x28d8ee0
|
|
/* 028D8EE0 */ goto L_028D8F00;
|
|
L_028D8EE4: ; // 0x28d8ee4
|
|
/* 028D8EE4 */ cpu->ctr = cpu->r[8];
|
|
/* 028D8EE8 */ _t9 = cpu->r[31] + 0x00000000u;
|
|
/* 028D8EE8 */ cpu->r[26] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D8EEC */ cpu->r[27] = 0xFFFFFFFFu;
|
|
/* 028D8EF0 */ cpu->r[28] = 0x00000005u;
|
|
/* 028D8EF4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D8EF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D8EFC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D8EFC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D8EFC */ if (_t11) goto L_028D8F00; else goto L_028D8F04;
|
|
L_028D8F00: ; // 0x28d8f00
|
|
/* 028D8F00 */ cpu->r[28] = 0x00000004u;
|
|
L_028D8F04: ; // 0x28d8f04
|
|
/* 028D8F04 */ cpu->r[0] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 028D8F08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028D8F0C */ _t12 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D8F0C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D8F0C */ if (_t13) goto L_028D8F10; else goto L_028D8F2C;
|
|
L_028D8F10: ; // 0x28d8f10
|
|
/* 028D8F10 */ cpu->r[5] = cpu->r[30] + 0x00000001u;
|
|
/* 028D8F14 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], 0x00000005u);
|
|
/* 028D8F18 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D8F18 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028D8F18 */ if (_t15) goto L_028D8F1C; else goto L_028D8F24;
|
|
L_028D8F1C: ; // 0x28d8f1c
|
|
/* 028D8F1C */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028D8F20 */ cpu->r[31] = cpu->r[31] + cpu->r[0];
|
|
L_028D8F24: ; // 0x28d8f24
|
|
/* 028D8F24 */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 028D8F24 */ cpu->r[11] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028D8F28 */ cpu->r[27] = cpu->r[11] + 0xFFFFFFFFu;
|
|
L_028D8F2C: ; // 0x28d8f2c
|
|
/* 028D8F2C */ _t17 = cpu->r[29] + 0x00000004u;
|
|
/* 028D8F2C */ rbrew_write32(cpu->mem, _t17, cpu->r[27]);
|
|
/* 028D8F30 */ _t18 = cpu->r[29] + 0x00000000u;
|
|
/* 028D8F30 */ rbrew_write32(cpu->mem, _t18, cpu->r[26]);
|
|
/* 028D8F34 */ /* nop */
|
|
/* 028D8F38 */ _t19 = cpu->r[1] + 0x00000024u;
|
|
/* 028D8F38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D8F3C */ cpu->lr = cpu->r[0];
|
|
/* 028D8F40 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028D8F44 */ return;
|
|
}
|
|
|
|
// fn_028D8F48 @ 0x28d8f48
|
|
void Gambit_fn_028D8F48(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28;
|
|
|
|
L_028D8F48: ; // 0x28d8f48
|
|
/* 028D8F48 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D8F4C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D8F4C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8F4C */ cpu->r[1] = _t0;
|
|
/* 028D8F50 */ _t1 = cpu->r[11] + 0xFFFFAFF0u;
|
|
/* 028D8F50 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t1);
|
|
/* 028D8F54 */ cpu->r[9] = 0x10140000u;
|
|
/* 028D8F58 */ cpu->f[0] = cpu->f[0] * cpu->f[1];
|
|
/* 028D8F5C */ _t2 = cpu->r[9] + 0xFFFFAFF4u;
|
|
/* 028D8F5C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t2);
|
|
/* 028D8F60 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[13]);
|
|
/* 028D8F64 */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D8F64 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D8F64 */ if (_t4) goto L_028D8F68; else goto L_028D8FDC;
|
|
L_028D8F68: ; // 0x28d8f68
|
|
/* 028D8F68 */ cpu->f[13] = (uint32_t)(int32_t)cpu->f[0];
|
|
/* 028D8F6C */ cpu->r[12] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8F70 */ cpu->r[10] = 0x10140000u;
|
|
/* 028D8F74 */ /* nop */
|
|
/* 028D8F78 */ _t5 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8F78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D8F7C */ cpu->r[11] = 0x43300000u;
|
|
/* 028D8F80 */ _t6 = cpu->r[10] + 0xFFFFAFF8u;
|
|
/* 028D8F80 */ cpu->f[13] = rbrew_read_f64(cpu->mem, _t6);
|
|
/* 028D8F84 */ cpu->r[10] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000008u, 0x0000001Fu);
|
|
/* 028D8F88 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8F88 */ rbrew_write32(cpu->mem, _t7, cpu->r[11]);
|
|
/* 028D8F8C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8F8C */ rbrew_write32(cpu->mem, _t8, cpu->r[10]);
|
|
/* 028D8F90 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8F90 */ cpu->f[0] = rbrew_read_f64(cpu->mem, _t9);
|
|
/* 028D8F94 */ cpu->r[10] = 0x10110000u;
|
|
/* 028D8F98 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x0000000Cu, 0x00000014u, 0x0000001Bu);
|
|
/* 028D8F9C */ cpu->f[13] = cpu->f[0] - cpu->f[13];
|
|
/* 028D8FA0 */ cpu->r[10] = cpu->r[10] + 0x000053A0u;
|
|
/* 028D8FA4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D8FA8 */ cpu->r[9] = cpu->r[10] + cpu->r[0];
|
|
/* 028D8FAC */ _t10 = cpu->r[12] + 0xFFFFB000u;
|
|
/* 028D8FAC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028D8FB0 */ cpu->f[12] = (double)(float)cpu->f[13];
|
|
/* 028D8FB4 */ _t11 = cpu->r[9] + 0x00000004u;
|
|
/* 028D8FB4 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028D8FB8 */ cpu->f[0] = cpu->f[12] * cpu->f[0];
|
|
/* 028D8FBC */ _t12 = cpu->r[9] + 0x00000000u;
|
|
/* 028D8FBC */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 028D8FC0 */ cpu->f[13] = fma(cpu->f[13], cpu->f[0], cpu->f[12]);
|
|
/* 028D8FC4 */ _t13 = cpu->r[4] + 0x00000000u;
|
|
/* 028D8FC4 */ rbrew_write_f32(cpu->mem, _t13, cpu->f[13]);
|
|
/* 028D8FC8 */ _t14 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028D8FC8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028D8FCC */ _t15 = cpu->r[9] + 0x00000008u;
|
|
/* 028D8FCC */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028D8FD0 */ cpu->f[0] = fma(cpu->f[12], cpu->f[0], cpu->f[13]);
|
|
/* 028D8FD4 */ _t16 = cpu->r[3] + 0x00000000u;
|
|
/* 028D8FD4 */ rbrew_write_f32(cpu->mem, _t16, cpu->f[0]);
|
|
/* 028D8FD8 */ goto L_028D9054;
|
|
L_028D8FDC: ; // 0x28d8fdc
|
|
/* 028D8FDC */ cpu->f[0] = cpu->f[0] - cpu->f[13];
|
|
/* 028D8FE0 */ cpu->f[0] = (uint32_t)(int32_t)cpu->f[0];
|
|
/* 028D8FE4 */ cpu->r[11] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8FE8 */ cpu->r[10] = 0x10140000u;
|
|
/* 028D8FEC */ /* nop */
|
|
/* 028D8FF0 */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8FF0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D8FF4 */ cpu->r[11] = 0x43300000u;
|
|
/* 028D8FF8 */ _t18 = cpu->r[10] + 0xFFFFAFF8u;
|
|
/* 028D8FF8 */ cpu->f[13] = rbrew_read_f64(cpu->mem, _t18);
|
|
/* 028D8FFC */ cpu->r[0] = cpu->r[12] + 0x80000000u;
|
|
/* 028D9000 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028D9000 */ rbrew_write32(cpu->mem, _t19, cpu->r[11]);
|
|
/* 028D9004 */ cpu->r[10] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000008u, 0x0000001Fu);
|
|
/* 028D9008 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D9008 */ rbrew_write32(cpu->mem, _t20, cpu->r[10]);
|
|
/* 028D900C */ _t21 = cpu->r[1] + 0x00000008u;
|
|
/* 028D900C */ cpu->f[0] = rbrew_read_f64(cpu->mem, _t21);
|
|
/* 028D9010 */ cpu->r[10] = 0x10110000u;
|
|
/* 028D9014 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x0000000Cu, 0x00000014u, 0x0000001Bu);
|
|
/* 028D9018 */ cpu->f[13] = cpu->f[0] - cpu->f[13];
|
|
/* 028D901C */ cpu->r[10] = cpu->r[10] + 0x000053A0u;
|
|
/* 028D9020 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D9024 */ cpu->r[9] = cpu->r[10] + cpu->r[0];
|
|
/* 028D9028 */ _t22 = cpu->r[12] + 0xFFFFB000u;
|
|
/* 028D9028 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 028D902C */ cpu->f[12] = (double)(float)cpu->f[13];
|
|
/* 028D9030 */ _t23 = cpu->r[9] + 0x00000004u;
|
|
/* 028D9030 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 028D9034 */ cpu->f[0] = cpu->f[12] * cpu->f[0];
|
|
/* 028D9038 */ _t24 = cpu->r[9] + 0x00000000u;
|
|
/* 028D9038 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 028D903C */ cpu->f[13] = fma(cpu->f[13], cpu->f[0], cpu->f[12]);
|
|
/* 028D9040 */ _t25 = cpu->r[4] + 0x00000000u;
|
|
/* 028D9040 */ rbrew_write_f32(cpu->mem, _t25, cpu->f[13]);
|
|
/* 028D9044 */ _t26 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028D9044 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028D9048 */ _t27 = cpu->r[9] + 0x00000008u;
|
|
/* 028D9048 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 028D904C */ cpu->f[0] = fma(cpu->f[12], cpu->f[0], cpu->f[13]);
|
|
/* 028D9050 */ _t28 = cpu->r[3] + 0x00000000u;
|
|
/* 028D9050 */ rbrew_write_f32(cpu->mem, _t28, cpu->f[0]);
|
|
L_028D9054: ; // 0x28d9054
|
|
/* 028D9054 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D9058 */ return;
|
|
}
|
|
|
|
// fn_028D8F4C @ 0x28d8f4c
|
|
void Gambit_fn_028D8F4C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28;
|
|
|
|
L_028D8F4C: ; // 0x28d8f4c
|
|
/* 028D8F4C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028D8F4C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D8F4C */ cpu->r[1] = _t0;
|
|
/* 028D8F50 */ _t1 = cpu->r[11] + 0xFFFFAFF0u;
|
|
/* 028D8F50 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t1);
|
|
/* 028D8F54 */ cpu->r[9] = 0x10140000u;
|
|
/* 028D8F58 */ cpu->f[0] = cpu->f[0] * cpu->f[1];
|
|
/* 028D8F5C */ _t2 = cpu->r[9] + 0xFFFFAFF4u;
|
|
/* 028D8F5C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t2);
|
|
/* 028D8F60 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[13]);
|
|
/* 028D8F64 */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D8F64 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028D8F64 */ if (_t4) goto L_028D8F68; else goto L_028D8FDC;
|
|
L_028D8F68: ; // 0x28d8f68
|
|
/* 028D8F68 */ cpu->f[13] = (uint32_t)(int32_t)cpu->f[0];
|
|
/* 028D8F6C */ cpu->r[12] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8F70 */ cpu->r[10] = 0x10140000u;
|
|
/* 028D8F74 */ /* nop */
|
|
/* 028D8F78 */ _t5 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8F78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028D8F7C */ cpu->r[11] = 0x43300000u;
|
|
/* 028D8F80 */ _t6 = cpu->r[10] + 0xFFFFAFF8u;
|
|
/* 028D8F80 */ cpu->f[13] = rbrew_read_f64(cpu->mem, _t6);
|
|
/* 028D8F84 */ cpu->r[10] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000008u, 0x0000001Fu);
|
|
/* 028D8F88 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8F88 */ rbrew_write32(cpu->mem, _t7, cpu->r[11]);
|
|
/* 028D8F8C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D8F8C */ rbrew_write32(cpu->mem, _t8, cpu->r[10]);
|
|
/* 028D8F90 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8F90 */ cpu->f[0] = rbrew_read_f64(cpu->mem, _t9);
|
|
/* 028D8F94 */ cpu->r[10] = 0x10110000u;
|
|
/* 028D8F98 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x0000000Cu, 0x00000014u, 0x0000001Bu);
|
|
/* 028D8F9C */ cpu->f[13] = cpu->f[0] - cpu->f[13];
|
|
/* 028D8FA0 */ cpu->r[10] = cpu->r[10] + 0x000053A0u;
|
|
/* 028D8FA4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D8FA8 */ cpu->r[9] = cpu->r[10] + cpu->r[0];
|
|
/* 028D8FAC */ _t10 = cpu->r[12] + 0xFFFFB000u;
|
|
/* 028D8FAC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028D8FB0 */ cpu->f[12] = (double)(float)cpu->f[13];
|
|
/* 028D8FB4 */ _t11 = cpu->r[9] + 0x00000004u;
|
|
/* 028D8FB4 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028D8FB8 */ cpu->f[0] = cpu->f[12] * cpu->f[0];
|
|
/* 028D8FBC */ _t12 = cpu->r[9] + 0x00000000u;
|
|
/* 028D8FBC */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 028D8FC0 */ cpu->f[13] = fma(cpu->f[13], cpu->f[0], cpu->f[12]);
|
|
/* 028D8FC4 */ _t13 = cpu->r[4] + 0x00000000u;
|
|
/* 028D8FC4 */ rbrew_write_f32(cpu->mem, _t13, cpu->f[13]);
|
|
/* 028D8FC8 */ _t14 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028D8FC8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028D8FCC */ _t15 = cpu->r[9] + 0x00000008u;
|
|
/* 028D8FCC */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028D8FD0 */ cpu->f[0] = fma(cpu->f[12], cpu->f[0], cpu->f[13]);
|
|
/* 028D8FD4 */ _t16 = cpu->r[3] + 0x00000000u;
|
|
/* 028D8FD4 */ rbrew_write_f32(cpu->mem, _t16, cpu->f[0]);
|
|
/* 028D8FD8 */ goto L_028D9054;
|
|
L_028D8FDC: ; // 0x28d8fdc
|
|
/* 028D8FDC */ cpu->f[0] = cpu->f[0] - cpu->f[13];
|
|
/* 028D8FE0 */ cpu->f[0] = (uint32_t)(int32_t)cpu->f[0];
|
|
/* 028D8FE4 */ cpu->r[11] = cpu->r[1] + 0x00000008u;
|
|
/* 028D8FE8 */ cpu->r[10] = 0x10140000u;
|
|
/* 028D8FEC */ /* nop */
|
|
/* 028D8FF0 */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 028D8FF0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028D8FF4 */ cpu->r[11] = 0x43300000u;
|
|
/* 028D8FF8 */ _t18 = cpu->r[10] + 0xFFFFAFF8u;
|
|
/* 028D8FF8 */ cpu->f[13] = rbrew_read_f64(cpu->mem, _t18);
|
|
/* 028D8FFC */ cpu->r[0] = cpu->r[12] + 0x80000000u;
|
|
/* 028D9000 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028D9000 */ rbrew_write32(cpu->mem, _t19, cpu->r[11]);
|
|
/* 028D9004 */ cpu->r[10] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000008u, 0x0000001Fu);
|
|
/* 028D9008 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D9008 */ rbrew_write32(cpu->mem, _t20, cpu->r[10]);
|
|
/* 028D900C */ _t21 = cpu->r[1] + 0x00000008u;
|
|
/* 028D900C */ cpu->f[0] = rbrew_read_f64(cpu->mem, _t21);
|
|
/* 028D9010 */ cpu->r[10] = 0x10110000u;
|
|
/* 028D9014 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x0000000Cu, 0x00000014u, 0x0000001Bu);
|
|
/* 028D9018 */ cpu->f[13] = cpu->f[0] - cpu->f[13];
|
|
/* 028D901C */ cpu->r[10] = cpu->r[10] + 0x000053A0u;
|
|
/* 028D9020 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D9024 */ cpu->r[9] = cpu->r[10] + cpu->r[0];
|
|
/* 028D9028 */ _t22 = cpu->r[12] + 0xFFFFB000u;
|
|
/* 028D9028 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 028D902C */ cpu->f[12] = (double)(float)cpu->f[13];
|
|
/* 028D9030 */ _t23 = cpu->r[9] + 0x00000004u;
|
|
/* 028D9030 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 028D9034 */ cpu->f[0] = cpu->f[12] * cpu->f[0];
|
|
/* 028D9038 */ _t24 = cpu->r[9] + 0x00000000u;
|
|
/* 028D9038 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 028D903C */ cpu->f[13] = fma(cpu->f[13], cpu->f[0], cpu->f[12]);
|
|
/* 028D9040 */ _t25 = cpu->r[4] + 0x00000000u;
|
|
/* 028D9040 */ rbrew_write_f32(cpu->mem, _t25, cpu->f[13]);
|
|
/* 028D9044 */ _t26 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028D9044 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028D9048 */ _t27 = cpu->r[9] + 0x00000008u;
|
|
/* 028D9048 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 028D904C */ cpu->f[0] = fma(cpu->f[12], cpu->f[0], cpu->f[13]);
|
|
/* 028D9050 */ _t28 = cpu->r[3] + 0x00000000u;
|
|
/* 028D9050 */ rbrew_write_f32(cpu->mem, _t28, cpu->f[0]);
|
|
L_028D9054: ; // 0x28d9054
|
|
/* 028D9054 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028D9058 */ return;
|
|
}
|
|
|
|
// fn_028D905C @ 0x28d905c
|
|
void Gambit_fn_028D905C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112, _t113, _t114, _t115;
|
|
|
|
L_028D905C: ; // 0x28d905c
|
|
/* 028D905C */ _t0 = cpu->r[1] + 0xFFFFFF68u;
|
|
/* 028D905C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D905C */ cpu->r[1] = _t0;
|
|
/* 028D9060 */ /* nop */
|
|
/* 028D9064 */ _t1 = cpu->r[1] + 0x00000068u;
|
|
/* 028D9064 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[29]);
|
|
/* 028D9068 */ cpu->r[0] = cpu->lr;
|
|
/* 028D906C */ _t2 = cpu->r[1] + 0x00000078u;
|
|
/* 028D906C */ rbrew_write_f64(cpu->mem, _t2, cpu->f[30]);
|
|
/* 028D9070 */ /* nop */
|
|
/* 028D9074 */ cpu->r[27] = cpu->r[5];
|
|
/* 028D9078 */ _t3 = cpu->r[1] + 0x00000088u;
|
|
/* 028D9078 */ rbrew_write_f64(cpu->mem, _t3, cpu->f[31]);
|
|
/* 028D907C */ /* nop */
|
|
/* 028D9080 */ cpu->r[5] = 0x00000014u;
|
|
/* 028D9084 */ cpu->r[25] = cpu->r[3];
|
|
/* 028D9088 */ _t4 = cpu->r[1] + 0x00000070u;
|
|
/* 028D9088 */ rbrew_write_f32(cpu->mem, _t4, cpu->f[29]);
|
|
/* 028D908C */ cpu->r[3] = cpu->r[1] + 0x00000020u;
|
|
/* 028D9090 */ cpu->r[26] = cpu->r[4];
|
|
/* 028D9094 */ _t5 = cpu->r[1] + 0x00000080u;
|
|
/* 028D9094 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[30]);
|
|
/* 028D9098 */ /* nop */
|
|
/* 028D909C */ cpu->r[4] = 0x00000000u;
|
|
/* 028D90A0 */ _t6 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028D90A0 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028D90A4 */ cpu->f[29] = cpu->f[1];
|
|
/* 028D90A8 */ cpu->r[28] = cpu->r[6];
|
|
/* 028D90AC */ _t7 = cpu->r[1] + 0x00000090u;
|
|
/* 028D90AC */ rbrew_write_f32(cpu->mem, _t7, cpu->f[31]);
|
|
/* 028D90B0 */ rbrew_dispatch(cpu, 0x02d0a6f0u);
|
|
/* 028D90B4 */ _t8 = cpu->r[27] + 0x00000008u;
|
|
/* 028D90B4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028D90B8 */ _t9 = cpu->r[8] + 0x0000001Cu;
|
|
/* 028D90B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028D90BC */ cpu->ctr = cpu->r[0];
|
|
/* 028D90C0 */ cpu->r[3] = cpu->r[27];
|
|
/* 028D90C4 */ cpu->r[23] = 0x00000005u;
|
|
/* 028D90C8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D90CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D90D0 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D90D0 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D90D0 */ if (_t11) goto L_028D90D4; else goto L_028D90D8;
|
|
L_028D90D4: ; // 0x28d90d4
|
|
/* 028D90D4 */ cpu->r[23] = 0x00000004u;
|
|
L_028D90D8: ; // 0x28d90d8
|
|
/* 028D90D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 028D90DC */ cpu->r[31] = cpu->r[23];
|
|
/* 028D90E0 */ cpu->r[24] = 0x00000000u;
|
|
/* 028D90E4 */ _t12 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D90E4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D90E4 */ if (_t13) goto L_028D90EC; else goto L_028D90E8;
|
|
L_028D90E8: ; // 0x28d90e8
|
|
/* 028D90E8 */ cpu->r[31] = 0x00000001u;
|
|
L_028D90EC: ; // 0x28d90ec
|
|
/* 028D90EC */ cpu->r[6] = 0x10140000u;
|
|
/* 028D90F0 */ cpu->r[5] = 0x10140000u;
|
|
/* 028D90F4 */ _t14 = cpu->r[6] + 0xFFFFB004u;
|
|
/* 028D90F4 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028D90F8 */ cpu->r[30] = cpu->r[1] + 0x00000020u;
|
|
/* 028D90FC */ _t15 = cpu->r[5] + 0xFFFFB008u;
|
|
/* 028D90FC */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028D9100 */ cpu->r[29] = rbrew_rlwinm(cpu->r[24], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028D9104 */ cpu->r[20] = 0x00000000u;
|
|
/* 028D9108 */ cpu->r[10] = cpu->r[30] + cpu->r[29];
|
|
/* 028D910C */ cpu->r[21] = 0xFFFFFFFFu;
|
|
/* 028D9110 */ cpu->r[22] = cpu->r[23] + 0xFFFFFFFFu;
|
|
/* 028D9114 */ cpu->r[23] = cpu->r[10] + 0x00000004u;
|
|
L_028D9118: ; // 0x28d9118
|
|
/* 028D9118 */ cpu->r[4] = cpu->r[24];
|
|
/* 028D911C */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028D911C */ rbrew_write32(cpu->mem, _t16, cpu->r[20]);
|
|
/* 028D9120 */ cpu->r[5] = cpu->r[27];
|
|
/* 028D9124 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028D9128 */ _t17 = cpu->r[1] + 0x00000010u;
|
|
/* 028D9128 */ rbrew_write32(cpu->mem, _t17, cpu->r[21]);
|
|
/* 028D912C */ Gambit_fn_028D8E90(cpu);
|
|
/* 028D9130 */ _t18 = cpu->r[1] + 0x00000010u;
|
|
/* 028D9130 */ cpu->r[10] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D9134 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[26]);
|
|
/* 028D9138 */ _t19 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D9138 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028D9138 */ if (_t20) goto L_028D9294; else goto L_028D913C;
|
|
L_028D913C: ; // 0x28d913c
|
|
/* 028D913C */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 028D913C */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028D9140 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], cpu->r[0]);
|
|
/* 028D9144 */ _t22 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D9144 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028D9144 */ if (_t23) goto L_028D9294; else goto L_028D9148;
|
|
L_028D9148: ; // 0x28d9148
|
|
/* 028D9148 */ cpu->r[11] = cpu->r[0] - cpu->r[10];
|
|
/* 028D914C */ cpu->r[9] = 0x10140000u;
|
|
/* 028D9150 */ cpu->r[12] = cpu->r[11] + 0x00000001u;
|
|
/* 028D9154 */ _t24 = cpu->r[9] + 0xFFFFAFF8u;
|
|
/* 028D9154 */ cpu->f[0] = rbrew_read_f64(cpu->mem, _t24);
|
|
/* 028D9158 */ cpu->r[0] = 0x43300000u;
|
|
/* 028D915C */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D915C */ rbrew_write32(cpu->mem, _t25, cpu->r[12]);
|
|
/* 028D9160 */ cpu->r[8] = cpu->r[26] - cpu->r[10];
|
|
/* 028D9164 */ _t26 = cpu->r[1] + 0x00000008u;
|
|
/* 028D9164 */ rbrew_write32(cpu->mem, _t26, cpu->r[0]);
|
|
/* 028D9168 */ _t27 = cpu->r[1] + 0x00000008u;
|
|
/* 028D9168 */ cpu->f[13] = rbrew_read_f64(cpu->mem, _t27);
|
|
/* 028D916C */ _t28 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D916C */ rbrew_write32(cpu->mem, _t28, cpu->r[8]);
|
|
/* 028D9170 */ _t29 = cpu->r[1] + 0x00000008u;
|
|
/* 028D9170 */ cpu->f[10] = rbrew_read_f64(cpu->mem, _t29);
|
|
/* 028D9174 */ cpu->f[7] = cpu->f[13] - cpu->f[0];
|
|
/* 028D9178 */ _t30 = cpu->r[1] + 0x00000018u;
|
|
/* 028D9178 */ rbrew_write_f32(cpu->mem, _t30, cpu->f[31]);
|
|
/* 028D917C */ cpu->f[11] = cpu->f[10] - cpu->f[0];
|
|
/* 028D9180 */ cpu->f[9] = (double)(float)cpu->f[7];
|
|
/* 028D9184 */ cpu->f[8] = (double)(float)cpu->f[11];
|
|
/* 028D9188 */ cpu->f[1] = cpu->f[8] / cpu->f[9];
|
|
/* 028D918C */ _t31 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D918C */ rbrew_write_f32(cpu->mem, _t31, cpu->f[30]);
|
|
/* 028D9190 */ cpu->r[3] = cpu->r[1] + 0x00000018u;
|
|
/* 028D9194 */ cpu->r[4] = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D9198 */ Gambit_fn_028D8F48(cpu);
|
|
/* 028D919C */ _t32 = cpu->r[1] + 0x00000018u;
|
|
/* 028D919C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t32);
|
|
/* 028D91A0 */ _t33 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D91A0 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t33);
|
|
/* 028D91A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], cpu->r[22]);
|
|
/* 028D91A8 */ _t34 = cpu->r[30] + cpu->r[29];
|
|
/* 028D91A8 */ rbrew_write32(cpu->mem, _t34, cpu->r[12]);
|
|
/* 028D91AC */ _t35 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D91AC */ _t36 = _t35 & 0x00000001u;
|
|
/* 028D91AC */ if (_t36) goto L_028D91B0; else goto L_028D9274;
|
|
L_028D91B0: ; // 0x28d91b0
|
|
/* 028D91B0 */ _t37 = cpu->r[27] + 0x00000018u;
|
|
/* 028D91B0 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 028D91B4 */ _t38 = cpu->r[28] + 0x00000000u;
|
|
/* 028D91B4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028D91B8 */ cpu->f[2] = cpu->f[29] * cpu->f[13];
|
|
/* 028D91BC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], 0x00000001u);
|
|
/* 028D91C0 */ _t39 = cpu->r[23] + 0x00000000u;
|
|
/* 028D91C0 */ rbrew_write_f32(cpu->mem, _t39, cpu->f[8]);
|
|
/* 028D91C4 */ _t40 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D91C4 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028D91C4 */ if (_t41) goto L_028D92F0; else goto L_028D91C8;
|
|
L_028D91C8: ; // 0x28d91c8
|
|
/* 028D91C8 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D91C8 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028D91C8 */ if (_t43) goto L_028D91CC; else goto L_028D92C0;
|
|
L_028D91CC: ; // 0x28d91cc
|
|
/* 028D91CC */ _t44 = cpu->r[1] + 0x00000024u;
|
|
/* 028D91CC */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t44);
|
|
/* 028D91D0 */ _t45 = cpu->r[1] + 0x00000030u;
|
|
/* 028D91D0 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t45);
|
|
/* 028D91D4 */ cpu->f[6] = cpu->f[12] * cpu->f[2];
|
|
/* 028D91D8 */ _t46 = cpu->r[1] + 0x00000028u;
|
|
/* 028D91D8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t46);
|
|
/* 028D91DC */ cpu->f[3] = cpu->f[8] * cpu->f[29];
|
|
/* 028D91E0 */ _t47 = cpu->r[1] + 0x00000020u;
|
|
/* 028D91E0 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t47);
|
|
/* 028D91E4 */ cpu->f[8] = cpu->f[13] * cpu->f[2];
|
|
/* 028D91E8 */ _t48 = cpu->r[25] + 0x00000010u;
|
|
/* 028D91E8 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t48);
|
|
/* 028D91EC */ cpu->f[7] = cpu->f[9] * cpu->f[29];
|
|
/* 028D91F0 */ _t49 = cpu->r[25] + 0x00000004u;
|
|
/* 028D91F0 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t49);
|
|
/* 028D91F4 */ cpu->f[9] = cpu->f[3] - cpu->f[4];
|
|
/* 028D91F8 */ cpu->f[11] = cpu->f[7] - cpu->f[10];
|
|
/* 028D91FC */ /* nop */
|
|
/* 028D9200 */ _t50 = cpu->r[25] + 0x0000000Cu;
|
|
/* 028D9200 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t50);
|
|
/* 028D9204 */ /* nop */
|
|
/* 028D9208 */ _t51 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D9208 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t51);
|
|
/* 028D920C */ cpu->f[12] = cpu->f[6] - cpu->f[13];
|
|
/* 028D9210 */ _t52 = cpu->r[25] + 0x00000008u;
|
|
/* 028D9210 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 028D9214 */ cpu->f[9] = cpu->f[10] * cpu->f[29];
|
|
/* 028D9218 */ _t53 = cpu->r[25] + 0x00000000u;
|
|
/* 028D9218 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t53);
|
|
/* 028D921C */ cpu->f[7] = cpu->f[8] - cpu->f[0];
|
|
/* 028D9220 */ _t54 = cpu->r[25] + 0x00000010u;
|
|
/* 028D9220 */ rbrew_write_f32(cpu->mem, _t54, cpu->f[4]);
|
|
/* 028D9224 */ /* nop */
|
|
/* 028D9228 */ cpu->f[12] = cpu->f[9] - cpu->f[11];
|
|
/* 028D922C */ _t55 = cpu->r[25] + 0x00000004u;
|
|
/* 028D922C */ rbrew_write_f32(cpu->mem, _t55, cpu->f[5]);
|
|
/* 028D9230 */ /* nop */
|
|
/* 028D9234 */ _t56 = cpu->r[25] + 0x0000000Cu;
|
|
/* 028D9234 */ rbrew_write_f32(cpu->mem, _t56, cpu->f[13]);
|
|
/* 028D9238 */ /* nop */
|
|
/* 028D923C */ _t57 = cpu->r[25] + 0x00000008u;
|
|
/* 028D923C */ rbrew_write_f32(cpu->mem, _t57, cpu->f[8]);
|
|
/* 028D9240 */ _t58 = cpu->r[25] + 0x00000000u;
|
|
/* 028D9240 */ rbrew_write_f32(cpu->mem, _t58, cpu->f[13]);
|
|
/* 028D9244 */ /* nop */
|
|
/* 028D9248 */ _t59 = cpu->r[1] + 0x00000070u;
|
|
/* 028D9248 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t59);
|
|
/* 028D924C */ _t60 = cpu->r[1] + 0x00000080u;
|
|
/* 028D924C */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t60);
|
|
/* 028D9250 */ _t61 = cpu->r[1] + 0x00000068u;
|
|
/* 028D9250 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t61);
|
|
/* 028D9254 */ _t62 = cpu->r[1] + 0x00000090u;
|
|
/* 028D9254 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t62);
|
|
/* 028D9258 */ _t63 = cpu->r[1] + 0x00000078u;
|
|
/* 028D9258 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t63);
|
|
/* 028D925C */ _t64 = cpu->r[1] + 0x00000088u;
|
|
/* 028D925C */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t64);
|
|
/* 028D9260 */ _t65 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9260 */ _t66 = _t65 & 0x00000001u;
|
|
/* 028D9260 */ if (_t66) goto L_028D9264; // else: addr-0 trap, fall-through
|
|
L_028D9264: ; // 0x28d9264
|
|
/* 028D9264 */ _t67 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028D9264 */ cpu->r[0] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028D9268 */ cpu->lr = cpu->r[0];
|
|
/* 028D926C */ cpu->r[1] = cpu->r[1] + 0x00000098u;
|
|
/* 028D9270 */ return;
|
|
L_028D9274: ; // 0x28d9274
|
|
/* 028D9274 */ _t68 = cpu->r[27] + 0x00000018u;
|
|
/* 028D9274 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t68);
|
|
/* 028D9278 */ _t69 = cpu->r[28] + 0x00000000u;
|
|
/* 028D9278 */ cpu->r[7] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028D927C */ cpu->f[2] = cpu->f[29] * cpu->f[13];
|
|
/* 028D9280 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], 0x00000001u);
|
|
/* 028D9284 */ _t70 = cpu->r[30] + 0x00000000u;
|
|
/* 028D9284 */ rbrew_write_f32(cpu->mem, _t70, cpu->f[8]);
|
|
/* 028D9288 */ _t71 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9288 */ _t72 = _t71 & 0x00000001u;
|
|
/* 028D9288 */ if (_t72) goto L_028D92F0; else goto L_028D928C;
|
|
L_028D928C: ; // 0x28d928c
|
|
/* 028D928C */ _t73 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D928C */ _t74 = _t73 & 0x00000001u;
|
|
/* 028D928C */ if (_t74) goto L_028D91CC; else goto L_028D9290;
|
|
L_028D9290: ; // 0x28d9290
|
|
/* 028D9290 */ goto L_028D92C0;
|
|
L_028D9294: ; // 0x28d9294
|
|
/* 028D9294 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 028D9298 */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028D9298 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D929C */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
/* 028D92A0 */ cpu->r[23] = cpu->r[23] + 0x00000004u;
|
|
/* 028D92A4 */ _t75 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D92A4 */ _t76 = _t75 & 0x00000001u;
|
|
/* 028D92A4 */ if (_t76) goto L_028D92A8; else goto L_028D9118;
|
|
L_028D92A8: ; // 0x28d92a8
|
|
/* 028D92A8 */ _t77 = cpu->r[27] + 0x00000018u;
|
|
/* 028D92A8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t77);
|
|
/* 028D92AC */ _t78 = cpu->r[28] + 0x00000000u;
|
|
/* 028D92AC */ cpu->r[7] = rbrew_read32(cpu->mem, _t78);
|
|
/* 028D92B0 */ cpu->f[2] = cpu->f[29] * cpu->f[13];
|
|
/* 028D92B4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], 0x00000001u);
|
|
/* 028D92B8 */ _t79 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D92B8 */ _t80 = _t79 & 0x00000001u;
|
|
/* 028D92B8 */ if (_t80) goto L_028D92F0; else goto L_028D92BC;
|
|
L_028D92BC: ; // 0x28d92bc
|
|
/* 028D92BC */ _t81 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D92BC */ _t82 = _t81 & 0x00000001u;
|
|
/* 028D92BC */ if (_t82) goto L_028D91CC; else goto L_028D92C0;
|
|
L_028D92C0: ; // 0x28d92c0
|
|
/* 028D92C0 */ /* nop */
|
|
/* 028D92C4 */ _t83 = cpu->r[1] + 0x00000070u;
|
|
/* 028D92C4 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t83);
|
|
/* 028D92C8 */ _t84 = cpu->r[1] + 0x00000080u;
|
|
/* 028D92C8 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t84);
|
|
/* 028D92CC */ _t85 = cpu->r[1] + 0x00000068u;
|
|
/* 028D92CC */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t85);
|
|
/* 028D92D0 */ _t86 = cpu->r[1] + 0x00000090u;
|
|
/* 028D92D0 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t86);
|
|
/* 028D92D4 */ _t87 = cpu->r[1] + 0x00000078u;
|
|
/* 028D92D4 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t87);
|
|
/* 028D92D8 */ _t88 = cpu->r[1] + 0x00000088u;
|
|
/* 028D92D8 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t88);
|
|
/* 028D92DC */ _t89 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D92DC */ _t90 = _t89 & 0x00000001u;
|
|
/* 028D92DC */ if (_t90) goto L_028D92E0; // else: addr-0 trap, fall-through
|
|
L_028D92E0: ; // 0x28d92e0
|
|
/* 028D92E0 */ _t91 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028D92E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t91);
|
|
/* 028D92E4 */ cpu->lr = cpu->r[0];
|
|
/* 028D92E8 */ cpu->r[1] = cpu->r[1] + 0x00000098u;
|
|
/* 028D92EC */ return;
|
|
L_028D92F0: ; // 0x28d92f0
|
|
/* 028D92F0 */ _t92 = cpu->r[25] + 0x00000010u;
|
|
/* 028D92F0 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t92);
|
|
/* 028D92F4 */ _t93 = cpu->r[1] + 0x00000030u;
|
|
/* 028D92F4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t93);
|
|
/* 028D92F8 */ _t94 = cpu->r[25] + 0x00000008u;
|
|
/* 028D92F8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t94);
|
|
/* 028D92FC */ cpu->f[7] = fma(cpu->f[0], cpu->f[29], cpu->f[7]);
|
|
/* 028D9300 */ _t95 = cpu->r[25] + 0x00000004u;
|
|
/* 028D9300 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t95);
|
|
/* 028D9304 */ _t96 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D9304 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t96);
|
|
/* 028D9308 */ _t97 = cpu->r[25] + 0x00000010u;
|
|
/* 028D9308 */ rbrew_write_f32(cpu->mem, _t97, cpu->f[7]);
|
|
/* 028D930C */ _t98 = cpu->r[1] + 0x00000020u;
|
|
/* 028D930C */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t98);
|
|
/* 028D9310 */ _t99 = cpu->r[1] + 0x00000024u;
|
|
/* 028D9310 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t99);
|
|
/* 028D9314 */ _t100 = cpu->r[25] + 0x0000000Cu;
|
|
/* 028D9314 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t100);
|
|
/* 028D9318 */ cpu->f[9] = fma(cpu->f[8], cpu->f[29], cpu->f[9]);
|
|
/* 028D931C */ _t101 = cpu->r[1] + 0x00000028u;
|
|
/* 028D931C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t101);
|
|
/* 028D9320 */ cpu->f[11] = fma(cpu->f[10], cpu->f[2], cpu->f[11]);
|
|
/* 028D9324 */ _t102 = cpu->r[25] + 0x00000000u;
|
|
/* 028D9324 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t102);
|
|
/* 028D9328 */ cpu->f[13] = fma(cpu->f[12], cpu->f[2], cpu->f[13]);
|
|
/* 028D932C */ _t103 = cpu->r[25] + 0x00000004u;
|
|
/* 028D932C */ rbrew_write_f32(cpu->mem, _t103, cpu->f[9]);
|
|
/* 028D9330 */ cpu->f[7] = fma(cpu->f[0], cpu->f[29], cpu->f[7]);
|
|
/* 028D9334 */ _t104 = cpu->r[25] + 0x0000000Cu;
|
|
/* 028D9334 */ rbrew_write_f32(cpu->mem, _t104, cpu->f[11]);
|
|
/* 028D9338 */ _t105 = cpu->r[25] + 0x00000008u;
|
|
/* 028D9338 */ rbrew_write_f32(cpu->mem, _t105, cpu->f[13]);
|
|
/* 028D933C */ _t106 = cpu->r[25] + 0x00000000u;
|
|
/* 028D933C */ rbrew_write_f32(cpu->mem, _t106, cpu->f[7]);
|
|
/* 028D9340 */ /* nop */
|
|
/* 028D9344 */ _t107 = cpu->r[1] + 0x00000070u;
|
|
/* 028D9344 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t107);
|
|
/* 028D9348 */ _t108 = cpu->r[1] + 0x00000080u;
|
|
/* 028D9348 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t108);
|
|
/* 028D934C */ _t109 = cpu->r[1] + 0x00000068u;
|
|
/* 028D934C */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t109);
|
|
/* 028D9350 */ _t110 = cpu->r[1] + 0x00000090u;
|
|
/* 028D9350 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t110);
|
|
/* 028D9354 */ _t111 = cpu->r[1] + 0x00000078u;
|
|
/* 028D9354 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t111);
|
|
/* 028D9358 */ _t112 = cpu->r[1] + 0x00000088u;
|
|
/* 028D9358 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t112);
|
|
/* 028D935C */ _t113 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D935C */ _t114 = _t113 & 0x00000001u;
|
|
/* 028D935C */ if (_t114) goto L_028D9360; // else: addr-0 trap, fall-through
|
|
L_028D9360: ; // 0x28d9360
|
|
/* 028D9360 */ _t115 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028D9360 */ cpu->r[0] = rbrew_read32(cpu->mem, _t115);
|
|
/* 028D9364 */ cpu->lr = cpu->r[0];
|
|
/* 028D9368 */ cpu->r[1] = cpu->r[1] + 0x00000098u;
|
|
/* 028D936C */ return;
|
|
}
|
|
|
|
// fn_028D9370 @ 0x28d9370
|
|
void Gambit_fn_028D9370(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028D9370: ; // 0x28d9370
|
|
/* 028D9370 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028D9374 */ _t0 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D9374 */ _t1 = _t0 & 0x00000001u;
|
|
/* 028D9374 */ if (_t1) goto L_028D9378; else goto L_028D9390;
|
|
L_028D9378: ; // 0x28d9378
|
|
/* 028D9378 */ cpu->r[0] = 0x7FFF0000u;
|
|
/* 028D937C */ cpu->r[11] = 0x00000000u;
|
|
/* 028D9380 */ cpu->r[0] = cpu->r[0] | 0x0000FFFFu;
|
|
/* 028D9384 */ _t2 = cpu->r[3] + 0x00000000u;
|
|
/* 028D9384 */ rbrew_write32(cpu->mem, _t2, cpu->r[11]);
|
|
/* 028D9388 */ _t3 = cpu->r[3] + 0x00000004u;
|
|
/* 028D9388 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D938C */ return;
|
|
L_028D9390: ; // 0x28d9390
|
|
/* 028D9390 */ cpu->r[12] = 0x80000000u;
|
|
/* 028D9394 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028D9398 */ _t4 = cpu->r[3] + 0x00000000u;
|
|
/* 028D9398 */ rbrew_write32(cpu->mem, _t4, cpu->r[12]);
|
|
/* 028D939C */ _t5 = cpu->r[3] + 0x00000004u;
|
|
/* 028D939C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028D93A0 */ return;
|
|
}
|
|
|
|
// fn_028D93A4 @ 0x28d93a4
|
|
void Gambit_fn_028D93A4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80;
|
|
|
|
L_028D93A4: ; // 0x28d93a4
|
|
/* 028D93A4 */ cpu->r[0] = cpu->lr;
|
|
/* 028D93A8 */ _t0 = cpu->r[1] + 0xFFFFFFB0u;
|
|
/* 028D93A8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D93A8 */ cpu->r[1] = _t0;
|
|
/* 028D93AC */ _t1 = cpu->r[1] + 0x00000040u;
|
|
/* 028D93AC */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028D93B0 */ /* nop */
|
|
/* 028D93B4 */ _t2 = cpu->r[1] + 0x00000048u;
|
|
/* 028D93B4 */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028D93B8 */ _t3 = cpu->r[1] + 0x00000054u;
|
|
/* 028D93B8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D93BC */ _t4 = cpu->r[1] + 0x00000034u;
|
|
/* 028D93BC */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028D93C0 */ _t5 = cpu->r[1] + 0x00000038u;
|
|
/* 028D93C0 */ rbrew_write32(cpu->mem, _t5, cpu->r[30]);
|
|
/* 028D93C4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D93C8 */ cpu->r[3] = cpu->r[1] + 0x00000020u;
|
|
/* 028D93CC */ _t6 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D93CC */ rbrew_write32(cpu->mem, _t6, cpu->r[31]);
|
|
/* 028D93D0 */ cpu->r[31] = cpu->r[5];
|
|
/* 028D93D4 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D93D8 */ cpu->r[5] = 0x00000014u;
|
|
/* 028D93DC */ cpu->r[4] = 0x00000000u;
|
|
/* 028D93E0 */ cpu->f[31] = cpu->f[1];
|
|
/* 028D93E4 */ rbrew_dispatch(cpu, 0x02d0a6f0u);
|
|
/* 028D93E8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D93EC */ cpu->r[4] = 0x10140000u;
|
|
/* 028D93F0 */ _t7 = cpu->r[11] + 0xFFFFB004u;
|
|
/* 028D93F0 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028D93F4 */ _t8 = cpu->r[4] + 0xFFFFB008u;
|
|
/* 028D93F4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028D93F8 */ cpu->r[4] = 0x00000000u;
|
|
/* 028D93FC */ goto L_028D9408;
|
|
L_028D9400: ; // 0x28d9400
|
|
/* 028D9400 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028D9404 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D9404 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D9404 */ if (_t10) goto L_028D9408; else goto L_028D9424;
|
|
L_028D9408: ; // 0x28d9408
|
|
/* 028D9408 */ cpu->f[8] = cpu->f[13];
|
|
/* 028D940C */ cpu->r[6] = cpu->r[1] + 0x00000020u;
|
|
/* 028D9410 */ cpu->r[8] = 0x00000000u;
|
|
/* 028D9414 */ cpu->f[9] = cpu->f[0];
|
|
/* 028D9418 */ cpu->r[10] = 0xFFFFFFFFu;
|
|
/* 028D941C */ cpu->r[9] = cpu->r[8];
|
|
/* 028D9420 */ goto L_028D9428;
|
|
L_028D9424: ; // 0x28d9424
|
|
/* 028D9424 */ cpu->r[8] = 0x00000003u;
|
|
L_028D9428: ; // 0x28d9428
|
|
/* 028D9428 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028D942C */ cpu->r[7] = 0x00000000u;
|
|
/* 028D9430 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D9430 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D9430 */ if (_t12) goto L_028D9434; else goto L_028D9438;
|
|
L_028D9434: ; // 0x28d9434
|
|
/* 028D9434 */ cpu->r[7] = 0x00000003u;
|
|
L_028D9438: ; // 0x28d9438
|
|
/* 028D9438 */ _t13 = cpu->r[1] + 0x00000010u;
|
|
/* 028D9438 */ rbrew_write32(cpu->mem, _t13, cpu->r[10]);
|
|
/* 028D943C */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028D9440 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028D9440 */ rbrew_write32(cpu->mem, _t14, cpu->r[9]);
|
|
/* 028D9444 */ Gambit_fn_028D9370(cpu);
|
|
/* 028D9448 */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 028D9448 */ cpu->r[5] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D944C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[29]);
|
|
/* 028D9450 */ _t16 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D9450 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D9450 */ if (_t17) goto L_028D9534; else goto L_028D9454;
|
|
L_028D9454: ; // 0x28d9454
|
|
/* 028D9454 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 028D9454 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D9458 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 028D945C */ _t19 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D945C */ _t20 = _t19 & 0x00000001u;
|
|
/* 028D945C */ if (_t20) goto L_028D9534; else goto L_028D9460;
|
|
L_028D9460: ; // 0x28d9460
|
|
/* 028D9460 */ cpu->r[11] = cpu->r[0] - cpu->r[5];
|
|
/* 028D9464 */ cpu->r[9] = 0x10140000u;
|
|
/* 028D9468 */ cpu->r[12] = cpu->r[11] + 0x00000001u;
|
|
/* 028D946C */ _t21 = cpu->r[9] + 0xFFFFAFF8u;
|
|
/* 028D946C */ cpu->f[12] = rbrew_read_f64(cpu->mem, _t21);
|
|
/* 028D9470 */ cpu->r[0] = 0x43300000u;
|
|
/* 028D9474 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D9474 */ rbrew_write32(cpu->mem, _t22, cpu->r[12]);
|
|
/* 028D9478 */ cpu->r[4] = cpu->r[29] - cpu->r[5];
|
|
/* 028D947C */ _t23 = cpu->r[1] + 0x00000008u;
|
|
/* 028D947C */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 028D9480 */ _t24 = cpu->r[1] + 0x00000008u;
|
|
/* 028D9480 */ cpu->f[0] = rbrew_read_f64(cpu->mem, _t24);
|
|
/* 028D9484 */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D9484 */ rbrew_write32(cpu->mem, _t25, cpu->r[4]);
|
|
/* 028D9488 */ _t26 = cpu->r[1] + 0x00000008u;
|
|
/* 028D9488 */ cpu->f[10] = rbrew_read_f64(cpu->mem, _t26);
|
|
/* 028D948C */ cpu->f[7] = cpu->f[0] - cpu->f[12];
|
|
/* 028D9490 */ _t27 = cpu->r[1] + 0x00000018u;
|
|
/* 028D9490 */ rbrew_write_f32(cpu->mem, _t27, cpu->f[9]);
|
|
/* 028D9494 */ cpu->f[11] = cpu->f[10] - cpu->f[12];
|
|
/* 028D9498 */ cpu->f[12] = (double)(float)cpu->f[7];
|
|
/* 028D949C */ cpu->f[6] = (double)(float)cpu->f[11];
|
|
/* 028D94A0 */ cpu->f[1] = cpu->f[6] / cpu->f[12];
|
|
/* 028D94A4 */ _t28 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D94A4 */ rbrew_write_f32(cpu->mem, _t28, cpu->f[8]);
|
|
/* 028D94A8 */ cpu->r[4] = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D94AC */ cpu->r[3] = cpu->r[1] + 0x00000018u;
|
|
/* 028D94B0 */ Gambit_fn_028D8F48(cpu);
|
|
/* 028D94B4 */ _t29 = cpu->r[1] + 0x00000018u;
|
|
/* 028D94B4 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t29);
|
|
/* 028D94B8 */ cpu->r[10] = rbrew_rlwinm(cpu->r[8], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028D94BC */ _t30 = cpu->r[31] + 0x00000000u;
|
|
/* 028D94BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028D94C0 */ _t31 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D94C0 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 028D94C4 */ cpu->r[12] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028D94C8 */ _t32 = cpu->r[10] + cpu->r[6];
|
|
/* 028D94C8 */ rbrew_write32(cpu->mem, _t32, cpu->r[9]);
|
|
/* 028D94CC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000001u);
|
|
/* 028D94D0 */ _t33 = cpu->r[12] + cpu->r[6];
|
|
/* 028D94D0 */ rbrew_write32(cpu->mem, _t33, cpu->r[10]);
|
|
/* 028D94D4 */ _t34 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D94D4 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028D94D4 */ if (_t35) goto L_028D9578; else goto L_028D94D8;
|
|
L_028D94D8: ; // 0x28d94d8
|
|
/* 028D94D8 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D94D8 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028D94D8 */ if (_t37) goto L_028D94DC; else goto L_028D9550;
|
|
L_028D94DC: ; // 0x28d94dc
|
|
/* 028D94DC */ _t38 = cpu->r[1] + 0x00000020u;
|
|
/* 028D94DC */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t38);
|
|
/* 028D94E0 */ _t39 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D94E0 */ cpu->f[6] = rbrew_read_f32(cpu->mem, _t39);
|
|
/* 028D94E4 */ cpu->f[7] = cpu->f[8] * cpu->f[31];
|
|
/* 028D94E8 */ _t40 = cpu->r[30] + 0x00000004u;
|
|
/* 028D94E8 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t40);
|
|
/* 028D94EC */ cpu->f[12] = cpu->f[6] * cpu->f[31];
|
|
/* 028D94F0 */ _t41 = cpu->r[30] + 0x00000000u;
|
|
/* 028D94F0 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t41);
|
|
/* 028D94F4 */ cpu->f[10] = cpu->f[7] - cpu->f[9];
|
|
/* 028D94F8 */ cpu->f[0] = cpu->f[12] - cpu->f[13];
|
|
/* 028D94FC */ /* nop */
|
|
/* 028D9500 */ /* nop */
|
|
/* 028D9504 */ _t42 = cpu->r[30] + 0x00000004u;
|
|
/* 028D9504 */ rbrew_write_f32(cpu->mem, _t42, cpu->f[11]);
|
|
/* 028D9508 */ _t43 = cpu->r[30] + 0x00000000u;
|
|
/* 028D9508 */ rbrew_write_f32(cpu->mem, _t43, cpu->f[7]);
|
|
/* 028D950C */ _t44 = cpu->r[1] + 0x00000034u;
|
|
/* 028D950C */ cpu->r[29] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028D9510 */ _t45 = cpu->r[1] + 0x00000048u;
|
|
/* 028D9510 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t45);
|
|
/* 028D9514 */ _t46 = cpu->r[1] + 0x00000038u;
|
|
/* 028D9514 */ cpu->r[30] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028D9518 */ _t47 = cpu->r[1] + 0x00000040u;
|
|
/* 028D9518 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t47);
|
|
/* 028D951C */ _t48 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D951C */ cpu->r[31] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028D9520 */ _t49 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9520 */ _t50 = _t49 & 0x00000001u;
|
|
/* 028D9520 */ if (_t50) goto L_028D9524; // else: addr-0 trap, fall-through
|
|
L_028D9524: ; // 0x28d9524
|
|
/* 028D9524 */ _t51 = cpu->r[1] + 0x00000054u;
|
|
/* 028D9524 */ cpu->r[0] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028D9528 */ cpu->lr = cpu->r[0];
|
|
/* 028D952C */ cpu->r[1] = cpu->r[1] + 0x00000050u;
|
|
/* 028D9530 */ return;
|
|
L_028D9534: ; // 0x28d9534
|
|
/* 028D9534 */ cpu->r[4] = cpu->r[4] + 0x00000001u;
|
|
/* 028D9538 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000002u);
|
|
/* 028D953C */ _t52 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D953C */ _t53 = _t52 & 0x00000001u;
|
|
/* 028D953C */ if (_t53) goto L_028D9400; else goto L_028D9540;
|
|
L_028D9540: ; // 0x28d9540
|
|
/* 028D9540 */ _t54 = cpu->r[31] + 0x00000000u;
|
|
/* 028D9540 */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028D9544 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000001u);
|
|
/* 028D9548 */ _t55 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9548 */ _t56 = _t55 & 0x00000001u;
|
|
/* 028D9548 */ if (_t56) goto L_028D9578; else goto L_028D954C;
|
|
L_028D954C: ; // 0x28d954c
|
|
/* 028D954C */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D954C */ _t58 = _t57 & 0x00000001u;
|
|
/* 028D954C */ if (_t58) goto L_028D94DC; else goto L_028D9550;
|
|
L_028D9550: ; // 0x28d9550
|
|
/* 028D9550 */ _t59 = cpu->r[1] + 0x00000034u;
|
|
/* 028D9550 */ cpu->r[29] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028D9554 */ _t60 = cpu->r[1] + 0x00000048u;
|
|
/* 028D9554 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t60);
|
|
/* 028D9558 */ _t61 = cpu->r[1] + 0x00000038u;
|
|
/* 028D9558 */ cpu->r[30] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028D955C */ _t62 = cpu->r[1] + 0x00000040u;
|
|
/* 028D955C */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t62);
|
|
/* 028D9560 */ _t63 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D9560 */ cpu->r[31] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028D9564 */ _t64 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9564 */ _t65 = _t64 & 0x00000001u;
|
|
/* 028D9564 */ if (_t65) goto L_028D9568; // else: addr-0 trap, fall-through
|
|
L_028D9568: ; // 0x28d9568
|
|
/* 028D9568 */ _t66 = cpu->r[1] + 0x00000054u;
|
|
/* 028D9568 */ cpu->r[0] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028D956C */ cpu->lr = cpu->r[0];
|
|
/* 028D9570 */ cpu->r[1] = cpu->r[1] + 0x00000050u;
|
|
/* 028D9574 */ return;
|
|
L_028D9578: ; // 0x28d9578
|
|
/* 028D9578 */ _t67 = cpu->r[1] + 0x00000020u;
|
|
/* 028D9578 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t67);
|
|
/* 028D957C */ _t68 = cpu->r[30] + 0x00000004u;
|
|
/* 028D957C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t68);
|
|
/* 028D9580 */ _t69 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D9580 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t69);
|
|
/* 028D9584 */ cpu->f[13] = fma(cpu->f[11], cpu->f[31], cpu->f[13]);
|
|
/* 028D9588 */ _t70 = cpu->r[30] + 0x00000000u;
|
|
/* 028D9588 */ cpu->f[6] = rbrew_read_f32(cpu->mem, _t70);
|
|
/* 028D958C */ cpu->f[6] = fma(cpu->f[0], cpu->f[31], cpu->f[6]);
|
|
/* 028D9590 */ _t71 = cpu->r[30] + 0x00000004u;
|
|
/* 028D9590 */ rbrew_write_f32(cpu->mem, _t71, cpu->f[13]);
|
|
/* 028D9594 */ _t72 = cpu->r[30] + 0x00000000u;
|
|
/* 028D9594 */ rbrew_write_f32(cpu->mem, _t72, cpu->f[6]);
|
|
/* 028D9598 */ _t73 = cpu->r[1] + 0x00000034u;
|
|
/* 028D9598 */ cpu->r[29] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028D959C */ _t74 = cpu->r[1] + 0x00000048u;
|
|
/* 028D959C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t74);
|
|
/* 028D95A0 */ _t75 = cpu->r[1] + 0x00000038u;
|
|
/* 028D95A0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028D95A4 */ _t76 = cpu->r[1] + 0x00000040u;
|
|
/* 028D95A4 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t76);
|
|
/* 028D95A8 */ _t77 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D95A8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028D95AC */ _t78 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D95AC */ _t79 = _t78 & 0x00000001u;
|
|
/* 028D95AC */ if (_t79) goto L_028D95B0; // else: addr-0 trap, fall-through
|
|
L_028D95B0: ; // 0x28d95b0
|
|
/* 028D95B0 */ _t80 = cpu->r[1] + 0x00000054u;
|
|
/* 028D95B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028D95B4 */ cpu->lr = cpu->r[0];
|
|
/* 028D95B8 */ cpu->r[1] = cpu->r[1] + 0x00000050u;
|
|
/* 028D95BC */ return;
|
|
}
|
|
|
|
// fn_028D93A8 @ 0x28d93a8
|
|
void Gambit_fn_028D93A8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80;
|
|
|
|
L_028D93A8: ; // 0x28d93a8
|
|
/* 028D93A8 */ _t0 = cpu->r[1] + 0xFFFFFFB0u;
|
|
/* 028D93A8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D93A8 */ cpu->r[1] = _t0;
|
|
/* 028D93AC */ _t1 = cpu->r[1] + 0x00000040u;
|
|
/* 028D93AC */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028D93B0 */ /* nop */
|
|
/* 028D93B4 */ _t2 = cpu->r[1] + 0x00000048u;
|
|
/* 028D93B4 */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028D93B8 */ _t3 = cpu->r[1] + 0x00000054u;
|
|
/* 028D93B8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028D93BC */ _t4 = cpu->r[1] + 0x00000034u;
|
|
/* 028D93BC */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028D93C0 */ _t5 = cpu->r[1] + 0x00000038u;
|
|
/* 028D93C0 */ rbrew_write32(cpu->mem, _t5, cpu->r[30]);
|
|
/* 028D93C4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028D93C8 */ cpu->r[3] = cpu->r[1] + 0x00000020u;
|
|
/* 028D93CC */ _t6 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D93CC */ rbrew_write32(cpu->mem, _t6, cpu->r[31]);
|
|
/* 028D93D0 */ cpu->r[31] = cpu->r[5];
|
|
/* 028D93D4 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D93D8 */ cpu->r[5] = 0x00000014u;
|
|
/* 028D93DC */ cpu->r[4] = 0x00000000u;
|
|
/* 028D93E0 */ cpu->f[31] = cpu->f[1];
|
|
/* 028D93E4 */ rbrew_dispatch(cpu, 0x02d0a6f0u);
|
|
/* 028D93E8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D93EC */ cpu->r[4] = 0x10140000u;
|
|
/* 028D93F0 */ _t7 = cpu->r[11] + 0xFFFFB004u;
|
|
/* 028D93F0 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028D93F4 */ _t8 = cpu->r[4] + 0xFFFFB008u;
|
|
/* 028D93F4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028D93F8 */ cpu->r[4] = 0x00000000u;
|
|
/* 028D93FC */ goto L_028D9408;
|
|
L_028D9400: ; // 0x28d9400
|
|
/* 028D9400 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028D9404 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D9404 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D9404 */ if (_t10) goto L_028D9408; else goto L_028D9424;
|
|
L_028D9408: ; // 0x28d9408
|
|
/* 028D9408 */ cpu->f[8] = cpu->f[13];
|
|
/* 028D940C */ cpu->r[6] = cpu->r[1] + 0x00000020u;
|
|
/* 028D9410 */ cpu->r[8] = 0x00000000u;
|
|
/* 028D9414 */ cpu->f[9] = cpu->f[0];
|
|
/* 028D9418 */ cpu->r[10] = 0xFFFFFFFFu;
|
|
/* 028D941C */ cpu->r[9] = cpu->r[8];
|
|
/* 028D9420 */ goto L_028D9428;
|
|
L_028D9424: ; // 0x28d9424
|
|
/* 028D9424 */ cpu->r[8] = 0x00000003u;
|
|
L_028D9428: ; // 0x28d9428
|
|
/* 028D9428 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028D942C */ cpu->r[7] = 0x00000000u;
|
|
/* 028D9430 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D9430 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028D9430 */ if (_t12) goto L_028D9434; else goto L_028D9438;
|
|
L_028D9434: ; // 0x28d9434
|
|
/* 028D9434 */ cpu->r[7] = 0x00000003u;
|
|
L_028D9438: ; // 0x28d9438
|
|
/* 028D9438 */ _t13 = cpu->r[1] + 0x00000010u;
|
|
/* 028D9438 */ rbrew_write32(cpu->mem, _t13, cpu->r[10]);
|
|
/* 028D943C */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028D9440 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028D9440 */ rbrew_write32(cpu->mem, _t14, cpu->r[9]);
|
|
/* 028D9444 */ Gambit_fn_028D9370(cpu);
|
|
/* 028D9448 */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 028D9448 */ cpu->r[5] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D944C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[29]);
|
|
/* 028D9450 */ _t16 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D9450 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028D9450 */ if (_t17) goto L_028D9534; else goto L_028D9454;
|
|
L_028D9454: ; // 0x28d9454
|
|
/* 028D9454 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 028D9454 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028D9458 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 028D945C */ _t19 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D945C */ _t20 = _t19 & 0x00000001u;
|
|
/* 028D945C */ if (_t20) goto L_028D9534; else goto L_028D9460;
|
|
L_028D9460: ; // 0x28d9460
|
|
/* 028D9460 */ cpu->r[11] = cpu->r[0] - cpu->r[5];
|
|
/* 028D9464 */ cpu->r[9] = 0x10140000u;
|
|
/* 028D9468 */ cpu->r[12] = cpu->r[11] + 0x00000001u;
|
|
/* 028D946C */ _t21 = cpu->r[9] + 0xFFFFAFF8u;
|
|
/* 028D946C */ cpu->f[12] = rbrew_read_f64(cpu->mem, _t21);
|
|
/* 028D9470 */ cpu->r[0] = 0x43300000u;
|
|
/* 028D9474 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D9474 */ rbrew_write32(cpu->mem, _t22, cpu->r[12]);
|
|
/* 028D9478 */ cpu->r[4] = cpu->r[29] - cpu->r[5];
|
|
/* 028D947C */ _t23 = cpu->r[1] + 0x00000008u;
|
|
/* 028D947C */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 028D9480 */ _t24 = cpu->r[1] + 0x00000008u;
|
|
/* 028D9480 */ cpu->f[0] = rbrew_read_f64(cpu->mem, _t24);
|
|
/* 028D9484 */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D9484 */ rbrew_write32(cpu->mem, _t25, cpu->r[4]);
|
|
/* 028D9488 */ _t26 = cpu->r[1] + 0x00000008u;
|
|
/* 028D9488 */ cpu->f[10] = rbrew_read_f64(cpu->mem, _t26);
|
|
/* 028D948C */ cpu->f[7] = cpu->f[0] - cpu->f[12];
|
|
/* 028D9490 */ _t27 = cpu->r[1] + 0x00000018u;
|
|
/* 028D9490 */ rbrew_write_f32(cpu->mem, _t27, cpu->f[9]);
|
|
/* 028D9494 */ cpu->f[11] = cpu->f[10] - cpu->f[12];
|
|
/* 028D9498 */ cpu->f[12] = (double)(float)cpu->f[7];
|
|
/* 028D949C */ cpu->f[6] = (double)(float)cpu->f[11];
|
|
/* 028D94A0 */ cpu->f[1] = cpu->f[6] / cpu->f[12];
|
|
/* 028D94A4 */ _t28 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D94A4 */ rbrew_write_f32(cpu->mem, _t28, cpu->f[8]);
|
|
/* 028D94A8 */ cpu->r[4] = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D94AC */ cpu->r[3] = cpu->r[1] + 0x00000018u;
|
|
/* 028D94B0 */ Gambit_fn_028D8F48(cpu);
|
|
/* 028D94B4 */ _t29 = cpu->r[1] + 0x00000018u;
|
|
/* 028D94B4 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t29);
|
|
/* 028D94B8 */ cpu->r[10] = rbrew_rlwinm(cpu->r[8], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028D94BC */ _t30 = cpu->r[31] + 0x00000000u;
|
|
/* 028D94BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028D94C0 */ _t31 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D94C0 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 028D94C4 */ cpu->r[12] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028D94C8 */ _t32 = cpu->r[10] + cpu->r[6];
|
|
/* 028D94C8 */ rbrew_write32(cpu->mem, _t32, cpu->r[9]);
|
|
/* 028D94CC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000001u);
|
|
/* 028D94D0 */ _t33 = cpu->r[12] + cpu->r[6];
|
|
/* 028D94D0 */ rbrew_write32(cpu->mem, _t33, cpu->r[10]);
|
|
/* 028D94D4 */ _t34 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D94D4 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028D94D4 */ if (_t35) goto L_028D9578; else goto L_028D94D8;
|
|
L_028D94D8: ; // 0x28d94d8
|
|
/* 028D94D8 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D94D8 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028D94D8 */ if (_t37) goto L_028D94DC; else goto L_028D9550;
|
|
L_028D94DC: ; // 0x28d94dc
|
|
/* 028D94DC */ _t38 = cpu->r[1] + 0x00000020u;
|
|
/* 028D94DC */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t38);
|
|
/* 028D94E0 */ _t39 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D94E0 */ cpu->f[6] = rbrew_read_f32(cpu->mem, _t39);
|
|
/* 028D94E4 */ cpu->f[7] = cpu->f[8] * cpu->f[31];
|
|
/* 028D94E8 */ _t40 = cpu->r[30] + 0x00000004u;
|
|
/* 028D94E8 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t40);
|
|
/* 028D94EC */ cpu->f[12] = cpu->f[6] * cpu->f[31];
|
|
/* 028D94F0 */ _t41 = cpu->r[30] + 0x00000000u;
|
|
/* 028D94F0 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t41);
|
|
/* 028D94F4 */ cpu->f[10] = cpu->f[7] - cpu->f[9];
|
|
/* 028D94F8 */ cpu->f[0] = cpu->f[12] - cpu->f[13];
|
|
/* 028D94FC */ /* nop */
|
|
/* 028D9500 */ /* nop */
|
|
/* 028D9504 */ _t42 = cpu->r[30] + 0x00000004u;
|
|
/* 028D9504 */ rbrew_write_f32(cpu->mem, _t42, cpu->f[11]);
|
|
/* 028D9508 */ _t43 = cpu->r[30] + 0x00000000u;
|
|
/* 028D9508 */ rbrew_write_f32(cpu->mem, _t43, cpu->f[7]);
|
|
/* 028D950C */ _t44 = cpu->r[1] + 0x00000034u;
|
|
/* 028D950C */ cpu->r[29] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028D9510 */ _t45 = cpu->r[1] + 0x00000048u;
|
|
/* 028D9510 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t45);
|
|
/* 028D9514 */ _t46 = cpu->r[1] + 0x00000038u;
|
|
/* 028D9514 */ cpu->r[30] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028D9518 */ _t47 = cpu->r[1] + 0x00000040u;
|
|
/* 028D9518 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t47);
|
|
/* 028D951C */ _t48 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D951C */ cpu->r[31] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028D9520 */ _t49 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9520 */ _t50 = _t49 & 0x00000001u;
|
|
/* 028D9520 */ if (_t50) goto L_028D9524; // else: addr-0 trap, fall-through
|
|
L_028D9524: ; // 0x28d9524
|
|
/* 028D9524 */ _t51 = cpu->r[1] + 0x00000054u;
|
|
/* 028D9524 */ cpu->r[0] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028D9528 */ cpu->lr = cpu->r[0];
|
|
/* 028D952C */ cpu->r[1] = cpu->r[1] + 0x00000050u;
|
|
/* 028D9530 */ return;
|
|
L_028D9534: ; // 0x28d9534
|
|
/* 028D9534 */ cpu->r[4] = cpu->r[4] + 0x00000001u;
|
|
/* 028D9538 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000002u);
|
|
/* 028D953C */ _t52 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D953C */ _t53 = _t52 & 0x00000001u;
|
|
/* 028D953C */ if (_t53) goto L_028D9400; else goto L_028D9540;
|
|
L_028D9540: ; // 0x28d9540
|
|
/* 028D9540 */ _t54 = cpu->r[31] + 0x00000000u;
|
|
/* 028D9540 */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028D9544 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000001u);
|
|
/* 028D9548 */ _t55 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9548 */ _t56 = _t55 & 0x00000001u;
|
|
/* 028D9548 */ if (_t56) goto L_028D9578; else goto L_028D954C;
|
|
L_028D954C: ; // 0x28d954c
|
|
/* 028D954C */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D954C */ _t58 = _t57 & 0x00000001u;
|
|
/* 028D954C */ if (_t58) goto L_028D94DC; else goto L_028D9550;
|
|
L_028D9550: ; // 0x28d9550
|
|
/* 028D9550 */ _t59 = cpu->r[1] + 0x00000034u;
|
|
/* 028D9550 */ cpu->r[29] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028D9554 */ _t60 = cpu->r[1] + 0x00000048u;
|
|
/* 028D9554 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t60);
|
|
/* 028D9558 */ _t61 = cpu->r[1] + 0x00000038u;
|
|
/* 028D9558 */ cpu->r[30] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028D955C */ _t62 = cpu->r[1] + 0x00000040u;
|
|
/* 028D955C */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t62);
|
|
/* 028D9560 */ _t63 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D9560 */ cpu->r[31] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028D9564 */ _t64 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9564 */ _t65 = _t64 & 0x00000001u;
|
|
/* 028D9564 */ if (_t65) goto L_028D9568; // else: addr-0 trap, fall-through
|
|
L_028D9568: ; // 0x28d9568
|
|
/* 028D9568 */ _t66 = cpu->r[1] + 0x00000054u;
|
|
/* 028D9568 */ cpu->r[0] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028D956C */ cpu->lr = cpu->r[0];
|
|
/* 028D9570 */ cpu->r[1] = cpu->r[1] + 0x00000050u;
|
|
/* 028D9574 */ return;
|
|
L_028D9578: ; // 0x28d9578
|
|
/* 028D9578 */ _t67 = cpu->r[1] + 0x00000020u;
|
|
/* 028D9578 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t67);
|
|
/* 028D957C */ _t68 = cpu->r[30] + 0x00000004u;
|
|
/* 028D957C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t68);
|
|
/* 028D9580 */ _t69 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D9580 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t69);
|
|
/* 028D9584 */ cpu->f[13] = fma(cpu->f[11], cpu->f[31], cpu->f[13]);
|
|
/* 028D9588 */ _t70 = cpu->r[30] + 0x00000000u;
|
|
/* 028D9588 */ cpu->f[6] = rbrew_read_f32(cpu->mem, _t70);
|
|
/* 028D958C */ cpu->f[6] = fma(cpu->f[0], cpu->f[31], cpu->f[6]);
|
|
/* 028D9590 */ _t71 = cpu->r[30] + 0x00000004u;
|
|
/* 028D9590 */ rbrew_write_f32(cpu->mem, _t71, cpu->f[13]);
|
|
/* 028D9594 */ _t72 = cpu->r[30] + 0x00000000u;
|
|
/* 028D9594 */ rbrew_write_f32(cpu->mem, _t72, cpu->f[6]);
|
|
/* 028D9598 */ _t73 = cpu->r[1] + 0x00000034u;
|
|
/* 028D9598 */ cpu->r[29] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028D959C */ _t74 = cpu->r[1] + 0x00000048u;
|
|
/* 028D959C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t74);
|
|
/* 028D95A0 */ _t75 = cpu->r[1] + 0x00000038u;
|
|
/* 028D95A0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028D95A4 */ _t76 = cpu->r[1] + 0x00000040u;
|
|
/* 028D95A4 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t76);
|
|
/* 028D95A8 */ _t77 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028D95A8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028D95AC */ _t78 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D95AC */ _t79 = _t78 & 0x00000001u;
|
|
/* 028D95AC */ if (_t79) goto L_028D95B0; // else: addr-0 trap, fall-through
|
|
L_028D95B0: ; // 0x28d95b0
|
|
/* 028D95B0 */ _t80 = cpu->r[1] + 0x00000054u;
|
|
/* 028D95B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028D95B4 */ cpu->lr = cpu->r[0];
|
|
/* 028D95B8 */ cpu->r[1] = cpu->r[1] + 0x00000050u;
|
|
/* 028D95BC */ return;
|
|
}
|
|
|
|
// fn_028D95C0 @ 0x28d95c0
|
|
void Gambit_fn_028D95C0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028D95C0: ; // 0x28d95c0
|
|
/* 028D95C0 */ _t0 = cpu->r[5] + 0x00000000u;
|
|
/* 028D95C0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028D95C4 */ _t1 = cpu->r[5] + 0x00000004u;
|
|
/* 028D95C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028D95C8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[0]);
|
|
/* 028D95CC */ _t2 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D95CC */ _t3 = _t2 & 0x00000001u;
|
|
/* 028D95CC */ if (_t3) goto L_028D95E8; else goto L_028D95D0;
|
|
L_028D95D0: ; // 0x28d95d0
|
|
/* 028D95D0 */ _t4 = cpu->r[4] + 0x00000000u;
|
|
/* 028D95D0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028D95D4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 028D95D8 */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D95D8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028D95D8 */ if (_t6) goto L_028D95E8; else goto L_028D95DC;
|
|
L_028D95DC: ; // 0x28d95dc
|
|
/* 028D95DC */ _t7 = cpu->r[4] + 0x00000004u;
|
|
/* 028D95DC */ cpu->r[11] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028D95E0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[9]);
|
|
/* 028D95E4 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D95E4 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028D95E4 */ if (_t9) goto L_028D95E8; else goto L_028D95F0;
|
|
L_028D95E8: ; // 0x28d95e8
|
|
/* 028D95E8 */ cpu->r[3] = 0x00000000u;
|
|
/* 028D95EC */ return;
|
|
L_028D95F0: ; // 0x28d95f0
|
|
/* 028D95F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[9]);
|
|
/* 028D95F4 */ _t10 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D95F4 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D95F4 */ if (_t11) goto L_028D95F8; else goto L_028D95FC;
|
|
L_028D95F8: ; // 0x28d95f8
|
|
/* 028D95F8 */ cpu->r[9] = cpu->r[10];
|
|
L_028D95FC: ; // 0x28d95fc
|
|
/* 028D95FC */ _t12 = cpu->r[3] + 0x00000000u;
|
|
/* 028D95FC */ rbrew_write32(cpu->mem, _t12, cpu->r[9]);
|
|
/* 028D9600 */ _t13 = cpu->r[4] + 0x00000004u;
|
|
/* 028D9600 */ cpu->r[11] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D9604 */ _t14 = cpu->r[5] + 0x00000004u;
|
|
/* 028D9604 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D9608 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[11]);
|
|
/* 028D960C */ _t15 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D960C */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D960C */ if (_t16) goto L_028D9610; else goto L_028D9614;
|
|
L_028D9610: ; // 0x28d9610
|
|
/* 028D9610 */ cpu->r[11] = cpu->r[0];
|
|
L_028D9614: ; // 0x28d9614
|
|
/* 028D9614 */ _t17 = cpu->r[3] + 0x00000004u;
|
|
/* 028D9614 */ rbrew_write32(cpu->mem, _t17, cpu->r[11]);
|
|
/* 028D9618 */ cpu->r[3] = 0x00000001u;
|
|
/* 028D961C */ return;
|
|
}
|
|
|
|
// fn_028D9620 @ 0x28d9620
|
|
void Gambit_fn_028D9620(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42;
|
|
|
|
L_028D9620: ; // 0x28d9620
|
|
/* 028D9620 */ cpu->r[0] = cpu->lr;
|
|
/* 028D9624 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 028D9624 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D9624 */ cpu->r[1] = _t0;
|
|
/* 028D9628 */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 028D9628 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 028D962C */ _t2 = cpu->r[1] + 0x00000024u;
|
|
/* 028D962C */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028D9630 */ cpu->r[28] = cpu->r[3];
|
|
/* 028D9634 */ _t3 = cpu->r[1] + 0x00000028u;
|
|
/* 028D9634 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028D9638 */ cpu->r[30] = cpu->r[5];
|
|
/* 028D963C */ cpu->r[11] = 0x10140000u;
|
|
/* 028D9640 */ _t4 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D9640 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028D9644 */ cpu->r[5] = cpu->r[6];
|
|
/* 028D9648 */ cpu->r[8] = 0xFFFFFFFFu;
|
|
/* 028D964C */ cpu->f[5] = cpu->f[1];
|
|
/* 028D9650 */ _t5 = cpu->r[1] + 0x00000034u;
|
|
/* 028D9650 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028D9654 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D9658 */ cpu->r[6] = 0x10140000u;
|
|
/* 028D965C */ _t6 = cpu->r[11] + 0xFFFFB008u;
|
|
/* 028D965C */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028D9660 */ cpu->r[31] = 0x00000002u;
|
|
/* 028D9664 */ _t7 = cpu->r[6] + 0xFFFFB004u;
|
|
/* 028D9664 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028D9668 */ cpu->r[6] = 0x00000000u;
|
|
L_028D966C: ; // 0x28d966c
|
|
/* 028D966C */ _t8 = cpu->r[1] + 0x00000010u;
|
|
/* 028D966C */ rbrew_write32(cpu->mem, _t8, cpu->r[8]);
|
|
/* 028D9670 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D9674 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028D9678 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028D9678 */ rbrew_write32(cpu->mem, _t9, cpu->r[6]);
|
|
/* 028D967C */ Gambit_fn_028D95C0(cpu);
|
|
/* 028D9680 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D9684 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D9684 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D9684 */ if (_t11) goto L_028D9764; else goto L_028D9688;
|
|
L_028D9688: ; // 0x28d9688
|
|
/* 028D9688 */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 028D9688 */ cpu->r[10] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D968C */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028D968C */ cpu->r[11] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D9690 */ _t14 = cpu->r[30] + 0x00000004u;
|
|
/* 028D9690 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D9694 */ cpu->r[9] = cpu->r[11] - cpu->r[10];
|
|
/* 028D9698 */ _t15 = cpu->r[30] + 0x00000000u;
|
|
/* 028D9698 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D969C */ cpu->r[7] = cpu->r[9] + 0x00000001u;
|
|
/* 028D96A0 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D96A0 */ rbrew_write32(cpu->mem, _t16, cpu->r[7]);
|
|
/* 028D96A4 */ cpu->r[7] = 0x10140000u;
|
|
/* 028D96A8 */ _t17 = cpu->r[7] + 0xFFFFAFF8u;
|
|
/* 028D96A8 */ cpu->f[9] = rbrew_read_f64(cpu->mem, _t17);
|
|
/* 028D96AC */ cpu->r[7] = 0x43300000u;
|
|
/* 028D96B0 */ cpu->r[9] = cpu->r[0] - cpu->r[11];
|
|
/* 028D96B4 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028D96B4 */ rbrew_write32(cpu->mem, _t18, cpu->r[7]);
|
|
/* 028D96B8 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028D96B8 */ cpu->f[7] = rbrew_read_f64(cpu->mem, _t19);
|
|
/* 028D96BC */ cpu->r[7] = cpu->r[0] - cpu->r[10];
|
|
/* 028D96C0 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D96C0 */ rbrew_write32(cpu->mem, _t20, cpu->r[9]);
|
|
/* 028D96C4 */ cpu->f[8] = cpu->f[7] - cpu->f[9];
|
|
/* 028D96C8 */ _t21 = cpu->r[1] + 0x00000008u;
|
|
/* 028D96C8 */ cpu->f[7] = rbrew_read_f64(cpu->mem, _t21);
|
|
/* 028D96CC */ cpu->r[9] = cpu->r[7] + 0x00000001u;
|
|
/* 028D96D0 */ cpu->f[0] = (double)(float)cpu->f[8];
|
|
/* 028D96D4 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D96D4 */ rbrew_write32(cpu->mem, _t22, cpu->r[9]);
|
|
/* 028D96D8 */ _t23 = cpu->r[1] + 0x00000008u;
|
|
/* 028D96D8 */ cpu->f[8] = rbrew_read_f64(cpu->mem, _t23);
|
|
/* 028D96DC */ cpu->r[0] = cpu->r[10] - cpu->r[12];
|
|
/* 028D96E0 */ cpu->f[6] = cpu->f[0] / cpu->f[5];
|
|
/* 028D96E4 */ _t24 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D96E4 */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
/* 028D96E8 */ cpu->f[12] = cpu->f[8] - cpu->f[9];
|
|
/* 028D96EC */ _t25 = cpu->r[1] + 0x00000008u;
|
|
/* 028D96EC */ cpu->f[0] = rbrew_read_f64(cpu->mem, _t25);
|
|
/* 028D96F0 */ cpu->f[8] = cpu->f[7] - cpu->f[9];
|
|
/* 028D96F4 */ cpu->r[12] = cpu->r[11] - cpu->r[12];
|
|
/* 028D96F8 */ cpu->f[7] = cpu->f[0] - cpu->f[9];
|
|
/* 028D96FC */ cpu->r[0] = cpu->r[12] + 0x00000001u;
|
|
/* 028D9700 */ cpu->f[12] = (double)(float)cpu->f[12];
|
|
/* 028D9704 */ _t26 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D9704 */ rbrew_write32(cpu->mem, _t26, cpu->r[0]);
|
|
/* 028D9708 */ cpu->f[8] = (double)(float)cpu->f[8];
|
|
/* 028D970C */ _t27 = cpu->r[1] + 0x00000008u;
|
|
/* 028D970C */ cpu->f[13] = rbrew_read_f64(cpu->mem, _t27);
|
|
/* 028D9710 */ cpu->f[7] = (double)(float)cpu->f[7];
|
|
/* 028D9714 */ cpu->f[0] = cpu->f[13] - cpu->f[9];
|
|
/* 028D9718 */ cpu->f[12] = cpu->f[8] + cpu->f[12];
|
|
/* 028D971C */ cpu->f[8] = (double)(float)cpu->f[0];
|
|
/* 028D9720 */ cpu->f[13] = cpu->f[12] + cpu->f[7];
|
|
/* 028D9724 */ cpu->f[9] = cpu->f[7] + cpu->f[8];
|
|
/* 028D9728 */ cpu->f[0] = cpu->f[13] + cpu->f[8];
|
|
/* 028D972C */ _t28 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D972C */ rbrew_write_f32(cpu->mem, _t28, cpu->f[11]);
|
|
/* 028D9730 */ cpu->r[4] = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D9734 */ cpu->f[1] = cpu->f[9] / cpu->f[0];
|
|
/* 028D9738 */ _t29 = cpu->r[1] + 0x00000018u;
|
|
/* 028D9738 */ rbrew_write_f32(cpu->mem, _t29, cpu->f[10]);
|
|
/* 028D973C */ cpu->r[3] = cpu->r[1] + 0x00000018u;
|
|
/* 028D9740 */ Gambit_fn_028D8F48(cpu);
|
|
/* 028D9744 */ _t30 = cpu->r[28] + 0x00000000u;
|
|
/* 028D9744 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t30);
|
|
/* 028D9748 */ _t31 = cpu->r[1] + 0x00000018u;
|
|
/* 028D9748 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 028D974C */ cpu->f[13] = fma(cpu->f[12], cpu->f[6], cpu->f[13]);
|
|
/* 028D9750 */ _t32 = cpu->r[28] + 0x00000000u;
|
|
/* 028D9750 */ rbrew_write_f32(cpu->mem, _t32, cpu->f[13]);
|
|
/* 028D9754 */ _t33 = cpu->r[29] + 0x00000000u;
|
|
/* 028D9754 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t33);
|
|
/* 028D9758 */ _t34 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D9758 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t34);
|
|
/* 028D975C */ cpu->f[9] = fma(cpu->f[7], cpu->f[6], cpu->f[9]);
|
|
/* 028D9760 */ _t35 = cpu->r[29] + 0x00000000u;
|
|
/* 028D9760 */ rbrew_write_f32(cpu->mem, _t35, cpu->f[9]);
|
|
L_028D9764: ; // 0x28d9764
|
|
/* 028D9764 */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028D9764 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D9768 */ cpu->r[5] = cpu->r[5] + 0x00000008u;
|
|
/* 028D976C */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D976C */ _t37 = _t36 & 0x00000001u;
|
|
/* 028D976C */ if (_t37) goto L_028D9770; else goto L_028D966C;
|
|
L_028D9770: ; // 0x28d9770
|
|
/* 028D9770 */ _t38 = cpu->r[1] + 0x00000020u;
|
|
/* 028D9770 */ cpu->r[28] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028D9774 */ _t39 = cpu->r[1] + 0x00000024u;
|
|
/* 028D9774 */ cpu->r[29] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028D9778 */ _t40 = cpu->r[1] + 0x00000034u;
|
|
/* 028D9778 */ cpu->r[0] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028D977C */ _t41 = cpu->r[1] + 0x00000028u;
|
|
/* 028D977C */ cpu->r[30] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028D9780 */ cpu->lr = cpu->r[0];
|
|
/* 028D9784 */ _t42 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D9784 */ cpu->r[31] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028D9788 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 028D978C */ return;
|
|
}
|
|
|
|
// fn_028D9624 @ 0x28d9624
|
|
void Gambit_fn_028D9624(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42;
|
|
|
|
L_028D9624: ; // 0x28d9624
|
|
/* 028D9624 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 028D9624 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D9624 */ cpu->r[1] = _t0;
|
|
/* 028D9628 */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 028D9628 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 028D962C */ _t2 = cpu->r[1] + 0x00000024u;
|
|
/* 028D962C */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028D9630 */ cpu->r[28] = cpu->r[3];
|
|
/* 028D9634 */ _t3 = cpu->r[1] + 0x00000028u;
|
|
/* 028D9634 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028D9638 */ cpu->r[30] = cpu->r[5];
|
|
/* 028D963C */ cpu->r[11] = 0x10140000u;
|
|
/* 028D9640 */ _t4 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D9640 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028D9644 */ cpu->r[5] = cpu->r[6];
|
|
/* 028D9648 */ cpu->r[8] = 0xFFFFFFFFu;
|
|
/* 028D964C */ cpu->f[5] = cpu->f[1];
|
|
/* 028D9650 */ _t5 = cpu->r[1] + 0x00000034u;
|
|
/* 028D9650 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028D9654 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D9658 */ cpu->r[6] = 0x10140000u;
|
|
/* 028D965C */ _t6 = cpu->r[11] + 0xFFFFB008u;
|
|
/* 028D965C */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028D9660 */ cpu->r[31] = 0x00000002u;
|
|
/* 028D9664 */ _t7 = cpu->r[6] + 0xFFFFB004u;
|
|
/* 028D9664 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028D9668 */ cpu->r[6] = 0x00000000u;
|
|
L_028D966C: ; // 0x28d966c
|
|
/* 028D966C */ _t8 = cpu->r[1] + 0x00000010u;
|
|
/* 028D966C */ rbrew_write32(cpu->mem, _t8, cpu->r[8]);
|
|
/* 028D9670 */ cpu->r[4] = cpu->r[30];
|
|
/* 028D9674 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028D9678 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028D9678 */ rbrew_write32(cpu->mem, _t9, cpu->r[6]);
|
|
/* 028D967C */ Gambit_fn_028D95C0(cpu);
|
|
/* 028D9680 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D9684 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D9684 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028D9684 */ if (_t11) goto L_028D9764; else goto L_028D9688;
|
|
L_028D9688: ; // 0x28d9688
|
|
/* 028D9688 */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 028D9688 */ cpu->r[10] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028D968C */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028D968C */ cpu->r[11] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028D9690 */ _t14 = cpu->r[30] + 0x00000004u;
|
|
/* 028D9690 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D9694 */ cpu->r[9] = cpu->r[11] - cpu->r[10];
|
|
/* 028D9698 */ _t15 = cpu->r[30] + 0x00000000u;
|
|
/* 028D9698 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028D969C */ cpu->r[7] = cpu->r[9] + 0x00000001u;
|
|
/* 028D96A0 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D96A0 */ rbrew_write32(cpu->mem, _t16, cpu->r[7]);
|
|
/* 028D96A4 */ cpu->r[7] = 0x10140000u;
|
|
/* 028D96A8 */ _t17 = cpu->r[7] + 0xFFFFAFF8u;
|
|
/* 028D96A8 */ cpu->f[9] = rbrew_read_f64(cpu->mem, _t17);
|
|
/* 028D96AC */ cpu->r[7] = 0x43300000u;
|
|
/* 028D96B0 */ cpu->r[9] = cpu->r[0] - cpu->r[11];
|
|
/* 028D96B4 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028D96B4 */ rbrew_write32(cpu->mem, _t18, cpu->r[7]);
|
|
/* 028D96B8 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028D96B8 */ cpu->f[7] = rbrew_read_f64(cpu->mem, _t19);
|
|
/* 028D96BC */ cpu->r[7] = cpu->r[0] - cpu->r[10];
|
|
/* 028D96C0 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D96C0 */ rbrew_write32(cpu->mem, _t20, cpu->r[9]);
|
|
/* 028D96C4 */ cpu->f[8] = cpu->f[7] - cpu->f[9];
|
|
/* 028D96C8 */ _t21 = cpu->r[1] + 0x00000008u;
|
|
/* 028D96C8 */ cpu->f[7] = rbrew_read_f64(cpu->mem, _t21);
|
|
/* 028D96CC */ cpu->r[9] = cpu->r[7] + 0x00000001u;
|
|
/* 028D96D0 */ cpu->f[0] = (double)(float)cpu->f[8];
|
|
/* 028D96D4 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D96D4 */ rbrew_write32(cpu->mem, _t22, cpu->r[9]);
|
|
/* 028D96D8 */ _t23 = cpu->r[1] + 0x00000008u;
|
|
/* 028D96D8 */ cpu->f[8] = rbrew_read_f64(cpu->mem, _t23);
|
|
/* 028D96DC */ cpu->r[0] = cpu->r[10] - cpu->r[12];
|
|
/* 028D96E0 */ cpu->f[6] = cpu->f[0] / cpu->f[5];
|
|
/* 028D96E4 */ _t24 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D96E4 */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
/* 028D96E8 */ cpu->f[12] = cpu->f[8] - cpu->f[9];
|
|
/* 028D96EC */ _t25 = cpu->r[1] + 0x00000008u;
|
|
/* 028D96EC */ cpu->f[0] = rbrew_read_f64(cpu->mem, _t25);
|
|
/* 028D96F0 */ cpu->f[8] = cpu->f[7] - cpu->f[9];
|
|
/* 028D96F4 */ cpu->r[12] = cpu->r[11] - cpu->r[12];
|
|
/* 028D96F8 */ cpu->f[7] = cpu->f[0] - cpu->f[9];
|
|
/* 028D96FC */ cpu->r[0] = cpu->r[12] + 0x00000001u;
|
|
/* 028D9700 */ cpu->f[12] = (double)(float)cpu->f[12];
|
|
/* 028D9704 */ _t26 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D9704 */ rbrew_write32(cpu->mem, _t26, cpu->r[0]);
|
|
/* 028D9708 */ cpu->f[8] = (double)(float)cpu->f[8];
|
|
/* 028D970C */ _t27 = cpu->r[1] + 0x00000008u;
|
|
/* 028D970C */ cpu->f[13] = rbrew_read_f64(cpu->mem, _t27);
|
|
/* 028D9710 */ cpu->f[7] = (double)(float)cpu->f[7];
|
|
/* 028D9714 */ cpu->f[0] = cpu->f[13] - cpu->f[9];
|
|
/* 028D9718 */ cpu->f[12] = cpu->f[8] + cpu->f[12];
|
|
/* 028D971C */ cpu->f[8] = (double)(float)cpu->f[0];
|
|
/* 028D9720 */ cpu->f[13] = cpu->f[12] + cpu->f[7];
|
|
/* 028D9724 */ cpu->f[9] = cpu->f[7] + cpu->f[8];
|
|
/* 028D9728 */ cpu->f[0] = cpu->f[13] + cpu->f[8];
|
|
/* 028D972C */ _t28 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D972C */ rbrew_write_f32(cpu->mem, _t28, cpu->f[11]);
|
|
/* 028D9730 */ cpu->r[4] = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D9734 */ cpu->f[1] = cpu->f[9] / cpu->f[0];
|
|
/* 028D9738 */ _t29 = cpu->r[1] + 0x00000018u;
|
|
/* 028D9738 */ rbrew_write_f32(cpu->mem, _t29, cpu->f[10]);
|
|
/* 028D973C */ cpu->r[3] = cpu->r[1] + 0x00000018u;
|
|
/* 028D9740 */ Gambit_fn_028D8F48(cpu);
|
|
/* 028D9744 */ _t30 = cpu->r[28] + 0x00000000u;
|
|
/* 028D9744 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t30);
|
|
/* 028D9748 */ _t31 = cpu->r[1] + 0x00000018u;
|
|
/* 028D9748 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 028D974C */ cpu->f[13] = fma(cpu->f[12], cpu->f[6], cpu->f[13]);
|
|
/* 028D9750 */ _t32 = cpu->r[28] + 0x00000000u;
|
|
/* 028D9750 */ rbrew_write_f32(cpu->mem, _t32, cpu->f[13]);
|
|
/* 028D9754 */ _t33 = cpu->r[29] + 0x00000000u;
|
|
/* 028D9754 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t33);
|
|
/* 028D9758 */ _t34 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D9758 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t34);
|
|
/* 028D975C */ cpu->f[9] = fma(cpu->f[7], cpu->f[6], cpu->f[9]);
|
|
/* 028D9760 */ _t35 = cpu->r[29] + 0x00000000u;
|
|
/* 028D9760 */ rbrew_write_f32(cpu->mem, _t35, cpu->f[9]);
|
|
L_028D9764: ; // 0x28d9764
|
|
/* 028D9764 */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028D9764 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D9768 */ cpu->r[5] = cpu->r[5] + 0x00000008u;
|
|
/* 028D976C */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D976C */ _t37 = _t36 & 0x00000001u;
|
|
/* 028D976C */ if (_t37) goto L_028D9770; else goto L_028D966C;
|
|
L_028D9770: ; // 0x28d9770
|
|
/* 028D9770 */ _t38 = cpu->r[1] + 0x00000020u;
|
|
/* 028D9770 */ cpu->r[28] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028D9774 */ _t39 = cpu->r[1] + 0x00000024u;
|
|
/* 028D9774 */ cpu->r[29] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028D9778 */ _t40 = cpu->r[1] + 0x00000034u;
|
|
/* 028D9778 */ cpu->r[0] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028D977C */ _t41 = cpu->r[1] + 0x00000028u;
|
|
/* 028D977C */ cpu->r[30] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028D9780 */ cpu->lr = cpu->r[0];
|
|
/* 028D9784 */ _t42 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028D9784 */ cpu->r[31] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028D9788 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 028D978C */ return;
|
|
}
|
|
|
|
// fn_028D9790 @ 0x28d9790
|
|
void Gambit_fn_028D9790(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112, _t113, _t114, _t115;
|
|
|
|
L_028D9790: ; // 0x28d9790
|
|
/* 028D9790 */ _t0 = cpu->r[1] + 0xFFFFFF68u;
|
|
/* 028D9790 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D9790 */ cpu->r[1] = _t0;
|
|
/* 028D9794 */ cpu->r[0] = cpu->lr;
|
|
/* 028D9798 */ _t1 = cpu->r[1] + 0x00000068u;
|
|
/* 028D9798 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[29]);
|
|
/* 028D979C */ /* nop */
|
|
/* 028D97A0 */ _t2 = cpu->r[1] + 0x00000078u;
|
|
/* 028D97A0 */ rbrew_write_f64(cpu->mem, _t2, cpu->f[30]);
|
|
/* 028D97A4 */ /* nop */
|
|
/* 028D97A8 */ _t3 = cpu->r[1] + 0x00000088u;
|
|
/* 028D97A8 */ rbrew_write_f64(cpu->mem, _t3, cpu->f[31]);
|
|
/* 028D97AC */ /* nop */
|
|
/* 028D97B0 */ _t4 = cpu->r[1] + 0x00000070u;
|
|
/* 028D97B0 */ rbrew_write_f32(cpu->mem, _t4, cpu->f[29]);
|
|
/* 028D97B4 */ _t5 = cpu->r[1] + 0x00000080u;
|
|
/* 028D97B4 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[30]);
|
|
/* 028D97B8 */ _t6 = cpu->r[1] + 0x00000090u;
|
|
/* 028D97B8 */ rbrew_write_f32(cpu->mem, _t6, cpu->f[31]);
|
|
/* 028D97BC */ cpu->f[29] = cpu->f[1];
|
|
/* 028D97C0 */ _t7 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028D97C0 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028D97C4 */ cpu->f[30] = cpu->f[2];
|
|
/* 028D97C8 */ /* nop */
|
|
/* 028D97CC */ cpu->r[26] = cpu->r[1] + 0x00000028u;
|
|
/* 028D97D0 */ cpu->r[27] = cpu->r[3];
|
|
/* 028D97D4 */ cpu->r[31] = cpu->r[4];
|
|
/* 028D97D8 */ cpu->r[28] = cpu->r[5];
|
|
/* 028D97DC */ cpu->r[4] = 0x00000000u;
|
|
/* 028D97E0 */ cpu->r[5] = 0x00000014u;
|
|
/* 028D97E4 */ cpu->r[3] = cpu->r[26];
|
|
/* 028D97E8 */ cpu->r[29] = cpu->r[6];
|
|
/* 028D97EC */ cpu->f[31] = cpu->f[3];
|
|
/* 028D97F0 */ rbrew_dispatch(cpu, 0x02d0a6f0u);
|
|
/* 028D97F4 */ cpu->r[6] = 0x10140000u;
|
|
/* 028D97F8 */ _t8 = cpu->r[6] + 0xFFFFAFF4u;
|
|
/* 028D97F8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028D97FC */ cpu->f[8] = cpu->f[0] * cpu->f[29];
|
|
/* 028D9800 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[8], cpu->f[0]);
|
|
/* 028D9804 */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9804 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D9804 */ if (_t10) goto L_028D9808; else goto L_028D9824;
|
|
L_028D9808: ; // 0x28d9808
|
|
/* 028D9808 */ cpu->f[11] = (uint32_t)(int32_t)cpu->f[8];
|
|
/* 028D980C */ cpu->r[12] = cpu->r[1] + 0x00000010u;
|
|
/* 028D9810 */ /* nop */
|
|
/* 028D9814 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028D9814 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D9818 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D981C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D981C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D981C */ if (_t13) goto L_028D9844; else goto L_028D9820;
|
|
L_028D9820: ; // 0x28d9820
|
|
/* 028D9820 */ goto L_028D9848;
|
|
L_028D9824: ; // 0x28d9824
|
|
/* 028D9824 */ cpu->f[10] = cpu->f[8] - cpu->f[0];
|
|
/* 028D9828 */ cpu->f[11] = (uint32_t)(int32_t)cpu->f[10];
|
|
/* 028D982C */ cpu->r[0] = cpu->r[1] + 0x00000010u;
|
|
/* 028D9830 */ /* nop */
|
|
/* 028D9834 */ _t14 = cpu->r[1] + 0x00000010u;
|
|
/* 028D9834 */ cpu->r[10] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D9838 */ cpu->r[0] = cpu->r[10] + 0x80000000u;
|
|
/* 028D983C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D9840 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D9840 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D9840 */ if (_t16) goto L_028D9844; else goto L_028D9848;
|
|
L_028D9844: ; // 0x28d9844
|
|
/* 028D9844 */ cpu->r[0] = 0x00000001u;
|
|
L_028D9848: ; // 0x28d9848
|
|
/* 028D9848 */ cpu->f[11] = cpu->f[0] * cpu->f[30];
|
|
/* 028D984C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[11], cpu->f[0]);
|
|
/* 028D9850 */ _t17 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9850 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D9850 */ if (_t18) goto L_028D9854; else goto L_028D9870;
|
|
L_028D9854: ; // 0x28d9854
|
|
/* 028D9854 */ cpu->f[0] = (uint32_t)(int32_t)cpu->f[11];
|
|
/* 028D9858 */ cpu->r[8] = cpu->r[1] + 0x00000010u;
|
|
/* 028D985C */ /* nop */
|
|
/* 028D9860 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028D9860 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D9864 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D9868 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D9868 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028D9868 */ if (_t21) goto L_028D9890; else goto L_028D986C;
|
|
L_028D986C: ; // 0x28d986c
|
|
/* 028D986C */ goto L_028D9894;
|
|
L_028D9870: ; // 0x28d9870
|
|
/* 028D9870 */ cpu->f[7] = cpu->f[11] - cpu->f[0];
|
|
/* 028D9874 */ cpu->f[9] = (uint32_t)(int32_t)cpu->f[7];
|
|
/* 028D9878 */ cpu->r[7] = cpu->r[1] + 0x00000010u;
|
|
/* 028D987C */ /* nop */
|
|
/* 028D9880 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028D9880 */ cpu->r[6] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D9884 */ cpu->r[12] = cpu->r[6] + 0x80000000u;
|
|
/* 028D9888 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D988C */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D988C */ _t24 = _t23 & 0x00000001u;
|
|
/* 028D988C */ if (_t24) goto L_028D9890; else goto L_028D9894;
|
|
L_028D9890: ; // 0x28d9890
|
|
/* 028D9890 */ cpu->r[12] = 0x00000001u;
|
|
L_028D9894: ; // 0x28d9894
|
|
/* 028D9894 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D9898 */ _t25 = cpu->r[1] + 0x00000014u;
|
|
/* 028D9898 */ rbrew_write32(cpu->mem, _t25, cpu->r[0]);
|
|
/* 028D989C */ _t26 = cpu->r[11] + 0xFFFFAFF8u;
|
|
/* 028D989C */ cpu->f[13] = rbrew_read_f64(cpu->mem, _t26);
|
|
/* 028D98A0 */ cpu->r[11] = 0x43300000u;
|
|
/* 028D98A4 */ _t27 = cpu->r[1] + 0x00000010u;
|
|
/* 028D98A4 */ rbrew_write32(cpu->mem, _t27, cpu->r[11]);
|
|
/* 028D98A8 */ _t28 = cpu->r[1] + 0x00000010u;
|
|
/* 028D98A8 */ cpu->f[9] = rbrew_read_f64(cpu->mem, _t28);
|
|
/* 028D98AC */ _t29 = cpu->r[1] + 0x00000014u;
|
|
/* 028D98AC */ rbrew_write32(cpu->mem, _t29, cpu->r[12]);
|
|
/* 028D98B0 */ _t30 = cpu->r[1] + 0x00000010u;
|
|
/* 028D98B0 */ cpu->f[10] = rbrew_read_f64(cpu->mem, _t30);
|
|
/* 028D98B4 */ cpu->f[9] = cpu->f[9] - cpu->f[13];
|
|
/* 028D98B8 */ cpu->r[6] = 0x028E0000u;
|
|
/* 028D98BC */ cpu->f[11] = cpu->f[10] - cpu->f[13];
|
|
/* 028D98C0 */ cpu->r[7] = cpu->r[31] + cpu->r[12];
|
|
/* 028D98C4 */ cpu->f[7] = (double)(float)cpu->f[9];
|
|
/* 028D98C8 */ cpu->r[6] = cpu->r[6] + 0xFFFFA34Cu;
|
|
/* 028D98CC */ cpu->r[30] = cpu->r[7] + 0xFFFFFFFFu;
|
|
/* 028D98D0 */ cpu->f[12] = (double)(float)cpu->f[11];
|
|
/* 028D98D4 */ cpu->r[3] = cpu->r[1] + 0x00000018u;
|
|
/* 028D98D8 */ cpu->r[4] = 0x00000002u;
|
|
/* 028D98DC */ cpu->r[5] = 0x00000008u;
|
|
/* 028D98E0 */ cpu->r[31] = cpu->r[31] - cpu->r[0];
|
|
/* 028D98E4 */ cpu->f[30] = cpu->f[7] + cpu->f[12];
|
|
/* 028D98E8 */ Gambit_fn_02C82E00(cpu);
|
|
/* 028D98EC */ _t31 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D98EC */ rbrew_write32(cpu->mem, _t31, cpu->r[30]);
|
|
/* 028D98F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028D98F4 */ _t32 = cpu->r[28] + 0x00000008u;
|
|
/* 028D98F4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028D98F8 */ _t33 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D98F8 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028D98F8 */ if (_t34) goto L_028D9920; else goto L_028D98FC;
|
|
L_028D98FC: ; // 0x28d98fc
|
|
/* 028D98FC */ _t35 = cpu->r[1] + 0x00000018u;
|
|
/* 028D98FC */ rbrew_write32(cpu->mem, _t35, cpu->r[31]);
|
|
/* 028D9900 */ _t36 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028D9900 */ cpu->r[0] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028D9904 */ cpu->ctr = cpu->r[0];
|
|
/* 028D9908 */ cpu->r[30] = 0x00000005u;
|
|
/* 028D990C */ cpu->r[3] = cpu->r[28];
|
|
/* 028D9910 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D9914 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D9918 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D9918 */ _t38 = _t37 & 0x00000001u;
|
|
/* 028D9918 */ if (_t38) goto L_028D991C; else goto L_028D9954;
|
|
L_028D991C: ; // 0x28d991c
|
|
/* 028D991C */ goto L_028D9950;
|
|
L_028D9920: ; // 0x28d9920
|
|
/* 028D9920 */ _t39 = cpu->r[1] + 0x00000020u;
|
|
/* 028D9920 */ rbrew_write32(cpu->mem, _t39, cpu->r[31]);
|
|
/* 028D9924 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028D9928 */ cpu->r[8] = 0x00000000u;
|
|
/* 028D992C */ _t40 = cpu->r[1] + 0x00000024u;
|
|
/* 028D992C */ rbrew_write32(cpu->mem, _t40, cpu->r[0]);
|
|
/* 028D9930 */ _t41 = cpu->r[1] + 0x00000018u;
|
|
/* 028D9930 */ rbrew_write32(cpu->mem, _t41, cpu->r[8]);
|
|
/* 028D9934 */ _t42 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028D9934 */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028D9938 */ cpu->ctr = cpu->r[0];
|
|
/* 028D993C */ cpu->r[30] = 0x00000005u;
|
|
/* 028D9940 */ cpu->r[3] = cpu->r[28];
|
|
/* 028D9944 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028D9948 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028D994C */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D994C */ _t44 = _t43 & 0x00000001u;
|
|
/* 028D994C */ if (_t44) goto L_028D9950; else goto L_028D9954;
|
|
L_028D9950: ; // 0x28d9950
|
|
/* 028D9950 */ cpu->r[30] = 0x00000004u;
|
|
L_028D9954: ; // 0x28d9954
|
|
/* 028D9954 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D9958 */ cpu->r[31] = cpu->r[30];
|
|
/* 028D995C */ cpu->r[25] = 0x00000000u;
|
|
/* 028D9960 */ _t45 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D9960 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028D9960 */ if (_t46) goto L_028D9968; else goto L_028D9964;
|
|
L_028D9964: ; // 0x28d9964
|
|
/* 028D9964 */ cpu->r[31] = 0x00000001u;
|
|
L_028D9968: ; // 0x28d9968
|
|
/* 028D9968 */ cpu->r[9] = rbrew_rlwinm(cpu->r[25], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028D996C */ cpu->r[22] = cpu->r[30] + 0xFFFFFFFFu;
|
|
/* 028D9970 */ cpu->r[23] = 0x00000000u;
|
|
/* 028D9974 */ cpu->r[30] = cpu->r[26] + cpu->r[9];
|
|
/* 028D9978 */ cpu->r[24] = 0xFFFFFFFFu;
|
|
L_028D997C: ; // 0x28d997c
|
|
/* 028D997C */ _t47 = cpu->r[1] + 0x00000008u;
|
|
/* 028D997C */ rbrew_write32(cpu->mem, _t47, cpu->r[24]);
|
|
/* 028D9980 */ cpu->r[4] = cpu->r[25];
|
|
/* 028D9984 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028D9988 */ cpu->r[5] = cpu->r[28];
|
|
/* 028D998C */ _t48 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D998C */ rbrew_write32(cpu->mem, _t48, cpu->r[23]);
|
|
/* 028D9990 */ Gambit_fn_028D8E90(cpu);
|
|
/* 028D9994 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], cpu->r[22]);
|
|
/* 028D9998 */ cpu->r[4] = cpu->r[26];
|
|
/* 028D999C */ cpu->r[3] = cpu->r[30];
|
|
/* 028D99A0 */ _t49 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D99A0 */ _t50 = _t49 & 0x00000001u;
|
|
/* 028D99A0 */ if (_t50) goto L_028D99A4; else goto L_028D99A8;
|
|
L_028D99A4: ; // 0x28d99a4
|
|
/* 028D99A4 */ cpu->r[4] = cpu->r[30] + 0x00000004u;
|
|
L_028D99A8: ; // 0x28d99a8
|
|
/* 028D99A8 */ cpu->f[1] = cpu->f[30];
|
|
/* 028D99AC */ cpu->r[6] = cpu->r[1] + 0x00000018u;
|
|
/* 028D99B0 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028D99B4 */ Gambit_fn_028D9620(cpu);
|
|
/* 028D99B8 */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028D99B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028D99BC */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
/* 028D99C0 */ cpu->r[30] = cpu->r[30] + 0x00000004u;
|
|
/* 028D99C4 */ _t51 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D99C4 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028D99C4 */ if (_t52) goto L_028D99C8; else goto L_028D997C;
|
|
L_028D99C8: ; // 0x28d99c8
|
|
/* 028D99C8 */ _t53 = cpu->r[28] + 0x00000018u;
|
|
/* 028D99C8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t53);
|
|
/* 028D99CC */ _t54 = cpu->r[29] + 0x00000000u;
|
|
/* 028D99CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028D99D0 */ cpu->f[5] = cpu->f[31] * cpu->f[12];
|
|
/* 028D99D4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000001u);
|
|
/* 028D99D8 */ _t55 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D99D8 */ _t56 = _t55 & 0x00000001u;
|
|
/* 028D99D8 */ if (_t56) goto L_028D9A10; else goto L_028D99DC;
|
|
L_028D99DC: ; // 0x28d99dc
|
|
/* 028D99DC */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D99DC */ _t58 = _t57 & 0x00000001u;
|
|
/* 028D99DC */ if (_t58) goto L_028D9A90; else goto L_028D99E0;
|
|
L_028D99E0: ; // 0x28d99e0
|
|
/* 028D99E0 */ /* nop */
|
|
/* 028D99E4 */ _t59 = cpu->r[1] + 0x00000070u;
|
|
/* 028D99E4 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t59);
|
|
/* 028D99E8 */ _t60 = cpu->r[1] + 0x00000080u;
|
|
/* 028D99E8 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t60);
|
|
/* 028D99EC */ _t61 = cpu->r[1] + 0x00000068u;
|
|
/* 028D99EC */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t61);
|
|
/* 028D99F0 */ _t62 = cpu->r[1] + 0x00000090u;
|
|
/* 028D99F0 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t62);
|
|
/* 028D99F4 */ _t63 = cpu->r[1] + 0x00000078u;
|
|
/* 028D99F4 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t63);
|
|
/* 028D99F8 */ _t64 = cpu->r[1] + 0x00000088u;
|
|
/* 028D99F8 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t64);
|
|
/* 028D99FC */ _t65 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D99FC */ _t66 = _t65 & 0x00000001u;
|
|
/* 028D99FC */ if (_t66) goto L_028D9A00; // else: addr-0 trap, fall-through
|
|
L_028D9A00: ; // 0x28d9a00
|
|
/* 028D9A00 */ _t67 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028D9A00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028D9A04 */ cpu->lr = cpu->r[0];
|
|
/* 028D9A08 */ cpu->r[1] = cpu->r[1] + 0x00000098u;
|
|
/* 028D9A0C */ return;
|
|
L_028D9A10: ; // 0x28d9a10
|
|
/* 028D9A10 */ _t68 = cpu->r[27] + 0x00000010u;
|
|
/* 028D9A10 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t68);
|
|
/* 028D9A14 */ _t69 = cpu->r[26] + 0x00000010u;
|
|
/* 028D9A14 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t69);
|
|
/* 028D9A18 */ _t70 = cpu->r[27] + 0x00000008u;
|
|
/* 028D9A18 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t70);
|
|
/* 028D9A1C */ cpu->f[0] = fma(cpu->f[13], cpu->f[31], cpu->f[0]);
|
|
/* 028D9A20 */ _t71 = cpu->r[27] + 0x00000004u;
|
|
/* 028D9A20 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t71);
|
|
/* 028D9A24 */ _t72 = cpu->r[26] + 0x0000000Cu;
|
|
/* 028D9A24 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t72);
|
|
/* 028D9A28 */ _t73 = cpu->r[27] + 0x00000010u;
|
|
/* 028D9A28 */ rbrew_write_f32(cpu->mem, _t73, cpu->f[0]);
|
|
/* 028D9A2C */ _t74 = cpu->r[26] + 0x00000000u;
|
|
/* 028D9A2C */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t74);
|
|
/* 028D9A30 */ _t75 = cpu->r[26] + 0x00000004u;
|
|
/* 028D9A30 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t75);
|
|
/* 028D9A34 */ _t76 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028D9A34 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t76);
|
|
/* 028D9A38 */ cpu->f[8] = fma(cpu->f[7], cpu->f[31], cpu->f[8]);
|
|
/* 028D9A3C */ _t77 = cpu->r[26] + 0x00000008u;
|
|
/* 028D9A3C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t77);
|
|
/* 028D9A40 */ cpu->f[10] = fma(cpu->f[9], cpu->f[5], cpu->f[10]);
|
|
/* 028D9A44 */ _t78 = cpu->r[27] + 0x00000000u;
|
|
/* 028D9A44 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t78);
|
|
/* 028D9A48 */ cpu->f[12] = fma(cpu->f[11], cpu->f[5], cpu->f[12]);
|
|
/* 028D9A4C */ _t79 = cpu->r[27] + 0x00000004u;
|
|
/* 028D9A4C */ rbrew_write_f32(cpu->mem, _t79, cpu->f[8]);
|
|
/* 028D9A50 */ cpu->f[0] = fma(cpu->f[13], cpu->f[31], cpu->f[0]);
|
|
/* 028D9A54 */ _t80 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028D9A54 */ rbrew_write_f32(cpu->mem, _t80, cpu->f[10]);
|
|
/* 028D9A58 */ _t81 = cpu->r[27] + 0x00000008u;
|
|
/* 028D9A58 */ rbrew_write_f32(cpu->mem, _t81, cpu->f[12]);
|
|
/* 028D9A5C */ _t82 = cpu->r[27] + 0x00000000u;
|
|
/* 028D9A5C */ rbrew_write_f32(cpu->mem, _t82, cpu->f[0]);
|
|
/* 028D9A60 */ /* nop */
|
|
/* 028D9A64 */ _t83 = cpu->r[1] + 0x00000070u;
|
|
/* 028D9A64 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t83);
|
|
/* 028D9A68 */ _t84 = cpu->r[1] + 0x00000080u;
|
|
/* 028D9A68 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t84);
|
|
/* 028D9A6C */ _t85 = cpu->r[1] + 0x00000068u;
|
|
/* 028D9A6C */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t85);
|
|
/* 028D9A70 */ _t86 = cpu->r[1] + 0x00000090u;
|
|
/* 028D9A70 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t86);
|
|
/* 028D9A74 */ _t87 = cpu->r[1] + 0x00000078u;
|
|
/* 028D9A74 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t87);
|
|
/* 028D9A78 */ _t88 = cpu->r[1] + 0x00000088u;
|
|
/* 028D9A78 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t88);
|
|
/* 028D9A7C */ _t89 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9A7C */ _t90 = _t89 & 0x00000001u;
|
|
/* 028D9A7C */ if (_t90) goto L_028D9A80; // else: addr-0 trap, fall-through
|
|
L_028D9A80: ; // 0x28d9a80
|
|
/* 028D9A80 */ _t91 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028D9A80 */ cpu->r[0] = rbrew_read32(cpu->mem, _t91);
|
|
/* 028D9A84 */ cpu->lr = cpu->r[0];
|
|
/* 028D9A88 */ cpu->r[1] = cpu->r[1] + 0x00000098u;
|
|
/* 028D9A8C */ return;
|
|
L_028D9A90: ; // 0x28d9a90
|
|
/* 028D9A90 */ _t92 = cpu->r[26] + 0x00000000u;
|
|
/* 028D9A90 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t92);
|
|
/* 028D9A94 */ _t93 = cpu->r[26] + 0x00000010u;
|
|
/* 028D9A94 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t93);
|
|
/* 028D9A98 */ cpu->f[11] = cpu->f[10] * cpu->f[31];
|
|
/* 028D9A9C */ _t94 = cpu->r[27] + 0x00000004u;
|
|
/* 028D9A9C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t94);
|
|
/* 028D9AA0 */ cpu->f[7] = cpu->f[8] * cpu->f[31];
|
|
/* 028D9AA4 */ _t95 = cpu->r[27] + 0x00000010u;
|
|
/* 028D9AA4 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t95);
|
|
/* 028D9AA8 */ cpu->f[13] = cpu->f[11] - cpu->f[12];
|
|
/* 028D9AAC */ _t96 = cpu->r[26] + 0x00000004u;
|
|
/* 028D9AAC */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t96);
|
|
/* 028D9AB0 */ cpu->f[10] = cpu->f[7] - cpu->f[9];
|
|
/* 028D9AB4 */ cpu->f[4] = cpu->f[8] * cpu->f[5];
|
|
/* 028D9AB8 */ /* nop */
|
|
/* 028D9ABC */ _t97 = cpu->r[26] + 0x00000008u;
|
|
/* 028D9ABC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t97);
|
|
/* 028D9AC0 */ /* nop */
|
|
/* 028D9AC4 */ _t98 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028D9AC4 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t98);
|
|
/* 028D9AC8 */ cpu->f[5] = cpu->f[0] * cpu->f[5];
|
|
/* 028D9ACC */ _t99 = cpu->r[26] + 0x0000000Cu;
|
|
/* 028D9ACC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t99);
|
|
/* 028D9AD0 */ cpu->f[8] = cpu->f[4] - cpu->f[10];
|
|
/* 028D9AD4 */ cpu->f[13] = cpu->f[0] * cpu->f[31];
|
|
/* 028D9AD8 */ _t100 = cpu->r[27] + 0x00000008u;
|
|
/* 028D9AD8 */ cpu->f[6] = rbrew_read_f32(cpu->mem, _t100);
|
|
/* 028D9ADC */ /* nop */
|
|
/* 028D9AE0 */ _t101 = cpu->r[27] + 0x00000000u;
|
|
/* 028D9AE0 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t101);
|
|
/* 028D9AE4 */ cpu->f[11] = cpu->f[5] - cpu->f[6];
|
|
/* 028D9AE8 */ _t102 = cpu->r[27] + 0x00000010u;
|
|
/* 028D9AE8 */ rbrew_write_f32(cpu->mem, _t102, cpu->f[12]);
|
|
/* 028D9AEC */ cpu->f[8] = cpu->f[13] - cpu->f[7];
|
|
/* 028D9AF0 */ _t103 = cpu->r[27] + 0x00000004u;
|
|
/* 028D9AF0 */ rbrew_write_f32(cpu->mem, _t103, cpu->f[3]);
|
|
/* 028D9AF4 */ /* nop */
|
|
/* 028D9AF8 */ _t104 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028D9AF8 */ rbrew_write_f32(cpu->mem, _t104, cpu->f[9]);
|
|
/* 028D9AFC */ /* nop */
|
|
/* 028D9B00 */ _t105 = cpu->r[27] + 0x00000008u;
|
|
/* 028D9B00 */ rbrew_write_f32(cpu->mem, _t105, cpu->f[10]);
|
|
/* 028D9B04 */ _t106 = cpu->r[27] + 0x00000000u;
|
|
/* 028D9B04 */ rbrew_write_f32(cpu->mem, _t106, cpu->f[9]);
|
|
/* 028D9B08 */ /* nop */
|
|
/* 028D9B0C */ _t107 = cpu->r[1] + 0x00000070u;
|
|
/* 028D9B0C */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t107);
|
|
/* 028D9B10 */ _t108 = cpu->r[1] + 0x00000080u;
|
|
/* 028D9B10 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t108);
|
|
/* 028D9B14 */ _t109 = cpu->r[1] + 0x00000068u;
|
|
/* 028D9B14 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t109);
|
|
/* 028D9B18 */ _t110 = cpu->r[1] + 0x00000090u;
|
|
/* 028D9B18 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t110);
|
|
/* 028D9B1C */ _t111 = cpu->r[1] + 0x00000078u;
|
|
/* 028D9B1C */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t111);
|
|
/* 028D9B20 */ _t112 = cpu->r[1] + 0x00000088u;
|
|
/* 028D9B20 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t112);
|
|
/* 028D9B24 */ _t113 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9B24 */ _t114 = _t113 & 0x00000001u;
|
|
/* 028D9B24 */ if (_t114) goto L_028D9B28; // else: addr-0 trap, fall-through
|
|
L_028D9B28: ; // 0x28d9b28
|
|
/* 028D9B28 */ _t115 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028D9B28 */ cpu->r[0] = rbrew_read32(cpu->mem, _t115);
|
|
/* 028D9B2C */ cpu->lr = cpu->r[0];
|
|
/* 028D9B30 */ cpu->r[1] = cpu->r[1] + 0x00000098u;
|
|
/* 028D9B34 */ return;
|
|
}
|
|
|
|
// fn_028D9B38 @ 0x28d9b38
|
|
void Gambit_fn_028D9B38(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89;
|
|
|
|
L_028D9B38: ; // 0x28d9b38
|
|
/* 028D9B38 */ _t0 = cpu->r[1] + 0xFFFFFF78u;
|
|
/* 028D9B38 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D9B38 */ cpu->r[1] = _t0;
|
|
/* 028D9B3C */ _t1 = cpu->r[1] + 0x00000058u;
|
|
/* 028D9B3C */ rbrew_write_f64(cpu->mem, _t1, cpu->f[29]);
|
|
/* 028D9B40 */ /* nop */
|
|
/* 028D9B44 */ _t2 = cpu->r[1] + 0x00000068u;
|
|
/* 028D9B44 */ rbrew_write_f64(cpu->mem, _t2, cpu->f[30]);
|
|
/* 028D9B48 */ _t3 = cpu->r[1] + 0x00000060u;
|
|
/* 028D9B48 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[29]);
|
|
/* 028D9B4C */ /* nop */
|
|
/* 028D9B50 */ _t4 = cpu->r[1] + 0x00000078u;
|
|
/* 028D9B50 */ rbrew_write_f64(cpu->mem, _t4, cpu->f[31]);
|
|
/* 028D9B54 */ _t5 = cpu->r[1] + 0x00000070u;
|
|
/* 028D9B54 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[30]);
|
|
/* 028D9B58 */ cpu->r[0] = cpu->lr;
|
|
/* 028D9B5C */ /* nop */
|
|
/* 028D9B60 */ cpu->f[29] = cpu->f[1];
|
|
/* 028D9B64 */ cpu->r[30] = cpu->r[5];
|
|
/* 028D9B68 */ cpu->f[30] = cpu->f[2];
|
|
/* 028D9B6C */ cpu->r[5] = 0x00000014u;
|
|
/* 028D9B70 */ cpu->r[31] = cpu->r[3];
|
|
/* 028D9B74 */ /* nop */
|
|
/* 028D9B78 */ _t6 = cpu->r[1] + 0x00000080u;
|
|
/* 028D9B78 */ rbrew_write_f32(cpu->mem, _t6, cpu->f[31]);
|
|
/* 028D9B7C */ cpu->r[3] = cpu->r[1] + 0x00000028u;
|
|
/* 028D9B80 */ _t7 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028D9B80 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028D9B84 */ cpu->r[29] = cpu->r[4];
|
|
/* 028D9B88 */ cpu->r[4] = 0x00000000u;
|
|
/* 028D9B8C */ cpu->f[31] = cpu->f[3];
|
|
/* 028D9B90 */ rbrew_dispatch(cpu, 0x02d0a6f0u);
|
|
/* 028D9B94 */ cpu->r[6] = 0x10140000u;
|
|
/* 028D9B98 */ _t8 = cpu->r[6] + 0xFFFFAFF4u;
|
|
/* 028D9B98 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028D9B9C */ cpu->f[13] = cpu->f[0] * cpu->f[29];
|
|
/* 028D9BA0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[0]);
|
|
/* 028D9BA4 */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9BA4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028D9BA4 */ if (_t10) goto L_028D9BA8; else goto L_028D9BC4;
|
|
L_028D9BA8: ; // 0x28d9ba8
|
|
/* 028D9BA8 */ cpu->f[12] = (uint32_t)(int32_t)cpu->f[13];
|
|
/* 028D9BAC */ cpu->r[0] = cpu->r[1] + 0x00000010u;
|
|
/* 028D9BB0 */ /* nop */
|
|
/* 028D9BB4 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028D9BB4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028D9BB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D9BBC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D9BBC */ _t13 = _t12 & 0x00000001u;
|
|
/* 028D9BBC */ if (_t13) goto L_028D9BE4; else goto L_028D9BC0;
|
|
L_028D9BC0: ; // 0x28d9bc0
|
|
/* 028D9BC0 */ goto L_028D9BE8;
|
|
L_028D9BC4: ; // 0x28d9bc4
|
|
/* 028D9BC4 */ cpu->f[13] = cpu->f[13] - cpu->f[0];
|
|
/* 028D9BC8 */ cpu->f[6] = (uint32_t)(int32_t)cpu->f[13];
|
|
/* 028D9BCC */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028D9BD0 */ /* nop */
|
|
/* 028D9BD4 */ _t14 = cpu->r[1] + 0x00000010u;
|
|
/* 028D9BD4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028D9BD8 */ cpu->r[12] = cpu->r[4] + 0x80000000u;
|
|
/* 028D9BDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028D9BE0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D9BE0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028D9BE0 */ if (_t16) goto L_028D9BE4; else goto L_028D9BE8;
|
|
L_028D9BE4: ; // 0x28d9be4
|
|
/* 028D9BE4 */ cpu->r[12] = 0x00000001u;
|
|
L_028D9BE8: ; // 0x28d9be8
|
|
/* 028D9BE8 */ cpu->f[11] = cpu->f[0] * cpu->f[30];
|
|
/* 028D9BEC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[11], cpu->f[0]);
|
|
/* 028D9BF0 */ _t17 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9BF0 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028D9BF0 */ if (_t18) goto L_028D9BF4; else goto L_028D9C10;
|
|
L_028D9BF4: ; // 0x28d9bf4
|
|
/* 028D9BF4 */ cpu->f[7] = (uint32_t)(int32_t)cpu->f[11];
|
|
/* 028D9BF8 */ cpu->r[0] = cpu->r[1] + 0x00000010u;
|
|
/* 028D9BFC */ /* nop */
|
|
/* 028D9C00 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028D9C00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028D9C04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D9C08 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D9C08 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028D9C08 */ if (_t21) goto L_028D9C30; else goto L_028D9C0C;
|
|
L_028D9C0C: ; // 0x28d9c0c
|
|
/* 028D9C0C */ goto L_028D9C34;
|
|
L_028D9C10: ; // 0x28d9c10
|
|
/* 028D9C10 */ cpu->f[8] = cpu->f[11] - cpu->f[0];
|
|
/* 028D9C14 */ cpu->f[9] = (uint32_t)(int32_t)cpu->f[8];
|
|
/* 028D9C18 */ cpu->r[9] = cpu->r[1] + 0x00000010u;
|
|
/* 028D9C1C */ /* nop */
|
|
/* 028D9C20 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028D9C20 */ cpu->r[6] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028D9C24 */ cpu->r[0] = cpu->r[6] + 0x80000000u;
|
|
/* 028D9C28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028D9C2C */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D9C2C */ _t24 = _t23 & 0x00000001u;
|
|
/* 028D9C2C */ if (_t24) goto L_028D9C30; else goto L_028D9C34;
|
|
L_028D9C30: ; // 0x28d9c30
|
|
/* 028D9C30 */ cpu->r[0] = 0x00000001u;
|
|
L_028D9C34: ; // 0x28d9c34
|
|
/* 028D9C34 */ _t25 = cpu->r[1] + 0x00000014u;
|
|
/* 028D9C34 */ rbrew_write32(cpu->mem, _t25, cpu->r[12]);
|
|
/* 028D9C38 */ cpu->r[8] = 0x43300000u;
|
|
/* 028D9C3C */ cpu->r[7] = 0x10140000u;
|
|
/* 028D9C40 */ _t26 = cpu->r[1] + 0x00000010u;
|
|
/* 028D9C40 */ rbrew_write32(cpu->mem, _t26, cpu->r[8]);
|
|
/* 028D9C44 */ _t27 = cpu->r[1] + 0x00000010u;
|
|
/* 028D9C44 */ cpu->f[8] = rbrew_read_f64(cpu->mem, _t27);
|
|
/* 028D9C48 */ _t28 = cpu->r[7] + 0xFFFFAFF8u;
|
|
/* 028D9C48 */ cpu->f[13] = rbrew_read_f64(cpu->mem, _t28);
|
|
/* 028D9C4C */ _t29 = cpu->r[1] + 0x00000014u;
|
|
/* 028D9C4C */ rbrew_write32(cpu->mem, _t29, cpu->r[0]);
|
|
/* 028D9C50 */ _t30 = cpu->r[1] + 0x00000010u;
|
|
/* 028D9C50 */ cpu->f[7] = rbrew_read_f64(cpu->mem, _t30);
|
|
/* 028D9C54 */ cpu->f[10] = cpu->f[8] - cpu->f[13];
|
|
/* 028D9C58 */ cpu->r[6] = 0x028E0000u;
|
|
/* 028D9C5C */ cpu->f[9] = cpu->f[7] - cpu->f[13];
|
|
/* 028D9C60 */ cpu->r[7] = cpu->r[29] + cpu->r[0];
|
|
/* 028D9C64 */ cpu->f[10] = (double)(float)cpu->f[10];
|
|
/* 028D9C68 */ cpu->r[28] = cpu->r[7] + 0xFFFFFFFFu;
|
|
/* 028D9C6C */ cpu->r[6] = cpu->r[6] + 0xFFFFA34Cu;
|
|
/* 028D9C70 */ cpu->f[13] = (double)(float)cpu->f[9];
|
|
/* 028D9C74 */ cpu->r[29] = cpu->r[29] - cpu->r[12];
|
|
/* 028D9C78 */ cpu->r[5] = 0x00000008u;
|
|
/* 028D9C7C */ cpu->r[4] = 0x00000002u;
|
|
/* 028D9C80 */ cpu->r[3] = cpu->r[1] + 0x00000018u;
|
|
/* 028D9C84 */ cpu->f[30] = cpu->f[10] + cpu->f[13];
|
|
/* 028D9C88 */ Gambit_fn_02C82E00(cpu);
|
|
/* 028D9C8C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[28]);
|
|
/* 028D9C90 */ _t31 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D9C90 */ rbrew_write32(cpu->mem, _t31, cpu->r[28]);
|
|
/* 028D9C94 */ _t32 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D9C94 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028D9C94 */ if (_t33) goto L_028D9CA4; else goto L_028D9C98;
|
|
L_028D9C98: ; // 0x28d9c98
|
|
/* 028D9C98 */ _t34 = cpu->r[1] + 0x00000018u;
|
|
/* 028D9C98 */ rbrew_write32(cpu->mem, _t34, cpu->r[29]);
|
|
/* 028D9C9C */ cpu->r[29] = 0x00000000u;
|
|
/* 028D9CA0 */ goto L_028D9CC8;
|
|
L_028D9CA4: ; // 0x28d9ca4
|
|
/* 028D9CA4 */ _t35 = cpu->r[1] + 0x00000020u;
|
|
/* 028D9CA4 */ rbrew_write32(cpu->mem, _t35, cpu->r[29]);
|
|
/* 028D9CA8 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028D9CAC */ cpu->r[8] = 0x00000000u;
|
|
/* 028D9CB0 */ _t36 = cpu->r[1] + 0x00000024u;
|
|
/* 028D9CB0 */ rbrew_write32(cpu->mem, _t36, cpu->r[0]);
|
|
/* 028D9CB4 */ _t37 = cpu->r[1] + 0x00000018u;
|
|
/* 028D9CB4 */ rbrew_write32(cpu->mem, _t37, cpu->r[8]);
|
|
/* 028D9CB8 */ cpu->r[29] = cpu->r[8];
|
|
/* 028D9CBC */ goto L_028D9CC8;
|
|
L_028D9CC0: ; // 0x28d9cc0
|
|
/* 028D9CC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D9CC4 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D9CC4 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028D9CC4 */ if (_t39) goto L_028D9CC8; else goto L_028D9CDC;
|
|
L_028D9CC8: ; // 0x28d9cc8
|
|
/* 028D9CC8 */ cpu->r[10] = 0x00000000u;
|
|
/* 028D9CCC */ cpu->r[28] = 0xFFFFFFFFu;
|
|
/* 028D9CD0 */ cpu->r[26] = cpu->r[1] + 0x00000028u;
|
|
/* 028D9CD4 */ cpu->r[27] = cpu->r[10];
|
|
/* 028D9CD8 */ goto L_028D9CE0;
|
|
L_028D9CDC: ; // 0x28d9cdc
|
|
/* 028D9CDC */ cpu->r[10] = 0x00000003u;
|
|
L_028D9CE0: ; // 0x28d9ce0
|
|
/* 028D9CE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028D9CE4 */ cpu->r[9] = 0x00000000u;
|
|
/* 028D9CE8 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D9CE8 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028D9CE8 */ if (_t41) goto L_028D9CEC; else goto L_028D9CF0;
|
|
L_028D9CEC: ; // 0x28d9cec
|
|
/* 028D9CEC */ cpu->r[9] = 0x00000003u;
|
|
L_028D9CF0: ; // 0x28d9cf0
|
|
/* 028D9CF0 */ _t42 = cpu->r[1] + 0x00000008u;
|
|
/* 028D9CF0 */ rbrew_write32(cpu->mem, _t42, cpu->r[28]);
|
|
/* 028D9CF4 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028D9CF8 */ cpu->r[4] = cpu->r[29];
|
|
/* 028D9CFC */ _t43 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028D9CFC */ rbrew_write32(cpu->mem, _t43, cpu->r[27]);
|
|
/* 028D9D00 */ Gambit_fn_028D9370(cpu);
|
|
/* 028D9D04 */ cpu->r[11] = rbrew_rlwinm(cpu->r[10], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028D9D08 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028D9D0C */ cpu->f[1] = cpu->f[30];
|
|
/* 028D9D10 */ cpu->r[6] = cpu->r[1] + 0x00000018u;
|
|
/* 028D9D14 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028D9D18 */ cpu->r[4] = cpu->r[26] + cpu->r[0];
|
|
/* 028D9D1C */ cpu->r[3] = cpu->r[26] + cpu->r[11];
|
|
/* 028D9D20 */ Gambit_fn_028D9620(cpu);
|
|
/* 028D9D24 */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 028D9D28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000002u);
|
|
/* 028D9D2C */ _t44 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9D2C */ _t45 = _t44 & 0x00000001u;
|
|
/* 028D9D2C */ if (_t45) goto L_028D9CC0; else goto L_028D9D30;
|
|
L_028D9D30: ; // 0x28d9d30
|
|
/* 028D9D30 */ _t46 = cpu->r[30] + 0x00000000u;
|
|
/* 028D9D30 */ cpu->r[5] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028D9D34 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], 0x00000001u);
|
|
/* 028D9D38 */ _t47 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9D38 */ _t48 = _t47 & 0x00000001u;
|
|
/* 028D9D38 */ if (_t48) goto L_028D9D70; else goto L_028D9D3C;
|
|
L_028D9D3C: ; // 0x28d9d3c
|
|
/* 028D9D3C */ _t49 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D9D3C */ _t50 = _t49 & 0x00000001u;
|
|
/* 028D9D3C */ if (_t50) goto L_028D9DC0; else goto L_028D9D40;
|
|
L_028D9D40: ; // 0x28d9d40
|
|
/* 028D9D40 */ /* nop */
|
|
/* 028D9D44 */ _t51 = cpu->r[1] + 0x00000060u;
|
|
/* 028D9D44 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t51);
|
|
/* 028D9D48 */ _t52 = cpu->r[1] + 0x00000070u;
|
|
/* 028D9D48 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 028D9D4C */ _t53 = cpu->r[1] + 0x00000058u;
|
|
/* 028D9D4C */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t53);
|
|
/* 028D9D50 */ _t54 = cpu->r[1] + 0x00000080u;
|
|
/* 028D9D50 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t54);
|
|
/* 028D9D54 */ _t55 = cpu->r[1] + 0x00000068u;
|
|
/* 028D9D54 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t55);
|
|
/* 028D9D58 */ _t56 = cpu->r[1] + 0x00000078u;
|
|
/* 028D9D58 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t56);
|
|
/* 028D9D5C */ _t57 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9D5C */ _t58 = _t57 & 0x00000001u;
|
|
/* 028D9D5C */ if (_t58) goto L_028D9D60; // else: addr-0 trap, fall-through
|
|
L_028D9D60: ; // 0x28d9d60
|
|
/* 028D9D60 */ _t59 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028D9D60 */ cpu->r[0] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028D9D64 */ cpu->lr = cpu->r[0];
|
|
/* 028D9D68 */ cpu->r[1] = cpu->r[1] + 0x00000088u;
|
|
/* 028D9D6C */ return;
|
|
L_028D9D70: ; // 0x28d9d70
|
|
/* 028D9D70 */ _t60 = cpu->r[1] + 0x00000028u;
|
|
/* 028D9D70 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t60);
|
|
/* 028D9D74 */ _t61 = cpu->r[31] + 0x00000004u;
|
|
/* 028D9D74 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t61);
|
|
/* 028D9D78 */ _t62 = cpu->r[1] + 0x00000034u;
|
|
/* 028D9D78 */ cpu->f[6] = rbrew_read_f32(cpu->mem, _t62);
|
|
/* 028D9D7C */ cpu->f[12] = fma(cpu->f[11], cpu->f[31], cpu->f[12]);
|
|
/* 028D9D80 */ _t63 = cpu->r[31] + 0x00000000u;
|
|
/* 028D9D80 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t63);
|
|
/* 028D9D84 */ cpu->f[7] = fma(cpu->f[6], cpu->f[31], cpu->f[7]);
|
|
/* 028D9D88 */ _t64 = cpu->r[31] + 0x00000004u;
|
|
/* 028D9D88 */ rbrew_write_f32(cpu->mem, _t64, cpu->f[12]);
|
|
/* 028D9D8C */ _t65 = cpu->r[31] + 0x00000000u;
|
|
/* 028D9D8C */ rbrew_write_f32(cpu->mem, _t65, cpu->f[7]);
|
|
/* 028D9D90 */ /* nop */
|
|
/* 028D9D94 */ _t66 = cpu->r[1] + 0x00000060u;
|
|
/* 028D9D94 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t66);
|
|
/* 028D9D98 */ _t67 = cpu->r[1] + 0x00000070u;
|
|
/* 028D9D98 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t67);
|
|
/* 028D9D9C */ _t68 = cpu->r[1] + 0x00000058u;
|
|
/* 028D9D9C */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t68);
|
|
/* 028D9DA0 */ _t69 = cpu->r[1] + 0x00000080u;
|
|
/* 028D9DA0 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t69);
|
|
/* 028D9DA4 */ _t70 = cpu->r[1] + 0x00000068u;
|
|
/* 028D9DA4 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t70);
|
|
/* 028D9DA8 */ _t71 = cpu->r[1] + 0x00000078u;
|
|
/* 028D9DA8 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t71);
|
|
/* 028D9DAC */ _t72 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9DAC */ _t73 = _t72 & 0x00000001u;
|
|
/* 028D9DAC */ if (_t73) goto L_028D9DB0; // else: addr-0 trap, fall-through
|
|
L_028D9DB0: ; // 0x28d9db0
|
|
/* 028D9DB0 */ _t74 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028D9DB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t74);
|
|
/* 028D9DB4 */ cpu->lr = cpu->r[0];
|
|
/* 028D9DB8 */ cpu->r[1] = cpu->r[1] + 0x00000088u;
|
|
/* 028D9DBC */ return;
|
|
L_028D9DC0: ; // 0x28d9dc0
|
|
/* 028D9DC0 */ _t75 = cpu->r[1] + 0x00000028u;
|
|
/* 028D9DC0 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t75);
|
|
/* 028D9DC4 */ _t76 = cpu->r[1] + 0x00000034u;
|
|
/* 028D9DC4 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t76);
|
|
/* 028D9DC8 */ cpu->f[9] = cpu->f[11] * cpu->f[31];
|
|
/* 028D9DCC */ _t77 = cpu->r[31] + 0x00000004u;
|
|
/* 028D9DCC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t77);
|
|
/* 028D9DD0 */ cpu->f[11] = cpu->f[12] * cpu->f[31];
|
|
/* 028D9DD4 */ _t78 = cpu->r[31] + 0x00000000u;
|
|
/* 028D9DD4 */ cpu->f[6] = rbrew_read_f32(cpu->mem, _t78);
|
|
/* 028D9DD8 */ cpu->f[7] = cpu->f[9] - cpu->f[0];
|
|
/* 028D9DDC */ cpu->f[8] = cpu->f[11] - cpu->f[6];
|
|
/* 028D9DE0 */ /* nop */
|
|
/* 028D9DE4 */ /* nop */
|
|
/* 028D9DE8 */ _t79 = cpu->r[31] + 0x00000004u;
|
|
/* 028D9DE8 */ rbrew_write_f32(cpu->mem, _t79, cpu->f[9]);
|
|
/* 028D9DEC */ _t80 = cpu->r[31] + 0x00000000u;
|
|
/* 028D9DEC */ rbrew_write_f32(cpu->mem, _t80, cpu->f[10]);
|
|
/* 028D9DF0 */ /* nop */
|
|
/* 028D9DF4 */ _t81 = cpu->r[1] + 0x00000060u;
|
|
/* 028D9DF4 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t81);
|
|
/* 028D9DF8 */ _t82 = cpu->r[1] + 0x00000070u;
|
|
/* 028D9DF8 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t82);
|
|
/* 028D9DFC */ _t83 = cpu->r[1] + 0x00000058u;
|
|
/* 028D9DFC */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t83);
|
|
/* 028D9E00 */ _t84 = cpu->r[1] + 0x00000080u;
|
|
/* 028D9E00 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t84);
|
|
/* 028D9E04 */ _t85 = cpu->r[1] + 0x00000068u;
|
|
/* 028D9E04 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t85);
|
|
/* 028D9E08 */ _t86 = cpu->r[1] + 0x00000078u;
|
|
/* 028D9E08 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t86);
|
|
/* 028D9E0C */ _t87 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9E0C */ _t88 = _t87 & 0x00000001u;
|
|
/* 028D9E0C */ if (_t88) goto L_028D9E10; // else: addr-0 trap, fall-through
|
|
L_028D9E10: ; // 0x28d9e10
|
|
/* 028D9E10 */ _t89 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028D9E10 */ cpu->r[0] = rbrew_read32(cpu->mem, _t89);
|
|
/* 028D9E14 */ cpu->lr = cpu->r[0];
|
|
/* 028D9E18 */ cpu->r[1] = cpu->r[1] + 0x00000088u;
|
|
/* 028D9E1C */ return;
|
|
}
|
|
|
|
// fn_028D9E20 @ 0x28d9e20
|
|
void Gambit_fn_028D9E20(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112, _t113, _t114, _t115, _t116, _t117, _t118, _t119, _t120, _t121, _t122, _t123, _t124, _t125, _t126, _t127, _t128, _t129, _t130, _t131, _t132, _t133, _t134, _t135, _t136, _t137, _t138, _t139, _t140, _t141, _t142, _t143, _t144, _t145, _t146, _t147, _t148, _t149, _t150, _t151, _t152, _t153, _t154, _t155, _t156, _t157, _t158, _t159, _t160, _t161, _t162, _t163, _t164, _t165, _t166, _t167, _t168, _t169, _t170, _t171, _t172, _t173, _t174, _t175, _t176, _t177, _t178, _t179, _t180, _t181, _t182, _t183, _t184, _t185, _t186, _t187, _t188, _t189, _t190, _t191, _t192, _t193, _t194, _t195, _t196, _t197, _t198, _t199, _t200, _t201, _t202, _t203, _t204, _t205, _t206, _t207, _t208, _t209, _t210, _t211, _t212, _t213, _t214, _t215, _t216, _t217, _t218, _t219, _t220, _t221, _t222, _t223, _t224, _t225, _t226, _t227, _t228;
|
|
|
|
L_028D9E20: ; // 0x28d9e20
|
|
/* 028D9E20 */ _t0 = cpu->r[1] + 0xFFFFFF78u;
|
|
/* 028D9E20 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028D9E20 */ cpu->r[1] = _t0;
|
|
/* 028D9E24 */ _t1 = cpu->r[1] + 0x00000078u;
|
|
/* 028D9E24 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028D9E28 */ /* nop */
|
|
/* 028D9E2C */ _t2 = cpu->r[1] + 0x00000038u;
|
|
/* 028D9E2C */ rbrew_write_f64(cpu->mem, _t2, cpu->f[27]);
|
|
/* 028D9E30 */ /* nop */
|
|
/* 028D9E34 */ _t3 = cpu->r[1] + 0x00000058u;
|
|
/* 028D9E34 */ rbrew_write_f64(cpu->mem, _t3, cpu->f[29]);
|
|
/* 028D9E38 */ /* nop */
|
|
/* 028D9E3C */ _t4 = cpu->r[1] + 0x00000040u;
|
|
/* 028D9E3C */ rbrew_write_f32(cpu->mem, _t4, cpu->f[27]);
|
|
/* 028D9E40 */ cpu->f[27] = cpu->f[3];
|
|
/* 028D9E44 */ _t5 = cpu->r[1] + 0x00000020u;
|
|
/* 028D9E44 */ rbrew_write32(cpu->mem, _t5, cpu->r[30]);
|
|
/* 028D9E48 */ _t6 = cpu->r[1] + 0x00000028u;
|
|
/* 028D9E48 */ rbrew_write_f64(cpu->mem, _t6, cpu->f[26]);
|
|
/* 028D9E4C */ cpu->r[0] = cpu->lr;
|
|
/* 028D9E50 */ _t7 = cpu->r[1] + 0x00000068u;
|
|
/* 028D9E50 */ rbrew_write_f64(cpu->mem, _t7, cpu->f[30]);
|
|
/* 028D9E54 */ /* nop */
|
|
/* 028D9E58 */ _t8 = cpu->r[1] + 0x00000024u;
|
|
/* 028D9E58 */ rbrew_write32(cpu->mem, _t8, cpu->r[31]);
|
|
/* 028D9E5C */ /* nop */
|
|
/* 028D9E60 */ _t9 = cpu->r[1] + 0x00000080u;
|
|
/* 028D9E60 */ rbrew_write_f32(cpu->mem, _t9, cpu->f[31]);
|
|
/* 028D9E64 */ cpu->r[31] = cpu->r[6];
|
|
/* 028D9E68 */ _t10 = cpu->r[1] + 0x00000030u;
|
|
/* 028D9E68 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[26]);
|
|
/* 028D9E6C */ _t11 = cpu->r[1] + 0x00000070u;
|
|
/* 028D9E6C */ rbrew_write_f32(cpu->mem, _t11, cpu->f[30]);
|
|
/* 028D9E70 */ cpu->f[26] = cpu->f[1];
|
|
/* 028D9E74 */ _t12 = cpu->r[1] + 0x00000060u;
|
|
/* 028D9E74 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[29]);
|
|
/* 028D9E78 */ cpu->f[30] = cpu->f[2];
|
|
/* 028D9E7C */ _t13 = cpu->r[1] + 0x00000048u;
|
|
/* 028D9E7C */ rbrew_write_f64(cpu->mem, _t13, cpu->f[28]);
|
|
/* 028D9E80 */ cpu->r[30] = cpu->r[5];
|
|
/* 028D9E84 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D9E84 */ rbrew_write32(cpu->mem, _t14, cpu->r[29]);
|
|
/* 028D9E88 */ _t15 = cpu->r[1] + 0x00000018u;
|
|
/* 028D9E88 */ rbrew_write32(cpu->mem, _t15, cpu->r[28]);
|
|
/* 028D9E8C */ /* nop */
|
|
/* 028D9E90 */ _t16 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028D9E90 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 028D9E94 */ cpu->r[12] = 0x10140000u;
|
|
/* 028D9E98 */ _t17 = cpu->r[1] + 0x00000050u;
|
|
/* 028D9E98 */ rbrew_write_f32(cpu->mem, _t17, cpu->f[28]);
|
|
/* 028D9E9C */ cpu->r[29] = cpu->r[4];
|
|
/* 028D9EA0 */ cpu->f[28] = cpu->f[4];
|
|
/* 028D9EA4 */ _t18 = cpu->r[12] + 0xFFFFB008u;
|
|
/* 028D9EA4 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t18);
|
|
/* 028D9EA8 */ cpu->r[28] = cpu->r[3];
|
|
/* 028D9EAC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[5], cpu->f[31]);
|
|
/* 028D9EB0 */ cpu->f[10] = cpu->f[5];
|
|
/* 028D9EB4 */ _t19 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D9EB4 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028D9EB4 */ if (_t20) goto L_028D9EB8; else goto L_028D9EBC;
|
|
L_028D9EB8: ; // 0x28d9eb8
|
|
/* 028D9EB8 */ cpu->f[10] = cpu->f[31];
|
|
L_028D9EBC: ; // 0x28d9ebc
|
|
/* 028D9EBC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[5], cpu->f[31]);
|
|
/* 028D9EC0 */ cpu->f[29] = cpu->f[10] * cpu->f[26];
|
|
/* 028D9EC4 */ _t21 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028D9EC4 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028D9EC4 */ if (_t22) goto L_028D9EC8; else goto L_028D9ED8;
|
|
L_028D9EC8: ; // 0x28d9ec8
|
|
/* 028D9EC8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028D9ECC */ _t23 = cpu->r[11] + 0xFFFFB00Cu;
|
|
/* 028D9ECC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 028D9ED0 */ cpu->f[12] = cpu->f[0] - cpu->f[5];
|
|
/* 028D9ED4 */ cpu->f[26] = cpu->f[26] * cpu->f[12];
|
|
L_028D9ED8: ; // 0x28d9ed8
|
|
/* 028D9ED8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028D9EDC */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D9EDC */ _t25 = _t24 & 0x00000001u;
|
|
/* 028D9EDC */ if (_t25) goto L_028D9EE0; else goto L_028DA034;
|
|
L_028D9EE0: ; // 0x28d9ee0
|
|
/* 028D9EE0 */ _t26 = cpu->r[31] + 0x00000000u;
|
|
/* 028D9EE0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028D9EE4 */ cpu->r[10] = 0x10140000u;
|
|
/* 028D9EE8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000001u);
|
|
/* 028D9EEC */ _t27 = cpu->r[10] + 0xFFFFB010u;
|
|
/* 028D9EEC */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 028D9EF0 */ _t28 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9EF0 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028D9EF0 */ if (_t29) goto L_028D9F4C; else goto L_028D9EF4;
|
|
L_028D9EF4: ; // 0x28d9ef4
|
|
/* 028D9EF4 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028D9EF4 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028D9EF4 */ if (_t31) goto L_028D9FBC; else goto L_028D9EF8;
|
|
L_028D9EF8: ; // 0x28d9ef8
|
|
/* 028D9EF8 */ _t32 = cpu->r[1] + 0x00000018u;
|
|
/* 028D9EF8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028D9EFC */ _t33 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D9EFC */ cpu->r[29] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028D9F00 */ _t34 = cpu->r[1] + 0x00000050u;
|
|
/* 028D9F00 */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t34);
|
|
/* 028D9F04 */ _t35 = cpu->r[1] + 0x00000040u;
|
|
/* 028D9F04 */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t35);
|
|
/* 028D9F08 */ _t36 = cpu->r[1] + 0x00000048u;
|
|
/* 028D9F08 */ cpu->f[28] = rbrew_read_f64(cpu->mem, _t36);
|
|
/* 028D9F0C */ _t37 = cpu->r[1] + 0x00000060u;
|
|
/* 028D9F0C */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 028D9F10 */ _t38 = cpu->r[1] + 0x00000038u;
|
|
/* 028D9F10 */ cpu->f[27] = rbrew_read_f64(cpu->mem, _t38);
|
|
/* 028D9F14 */ _t39 = cpu->r[1] + 0x00000058u;
|
|
/* 028D9F14 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t39);
|
|
/* 028D9F18 */ _t40 = cpu->r[1] + 0x00000080u;
|
|
/* 028D9F18 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t40);
|
|
/* 028D9F1C */ _t41 = cpu->r[1] + 0x00000024u;
|
|
/* 028D9F1C */ cpu->r[31] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028D9F20 */ _t42 = cpu->r[1] + 0x00000078u;
|
|
/* 028D9F20 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t42);
|
|
/* 028D9F24 */ _t43 = cpu->r[1] + 0x00000070u;
|
|
/* 028D9F24 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t43);
|
|
/* 028D9F28 */ _t44 = cpu->r[1] + 0x00000030u;
|
|
/* 028D9F28 */ cpu->f[26] = rbrew_read_f32(cpu->mem, _t44);
|
|
/* 028D9F2C */ _t45 = cpu->r[1] + 0x00000068u;
|
|
/* 028D9F2C */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t45);
|
|
/* 028D9F30 */ _t46 = cpu->r[1] + 0x00000028u;
|
|
/* 028D9F30 */ cpu->f[26] = rbrew_read_f64(cpu->mem, _t46);
|
|
/* 028D9F34 */ _t47 = cpu->r[1] + 0x00000020u;
|
|
/* 028D9F34 */ cpu->r[30] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028D9F38 */ _t48 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9F38 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028D9F38 */ if (_t49) goto L_028D9F3C; // else: addr-0 trap, fall-through
|
|
L_028D9F3C: ; // 0x28d9f3c
|
|
/* 028D9F3C */ _t50 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028D9F3C */ cpu->r[0] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028D9F40 */ cpu->lr = cpu->r[0];
|
|
/* 028D9F44 */ cpu->r[1] = cpu->r[1] + 0x00000088u;
|
|
/* 028D9F48 */ return;
|
|
L_028D9F4C: ; // 0x28d9f4c
|
|
/* 028D9F4C */ _t51 = cpu->r[28] + 0x00000000u;
|
|
/* 028D9F4C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t51);
|
|
/* 028D9F50 */ cpu->f[0] = cpu->f[26] * cpu->f[13];
|
|
/* 028D9F54 */ _t52 = cpu->r[28] + 0x00000004u;
|
|
/* 028D9F54 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 028D9F58 */ cpu->f[12] = cpu->f[12] + cpu->f[0];
|
|
/* 028D9F5C */ cpu->f[13] = cpu->f[13] + cpu->f[0];
|
|
/* 028D9F60 */ _t53 = cpu->r[28] + 0x00000000u;
|
|
/* 028D9F60 */ rbrew_write_f32(cpu->mem, _t53, cpu->f[12]);
|
|
/* 028D9F64 */ _t54 = cpu->r[28] + 0x00000004u;
|
|
/* 028D9F64 */ rbrew_write_f32(cpu->mem, _t54, cpu->f[13]);
|
|
/* 028D9F68 */ _t55 = cpu->r[1] + 0x00000018u;
|
|
/* 028D9F68 */ cpu->r[28] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028D9F6C */ _t56 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D9F6C */ cpu->r[29] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028D9F70 */ _t57 = cpu->r[1] + 0x00000050u;
|
|
/* 028D9F70 */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t57);
|
|
/* 028D9F74 */ _t58 = cpu->r[1] + 0x00000040u;
|
|
/* 028D9F74 */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t58);
|
|
/* 028D9F78 */ _t59 = cpu->r[1] + 0x00000048u;
|
|
/* 028D9F78 */ cpu->f[28] = rbrew_read_f64(cpu->mem, _t59);
|
|
/* 028D9F7C */ _t60 = cpu->r[1] + 0x00000060u;
|
|
/* 028D9F7C */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t60);
|
|
/* 028D9F80 */ _t61 = cpu->r[1] + 0x00000038u;
|
|
/* 028D9F80 */ cpu->f[27] = rbrew_read_f64(cpu->mem, _t61);
|
|
/* 028D9F84 */ _t62 = cpu->r[1] + 0x00000058u;
|
|
/* 028D9F84 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t62);
|
|
/* 028D9F88 */ _t63 = cpu->r[1] + 0x00000080u;
|
|
/* 028D9F88 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t63);
|
|
/* 028D9F8C */ _t64 = cpu->r[1] + 0x00000024u;
|
|
/* 028D9F8C */ cpu->r[31] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028D9F90 */ _t65 = cpu->r[1] + 0x00000078u;
|
|
/* 028D9F90 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t65);
|
|
/* 028D9F94 */ _t66 = cpu->r[1] + 0x00000070u;
|
|
/* 028D9F94 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t66);
|
|
/* 028D9F98 */ _t67 = cpu->r[1] + 0x00000030u;
|
|
/* 028D9F98 */ cpu->f[26] = rbrew_read_f32(cpu->mem, _t67);
|
|
/* 028D9F9C */ _t68 = cpu->r[1] + 0x00000068u;
|
|
/* 028D9F9C */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t68);
|
|
/* 028D9FA0 */ _t69 = cpu->r[1] + 0x00000028u;
|
|
/* 028D9FA0 */ cpu->f[26] = rbrew_read_f64(cpu->mem, _t69);
|
|
/* 028D9FA4 */ _t70 = cpu->r[1] + 0x00000020u;
|
|
/* 028D9FA4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028D9FA8 */ _t71 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028D9FA8 */ _t72 = _t71 & 0x00000001u;
|
|
/* 028D9FA8 */ if (_t72) goto L_028D9FAC; // else: addr-0 trap, fall-through
|
|
L_028D9FAC: ; // 0x28d9fac
|
|
/* 028D9FAC */ _t73 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028D9FAC */ cpu->r[0] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028D9FB0 */ cpu->lr = cpu->r[0];
|
|
/* 028D9FB4 */ cpu->r[1] = cpu->r[1] + 0x00000088u;
|
|
/* 028D9FB8 */ return;
|
|
L_028D9FBC: ; // 0x28d9fbc
|
|
/* 028D9FBC */ cpu->f[0] = cpu->f[26] * cpu->f[13];
|
|
/* 028D9FC0 */ _t74 = cpu->r[28] + 0x00000000u;
|
|
/* 028D9FC0 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t74);
|
|
/* 028D9FC4 */ _t75 = cpu->r[28] + 0x00000004u;
|
|
/* 028D9FC4 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t75);
|
|
/* 028D9FC8 */ cpu->f[9] = cpu->f[0] - cpu->f[8];
|
|
/* 028D9FCC */ cpu->f[13] = cpu->f[0] - cpu->f[11];
|
|
/* 028D9FD0 */ /* nop */
|
|
/* 028D9FD4 */ /* nop */
|
|
/* 028D9FD8 */ _t76 = cpu->r[28] + 0x00000000u;
|
|
/* 028D9FD8 */ rbrew_write_f32(cpu->mem, _t76, cpu->f[10]);
|
|
/* 028D9FDC */ _t77 = cpu->r[28] + 0x00000004u;
|
|
/* 028D9FDC */ rbrew_write_f32(cpu->mem, _t77, cpu->f[9]);
|
|
/* 028D9FE0 */ _t78 = cpu->r[1] + 0x00000018u;
|
|
/* 028D9FE0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t78);
|
|
/* 028D9FE4 */ _t79 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028D9FE4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t79);
|
|
/* 028D9FE8 */ _t80 = cpu->r[1] + 0x00000050u;
|
|
/* 028D9FE8 */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t80);
|
|
/* 028D9FEC */ _t81 = cpu->r[1] + 0x00000040u;
|
|
/* 028D9FEC */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t81);
|
|
/* 028D9FF0 */ _t82 = cpu->r[1] + 0x00000048u;
|
|
/* 028D9FF0 */ cpu->f[28] = rbrew_read_f64(cpu->mem, _t82);
|
|
/* 028D9FF4 */ _t83 = cpu->r[1] + 0x00000060u;
|
|
/* 028D9FF4 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t83);
|
|
/* 028D9FF8 */ _t84 = cpu->r[1] + 0x00000038u;
|
|
/* 028D9FF8 */ cpu->f[27] = rbrew_read_f64(cpu->mem, _t84);
|
|
/* 028D9FFC */ _t85 = cpu->r[1] + 0x00000058u;
|
|
/* 028D9FFC */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t85);
|
|
/* 028DA000 */ _t86 = cpu->r[1] + 0x00000080u;
|
|
/* 028DA000 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t86);
|
|
/* 028DA004 */ _t87 = cpu->r[1] + 0x00000024u;
|
|
/* 028DA004 */ cpu->r[31] = rbrew_read32(cpu->mem, _t87);
|
|
/* 028DA008 */ _t88 = cpu->r[1] + 0x00000078u;
|
|
/* 028DA008 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t88);
|
|
/* 028DA00C */ _t89 = cpu->r[1] + 0x00000070u;
|
|
/* 028DA00C */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t89);
|
|
/* 028DA010 */ _t90 = cpu->r[1] + 0x00000030u;
|
|
/* 028DA010 */ cpu->f[26] = rbrew_read_f32(cpu->mem, _t90);
|
|
/* 028DA014 */ _t91 = cpu->r[1] + 0x00000068u;
|
|
/* 028DA014 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t91);
|
|
/* 028DA018 */ _t92 = cpu->r[1] + 0x00000028u;
|
|
/* 028DA018 */ cpu->f[26] = rbrew_read_f64(cpu->mem, _t92);
|
|
/* 028DA01C */ _t93 = cpu->r[1] + 0x00000020u;
|
|
/* 028DA01C */ cpu->r[30] = rbrew_read32(cpu->mem, _t93);
|
|
/* 028DA020 */ _t94 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DA020 */ _t95 = _t94 & 0x00000001u;
|
|
/* 028DA020 */ if (_t95) goto L_028DA024; // else: addr-0 trap, fall-through
|
|
L_028DA024: ; // 0x28da024
|
|
/* 028DA024 */ _t96 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028DA024 */ cpu->r[0] = rbrew_read32(cpu->mem, _t96);
|
|
/* 028DA028 */ cpu->lr = cpu->r[0];
|
|
/* 028DA02C */ cpu->r[1] = cpu->r[1] + 0x00000088u;
|
|
/* 028DA030 */ return;
|
|
L_028DA034: ; // 0x28da034
|
|
/* 028DA034 */ _t97 = cpu->r[30] + 0x00000008u;
|
|
/* 028DA034 */ cpu->r[7] = rbrew_read32(cpu->mem, _t97);
|
|
/* 028DA038 */ _t98 = cpu->r[7] + 0x00000024u;
|
|
/* 028DA038 */ cpu->r[10] = rbrew_read32(cpu->mem, _t98);
|
|
/* 028DA03C */ cpu->ctr = cpu->r[10];
|
|
/* 028DA040 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DA044 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DA048 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DA04C */ _t99 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA04C */ _t100 = _t99 & 0x00000001u;
|
|
/* 028DA04C */ if (_t100) goto L_028DA0AC; else goto L_028DA050;
|
|
L_028DA050: ; // 0x28da050
|
|
/* 028DA050 */ _t101 = cpu->r[31] + 0x00000000u;
|
|
/* 028DA050 */ cpu->r[9] = rbrew_read32(cpu->mem, _t101);
|
|
/* 028DA054 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], 0x00000001u);
|
|
/* 028DA058 */ _t102 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DA058 */ _t103 = _t102 & 0x00000001u;
|
|
/* 028DA058 */ if (_t103) goto L_028DA078; else goto L_028DA05C;
|
|
L_028DA05C: ; // 0x28da05c
|
|
/* 028DA05C */ _t104 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA05C */ _t105 = _t104 & 0x00000001u;
|
|
/* 028DA05C */ if (_t105) goto L_028DA09C; else goto L_028DA060;
|
|
L_028DA060: ; // 0x28da060
|
|
/* 028DA060 */ cpu->r[8] = 0x10140000u;
|
|
/* 028DA064 */ _t106 = cpu->r[30] + 0x00000014u;
|
|
/* 028DA064 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t106);
|
|
/* 028DA068 */ _t107 = cpu->r[8] + 0xFFFFB004u;
|
|
/* 028DA068 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t107);
|
|
/* 028DA06C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[29]);
|
|
/* 028DA070 */ _t108 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DA070 */ _t109 = _t108 & 0x00000001u;
|
|
/* 028DA070 */ if (_t109) goto L_028DA074; else goto L_028DA0CC;
|
|
L_028DA074: ; // 0x28da074
|
|
/* 028DA074 */ goto L_028DA0C0;
|
|
L_028DA078: ; // 0x28da078
|
|
/* 028DA078 */ _t110 = cpu->r[28] + 0x00000014u;
|
|
/* 028DA078 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t110);
|
|
/* 028DA07C */ cpu->r[8] = 0x10140000u;
|
|
/* 028DA080 */ cpu->f[12] = cpu->f[12] + cpu->f[29];
|
|
/* 028DA084 */ _t111 = cpu->r[8] + 0xFFFFB004u;
|
|
/* 028DA084 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t111);
|
|
/* 028DA088 */ _t112 = cpu->r[28] + 0x00000014u;
|
|
/* 028DA088 */ rbrew_write_f32(cpu->mem, _t112, cpu->f[12]);
|
|
/* 028DA08C */ _t113 = cpu->r[30] + 0x00000014u;
|
|
/* 028DA08C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t113);
|
|
/* 028DA090 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[29]);
|
|
/* 028DA094 */ _t114 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DA094 */ _t115 = _t114 & 0x00000001u;
|
|
/* 028DA094 */ if (_t115) goto L_028DA098; else goto L_028DA0CC;
|
|
L_028DA098: ; // 0x28da098
|
|
/* 028DA098 */ goto L_028DA0C0;
|
|
L_028DA09C: ; // 0x28da09c
|
|
/* 028DA09C */ _t116 = cpu->r[28] + 0x00000014u;
|
|
/* 028DA09C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t116);
|
|
/* 028DA0A0 */ cpu->f[8] = cpu->f[29] - cpu->f[13];
|
|
/* 028DA0A4 */ /* nop */
|
|
/* 028DA0A8 */ _t117 = cpu->r[28] + 0x00000014u;
|
|
/* 028DA0A8 */ rbrew_write_f32(cpu->mem, _t117, cpu->f[9]);
|
|
L_028DA0AC: ; // 0x28da0ac
|
|
/* 028DA0AC */ cpu->r[8] = 0x10140000u;
|
|
/* 028DA0B0 */ _t118 = cpu->r[30] + 0x00000014u;
|
|
/* 028DA0B0 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t118);
|
|
/* 028DA0B4 */ _t119 = cpu->r[8] + 0xFFFFB004u;
|
|
/* 028DA0B4 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t119);
|
|
/* 028DA0B8 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[29]);
|
|
/* 028DA0BC */ _t120 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DA0BC */ _t121 = _t120 & 0x00000001u;
|
|
/* 028DA0BC */ if (_t121) goto L_028DA0C0; else goto L_028DA0CC;
|
|
L_028DA0C0: ; // 0x28da0c0
|
|
/* 028DA0C0 */ cpu->f[11] = cpu->f[31] - cpu->f[12];
|
|
/* 028DA0C4 */ cpu->f[28] = fma(cpu->f[28], cpu->f[11], cpu->f[12]);
|
|
/* 028DA0C8 */ cpu->f[27] = fma(cpu->f[27], cpu->f[11], cpu->f[12]);
|
|
L_028DA0CC: ; // 0x28da0cc
|
|
/* 028DA0CC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[30], cpu->f[29]);
|
|
/* 028DA0D0 */ _t122 = cpu->r[30] + 0x00000008u;
|
|
/* 028DA0D0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t122);
|
|
/* 028DA0D4 */ _t123 = cpu->r[12] + 0x0000002Cu;
|
|
/* 028DA0D4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t123);
|
|
/* 028DA0D8 */ _t124 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DA0D8 */ _t125 = _t124 & 0x00000001u;
|
|
/* 028DA0D8 */ if (_t125) goto L_028DA0DC; else goto L_028DA108;
|
|
L_028DA0DC: ; // 0x28da0dc
|
|
/* 028DA0DC */ cpu->f[8] = cpu->f[31] - cpu->f[29];
|
|
/* 028DA0E0 */ cpu->ctr = cpu->r[5];
|
|
/* 028DA0E4 */ cpu->f[10] = cpu->f[8] - cpu->f[27];
|
|
/* 028DA0E8 */ cpu->f[11] = cpu->f[8] - cpu->f[28];
|
|
/* 028DA0EC */ /* nop */
|
|
/* 028DA0F0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DA0F4 */ /* nop */
|
|
/* 028DA0F8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DA0FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DA100 */ _t126 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA100 */ _t127 = _t126 & 0x00000001u;
|
|
/* 028DA100 */ if (_t127) goto L_028DA104; else goto L_028DA14C;
|
|
L_028DA104: ; // 0x28da104
|
|
/* 028DA104 */ goto L_028DA13C;
|
|
L_028DA108: ; // 0x28da108
|
|
/* 028DA108 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[30], cpu->f[31]);
|
|
/* 028DA10C */ _t128 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DA10C */ _t129 = _t128 & 0x00000001u;
|
|
/* 028DA10C */ if (_t129) goto L_028DA110; else goto L_028DA114;
|
|
L_028DA110: ; // 0x28da110
|
|
/* 028DA110 */ cpu->f[30] = cpu->f[31];
|
|
L_028DA114: ; // 0x28da114
|
|
/* 028DA114 */ cpu->f[8] = cpu->f[31] - cpu->f[30];
|
|
/* 028DA118 */ cpu->ctr = cpu->r[5];
|
|
/* 028DA11C */ cpu->f[10] = cpu->f[8] - cpu->f[27];
|
|
/* 028DA120 */ cpu->f[11] = cpu->f[8] - cpu->f[28];
|
|
/* 028DA124 */ /* nop */
|
|
/* 028DA128 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DA12C */ /* nop */
|
|
/* 028DA130 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DA134 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DA138 */ _t130 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA138 */ _t131 = _t130 & 0x00000001u;
|
|
/* 028DA138 */ if (_t131) goto L_028DA13C; else goto L_028DA14C;
|
|
L_028DA13C: ; // 0x28da13c
|
|
/* 028DA13C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[27], cpu->f[29]);
|
|
/* 028DA140 */ cpu->r[29] = cpu->r[29] + 0xC0000000u;
|
|
/* 028DA144 */ _t132 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA144 */ _t133 = _t132 & 0x00000001u;
|
|
/* 028DA144 */ if (_t133) goto L_028DA148; else goto L_028DA254;
|
|
L_028DA148: ; // 0x28da148
|
|
/* 028DA148 */ goto L_028DA15C;
|
|
L_028DA14C: ; // 0x28da14c
|
|
/* 028DA14C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[27], cpu->f[29]);
|
|
/* 028DA150 */ _t134 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DA150 */ cpu->r[0] = rbrew_read32(cpu->mem, _t134);
|
|
/* 028DA154 */ cpu->r[29] = cpu->r[29] - cpu->r[0];
|
|
/* 028DA158 */ _t135 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA158 */ _t136 = _t135 & 0x00000001u;
|
|
/* 028DA158 */ if (_t136) goto L_028DA15C; else goto L_028DA254;
|
|
L_028DA15C: ; // 0x28da15c
|
|
/* 028DA15C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[28], cpu->f[29]);
|
|
/* 028DA160 */ _t137 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA160 */ _t138 = _t137 & 0x00000001u;
|
|
/* 028DA160 */ if (_t138) goto L_028DA164; else goto L_028DA254;
|
|
L_028DA164: ; // 0x28da164
|
|
/* 028DA164 */ _t139 = cpu->r[30] + 0x00000008u;
|
|
/* 028DA164 */ cpu->r[7] = rbrew_read32(cpu->mem, _t139);
|
|
/* 028DA168 */ _t140 = cpu->r[7] + 0x0000002Cu;
|
|
/* 028DA168 */ cpu->r[9] = rbrew_read32(cpu->mem, _t140);
|
|
/* 028DA16C */ cpu->ctr = cpu->r[9];
|
|
/* 028DA170 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DA174 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DA178 */ _t141 = cpu->r[31] + 0x00000000u;
|
|
/* 028DA178 */ cpu->r[8] = rbrew_read32(cpu->mem, _t141);
|
|
/* 028DA17C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DA180 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DA184 */ cpu->r[4] = cpu->r[29];
|
|
/* 028DA188 */ cpu->f[1] = cpu->f[26];
|
|
/* 028DA18C */ _t142 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA18C */ _t143 = _t142 & 0x00000001u;
|
|
/* 028DA18C */ if (_t143) goto L_028DA1F4; else goto L_028DA190;
|
|
L_028DA190: ; // 0x28da190
|
|
/* 028DA190 */ _t144 = cpu->r[1] + 0x00000008u;
|
|
/* 028DA190 */ rbrew_write32(cpu->mem, _t144, cpu->r[8]);
|
|
/* 028DA194 */ cpu->r[5] = cpu->r[30];
|
|
/* 028DA198 */ cpu->r[6] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA19C */ Gambit_fn_028D905C(cpu);
|
|
/* 028DA1A0 */ _t145 = cpu->r[1] + 0x00000018u;
|
|
/* 028DA1A0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t145);
|
|
/* 028DA1A4 */ _t146 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DA1A4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t146);
|
|
/* 028DA1A8 */ _t147 = cpu->r[1] + 0x00000050u;
|
|
/* 028DA1A8 */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t147);
|
|
/* 028DA1AC */ _t148 = cpu->r[1] + 0x00000040u;
|
|
/* 028DA1AC */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t148);
|
|
/* 028DA1B0 */ _t149 = cpu->r[1] + 0x00000048u;
|
|
/* 028DA1B0 */ cpu->f[28] = rbrew_read_f64(cpu->mem, _t149);
|
|
/* 028DA1B4 */ _t150 = cpu->r[1] + 0x00000060u;
|
|
/* 028DA1B4 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t150);
|
|
/* 028DA1B8 */ _t151 = cpu->r[1] + 0x00000038u;
|
|
/* 028DA1B8 */ cpu->f[27] = rbrew_read_f64(cpu->mem, _t151);
|
|
/* 028DA1BC */ _t152 = cpu->r[1] + 0x00000058u;
|
|
/* 028DA1BC */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t152);
|
|
/* 028DA1C0 */ _t153 = cpu->r[1] + 0x00000080u;
|
|
/* 028DA1C0 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t153);
|
|
/* 028DA1C4 */ _t154 = cpu->r[1] + 0x00000024u;
|
|
/* 028DA1C4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t154);
|
|
/* 028DA1C8 */ _t155 = cpu->r[1] + 0x00000078u;
|
|
/* 028DA1C8 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t155);
|
|
/* 028DA1CC */ _t156 = cpu->r[1] + 0x00000070u;
|
|
/* 028DA1CC */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t156);
|
|
/* 028DA1D0 */ _t157 = cpu->r[1] + 0x00000030u;
|
|
/* 028DA1D0 */ cpu->f[26] = rbrew_read_f32(cpu->mem, _t157);
|
|
/* 028DA1D4 */ _t158 = cpu->r[1] + 0x00000068u;
|
|
/* 028DA1D4 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t158);
|
|
/* 028DA1D8 */ _t159 = cpu->r[1] + 0x00000028u;
|
|
/* 028DA1D8 */ cpu->f[26] = rbrew_read_f64(cpu->mem, _t159);
|
|
/* 028DA1DC */ _t160 = cpu->r[1] + 0x00000020u;
|
|
/* 028DA1DC */ cpu->r[30] = rbrew_read32(cpu->mem, _t160);
|
|
/* 028DA1E0 */ _t161 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DA1E0 */ _t162 = _t161 & 0x00000001u;
|
|
/* 028DA1E0 */ if (_t162) goto L_028DA1E4; // else: addr-0 trap, fall-through
|
|
L_028DA1E4: ; // 0x28da1e4
|
|
/* 028DA1E4 */ _t163 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028DA1E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t163);
|
|
/* 028DA1E8 */ cpu->lr = cpu->r[0];
|
|
/* 028DA1EC */ cpu->r[1] = cpu->r[1] + 0x00000088u;
|
|
/* 028DA1F0 */ return;
|
|
L_028DA1F4: ; // 0x28da1f4
|
|
/* 028DA1F4 */ _t164 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA1F4 */ rbrew_write32(cpu->mem, _t164, cpu->r[8]);
|
|
/* 028DA1F8 */ cpu->r[5] = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA1FC */ Gambit_fn_028D93A4(cpu);
|
|
/* 028DA200 */ _t165 = cpu->r[1] + 0x00000018u;
|
|
/* 028DA200 */ cpu->r[28] = rbrew_read32(cpu->mem, _t165);
|
|
/* 028DA204 */ _t166 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DA204 */ cpu->r[29] = rbrew_read32(cpu->mem, _t166);
|
|
/* 028DA208 */ _t167 = cpu->r[1] + 0x00000050u;
|
|
/* 028DA208 */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t167);
|
|
/* 028DA20C */ _t168 = cpu->r[1] + 0x00000040u;
|
|
/* 028DA20C */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t168);
|
|
/* 028DA210 */ _t169 = cpu->r[1] + 0x00000048u;
|
|
/* 028DA210 */ cpu->f[28] = rbrew_read_f64(cpu->mem, _t169);
|
|
/* 028DA214 */ _t170 = cpu->r[1] + 0x00000060u;
|
|
/* 028DA214 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t170);
|
|
/* 028DA218 */ _t171 = cpu->r[1] + 0x00000038u;
|
|
/* 028DA218 */ cpu->f[27] = rbrew_read_f64(cpu->mem, _t171);
|
|
/* 028DA21C */ _t172 = cpu->r[1] + 0x00000058u;
|
|
/* 028DA21C */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t172);
|
|
/* 028DA220 */ _t173 = cpu->r[1] + 0x00000080u;
|
|
/* 028DA220 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t173);
|
|
/* 028DA224 */ _t174 = cpu->r[1] + 0x00000024u;
|
|
/* 028DA224 */ cpu->r[31] = rbrew_read32(cpu->mem, _t174);
|
|
/* 028DA228 */ _t175 = cpu->r[1] + 0x00000078u;
|
|
/* 028DA228 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t175);
|
|
/* 028DA22C */ _t176 = cpu->r[1] + 0x00000070u;
|
|
/* 028DA22C */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t176);
|
|
/* 028DA230 */ _t177 = cpu->r[1] + 0x00000030u;
|
|
/* 028DA230 */ cpu->f[26] = rbrew_read_f32(cpu->mem, _t177);
|
|
/* 028DA234 */ _t178 = cpu->r[1] + 0x00000068u;
|
|
/* 028DA234 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t178);
|
|
/* 028DA238 */ _t179 = cpu->r[1] + 0x00000028u;
|
|
/* 028DA238 */ cpu->f[26] = rbrew_read_f64(cpu->mem, _t179);
|
|
/* 028DA23C */ _t180 = cpu->r[1] + 0x00000020u;
|
|
/* 028DA23C */ cpu->r[30] = rbrew_read32(cpu->mem, _t180);
|
|
/* 028DA240 */ _t181 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DA240 */ _t182 = _t181 & 0x00000001u;
|
|
/* 028DA240 */ if (_t182) goto L_028DA244; // else: addr-0 trap, fall-through
|
|
L_028DA244: ; // 0x28da244
|
|
/* 028DA244 */ _t183 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028DA244 */ cpu->r[0] = rbrew_read32(cpu->mem, _t183);
|
|
/* 028DA248 */ cpu->lr = cpu->r[0];
|
|
/* 028DA24C */ cpu->r[1] = cpu->r[1] + 0x00000088u;
|
|
/* 028DA250 */ return;
|
|
L_028DA254: ; // 0x28da254
|
|
/* 028DA254 */ _t184 = cpu->r[30] + 0x00000008u;
|
|
/* 028DA254 */ cpu->r[5] = rbrew_read32(cpu->mem, _t184);
|
|
/* 028DA258 */ _t185 = cpu->r[5] + 0x0000002Cu;
|
|
/* 028DA258 */ cpu->r[6] = rbrew_read32(cpu->mem, _t185);
|
|
/* 028DA25C */ cpu->ctr = cpu->r[6];
|
|
/* 028DA260 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DA264 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DA268 */ cpu->f[3] = cpu->f[26];
|
|
/* 028DA26C */ _t186 = cpu->r[31] + 0x00000000u;
|
|
/* 028DA26C */ cpu->r[0] = rbrew_read32(cpu->mem, _t186);
|
|
/* 028DA270 */ cpu->r[4] = cpu->r[29];
|
|
/* 028DA274 */ cpu->f[1] = cpu->f[27];
|
|
/* 028DA278 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DA27C */ cpu->r[3] = cpu->r[28];
|
|
/* 028DA280 */ cpu->f[2] = cpu->f[28];
|
|
/* 028DA284 */ _t187 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA284 */ _t188 = _t187 & 0x00000001u;
|
|
/* 028DA284 */ if (_t188) goto L_028DA2EC; else goto L_028DA288;
|
|
L_028DA288: ; // 0x28da288
|
|
/* 028DA288 */ _t189 = cpu->r[1] + 0x00000010u;
|
|
/* 028DA288 */ rbrew_write32(cpu->mem, _t189, cpu->r[0]);
|
|
/* 028DA28C */ cpu->r[5] = cpu->r[30];
|
|
/* 028DA290 */ cpu->r[6] = cpu->r[1] + 0x00000010u;
|
|
/* 028DA294 */ Gambit_fn_028D9790(cpu);
|
|
/* 028DA298 */ _t190 = cpu->r[1] + 0x00000018u;
|
|
/* 028DA298 */ cpu->r[28] = rbrew_read32(cpu->mem, _t190);
|
|
/* 028DA29C */ _t191 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DA29C */ cpu->r[29] = rbrew_read32(cpu->mem, _t191);
|
|
/* 028DA2A0 */ _t192 = cpu->r[1] + 0x00000050u;
|
|
/* 028DA2A0 */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t192);
|
|
/* 028DA2A4 */ _t193 = cpu->r[1] + 0x00000040u;
|
|
/* 028DA2A4 */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t193);
|
|
/* 028DA2A8 */ _t194 = cpu->r[1] + 0x00000048u;
|
|
/* 028DA2A8 */ cpu->f[28] = rbrew_read_f64(cpu->mem, _t194);
|
|
/* 028DA2AC */ _t195 = cpu->r[1] + 0x00000060u;
|
|
/* 028DA2AC */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t195);
|
|
/* 028DA2B0 */ _t196 = cpu->r[1] + 0x00000038u;
|
|
/* 028DA2B0 */ cpu->f[27] = rbrew_read_f64(cpu->mem, _t196);
|
|
/* 028DA2B4 */ _t197 = cpu->r[1] + 0x00000058u;
|
|
/* 028DA2B4 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t197);
|
|
/* 028DA2B8 */ _t198 = cpu->r[1] + 0x00000080u;
|
|
/* 028DA2B8 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t198);
|
|
/* 028DA2BC */ _t199 = cpu->r[1] + 0x00000024u;
|
|
/* 028DA2BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t199);
|
|
/* 028DA2C0 */ _t200 = cpu->r[1] + 0x00000078u;
|
|
/* 028DA2C0 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t200);
|
|
/* 028DA2C4 */ _t201 = cpu->r[1] + 0x00000070u;
|
|
/* 028DA2C4 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t201);
|
|
/* 028DA2C8 */ _t202 = cpu->r[1] + 0x00000030u;
|
|
/* 028DA2C8 */ cpu->f[26] = rbrew_read_f32(cpu->mem, _t202);
|
|
/* 028DA2CC */ _t203 = cpu->r[1] + 0x00000068u;
|
|
/* 028DA2CC */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t203);
|
|
/* 028DA2D0 */ _t204 = cpu->r[1] + 0x00000028u;
|
|
/* 028DA2D0 */ cpu->f[26] = rbrew_read_f64(cpu->mem, _t204);
|
|
/* 028DA2D4 */ _t205 = cpu->r[1] + 0x00000020u;
|
|
/* 028DA2D4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t205);
|
|
/* 028DA2D8 */ _t206 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DA2D8 */ _t207 = _t206 & 0x00000001u;
|
|
/* 028DA2D8 */ if (_t207) goto L_028DA2DC; // else: addr-0 trap, fall-through
|
|
L_028DA2DC: ; // 0x28da2dc
|
|
/* 028DA2DC */ _t208 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028DA2DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t208);
|
|
/* 028DA2E0 */ cpu->lr = cpu->r[0];
|
|
/* 028DA2E4 */ cpu->r[1] = cpu->r[1] + 0x00000088u;
|
|
/* 028DA2E8 */ return;
|
|
L_028DA2EC: ; // 0x28da2ec
|
|
/* 028DA2EC */ _t209 = cpu->r[1] + 0x00000014u;
|
|
/* 028DA2EC */ rbrew_write32(cpu->mem, _t209, cpu->r[0]);
|
|
/* 028DA2F0 */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 028DA2F4 */ Gambit_fn_028D9B38(cpu);
|
|
/* 028DA2F8 */ _t210 = cpu->r[1] + 0x00000018u;
|
|
/* 028DA2F8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t210);
|
|
/* 028DA2FC */ _t211 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DA2FC */ cpu->r[29] = rbrew_read32(cpu->mem, _t211);
|
|
/* 028DA300 */ _t212 = cpu->r[1] + 0x00000050u;
|
|
/* 028DA300 */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t212);
|
|
/* 028DA304 */ _t213 = cpu->r[1] + 0x00000040u;
|
|
/* 028DA304 */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t213);
|
|
/* 028DA308 */ _t214 = cpu->r[1] + 0x00000048u;
|
|
/* 028DA308 */ cpu->f[28] = rbrew_read_f64(cpu->mem, _t214);
|
|
/* 028DA30C */ _t215 = cpu->r[1] + 0x00000060u;
|
|
/* 028DA30C */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t215);
|
|
/* 028DA310 */ _t216 = cpu->r[1] + 0x00000038u;
|
|
/* 028DA310 */ cpu->f[27] = rbrew_read_f64(cpu->mem, _t216);
|
|
/* 028DA314 */ _t217 = cpu->r[1] + 0x00000058u;
|
|
/* 028DA314 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t217);
|
|
/* 028DA318 */ _t218 = cpu->r[1] + 0x00000080u;
|
|
/* 028DA318 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t218);
|
|
/* 028DA31C */ _t219 = cpu->r[1] + 0x00000024u;
|
|
/* 028DA31C */ cpu->r[31] = rbrew_read32(cpu->mem, _t219);
|
|
/* 028DA320 */ _t220 = cpu->r[1] + 0x00000078u;
|
|
/* 028DA320 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t220);
|
|
/* 028DA324 */ _t221 = cpu->r[1] + 0x00000070u;
|
|
/* 028DA324 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t221);
|
|
/* 028DA328 */ _t222 = cpu->r[1] + 0x00000030u;
|
|
/* 028DA328 */ cpu->f[26] = rbrew_read_f32(cpu->mem, _t222);
|
|
/* 028DA32C */ _t223 = cpu->r[1] + 0x00000068u;
|
|
/* 028DA32C */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t223);
|
|
/* 028DA330 */ _t224 = cpu->r[1] + 0x00000028u;
|
|
/* 028DA330 */ cpu->f[26] = rbrew_read_f64(cpu->mem, _t224);
|
|
/* 028DA334 */ _t225 = cpu->r[1] + 0x00000020u;
|
|
/* 028DA334 */ cpu->r[30] = rbrew_read32(cpu->mem, _t225);
|
|
/* 028DA338 */ _t226 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DA338 */ _t227 = _t226 & 0x00000001u;
|
|
/* 028DA338 */ if (_t227) goto L_028DA33C; // else: addr-0 trap, fall-through
|
|
L_028DA33C: ; // 0x28da33c
|
|
/* 028DA33C */ _t228 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028DA33C */ cpu->r[0] = rbrew_read32(cpu->mem, _t228);
|
|
/* 028DA340 */ cpu->lr = cpu->r[0];
|
|
/* 028DA344 */ cpu->r[1] = cpu->r[1] + 0x00000088u;
|
|
/* 028DA348 */ return;
|
|
}
|
|
|
|
// fn_028DA358 @ 0x28da358
|
|
void Gambit_fn_028DA358(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_028DA358: ; // 0x28da358
|
|
/* 028DA358 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028DA358 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DA358 */ cpu->r[1] = _t0;
|
|
/* 028DA35C */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA35C */ _t2 = _t1 & 0x00000001u;
|
|
/* 028DA35C */ if (_t2) goto L_028DA360; else goto L_028DA370;
|
|
L_028DA360: ; // 0x28da360
|
|
/* 028DA360 */ cpu->r[3] = 0x00000008u;
|
|
/* 028DA364 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DA368 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DA36C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA36C */ _t4 = _t3 & 0x00000001u;
|
|
/* 028DA36C */ if (_t4) goto L_028DA380; else goto L_028DA370;
|
|
L_028DA370: ; // 0x28da370
|
|
/* 028DA370 */ cpu->r[12] = 0xFFFFFFFFu;
|
|
/* 028DA374 */ cpu->r[0] = 0x00000000u;
|
|
/* 028DA378 */ _t5 = cpu->r[3] + 0x00000000u;
|
|
/* 028DA378 */ rbrew_write32(cpu->mem, _t5, cpu->r[12]);
|
|
/* 028DA37C */ _t6 = cpu->r[3] + 0x00000004u;
|
|
/* 028DA37C */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
L_028DA380: ; // 0x28da380
|
|
/* 028DA380 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA380 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DA384 */ cpu->lr = cpu->r[0];
|
|
/* 028DA388 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA38C */ return;
|
|
}
|
|
|
|
// fn_028DA390 @ 0x28da390
|
|
void Gambit_fn_028DA390(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028DA390: ; // 0x28da390
|
|
/* 028DA390 */ cpu->r[0] = cpu->lr;
|
|
/* 028DA394 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028DA394 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028DA398 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DA39C */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028DA39C */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028DA39C */ cpu->r[1] = _t1;
|
|
/* 028DA3A0 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA3A0 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028DA3A0 */ if (_t3) goto L_028DA3A4; else goto L_028DA3B4;
|
|
L_028DA3A4: ; // 0x28da3a4
|
|
/* 028DA3A4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028DA3A8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DA3AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DA3B0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA3B0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DA3B0 */ if (_t5) goto L_028DA3C8; else goto L_028DA3B4;
|
|
L_028DA3B4: ; // 0x28da3b4
|
|
/* 028DA3B4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DA3B8 */ cpu->r[12] = 0x00000000u;
|
|
/* 028DA3BC */ cpu->r[0] = cpu->r[0] + 0xFFFFB02Cu;
|
|
/* 028DA3C0 */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 028DA3C0 */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028DA3C4 */ _t7 = cpu->r[3] + 0x00000004u;
|
|
/* 028DA3C4 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
L_028DA3C8: ; // 0x28da3c8
|
|
/* 028DA3C8 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA3C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DA3CC */ cpu->lr = cpu->r[0];
|
|
/* 028DA3D0 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA3D4 */ return;
|
|
}
|
|
|
|
// fn_028DA39C @ 0x28da39c
|
|
void Gambit_fn_028DA39C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_028DA39C: ; // 0x28da39c
|
|
/* 028DA39C */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028DA39C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DA39C */ cpu->r[1] = _t0;
|
|
/* 028DA3A0 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA3A0 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028DA3A0 */ if (_t2) goto L_028DA3A4; else goto L_028DA3B4;
|
|
L_028DA3A4: ; // 0x28da3a4
|
|
/* 028DA3A4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028DA3A8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DA3AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DA3B0 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA3B0 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028DA3B0 */ if (_t4) goto L_028DA3C8; else goto L_028DA3B4;
|
|
L_028DA3B4: ; // 0x28da3b4
|
|
/* 028DA3B4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DA3B8 */ cpu->r[12] = 0x00000000u;
|
|
/* 028DA3BC */ cpu->r[0] = cpu->r[0] + 0xFFFFB02Cu;
|
|
/* 028DA3C0 */ _t5 = cpu->r[3] + 0x00000000u;
|
|
/* 028DA3C0 */ rbrew_write32(cpu->mem, _t5, cpu->r[12]);
|
|
/* 028DA3C4 */ _t6 = cpu->r[3] + 0x00000004u;
|
|
/* 028DA3C4 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
L_028DA3C8: ; // 0x28da3c8
|
|
/* 028DA3C8 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA3C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DA3CC */ cpu->lr = cpu->r[0];
|
|
/* 028DA3D0 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA3D4 */ return;
|
|
}
|
|
|
|
// fn_028DA3D8 @ 0x28da3d8
|
|
void Gambit_fn_028DA3D8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028DA3D8: ; // 0x28da3d8
|
|
/* 028DA3D8 */ cpu->r[0] = cpu->lr;
|
|
/* 028DA3DC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DA3DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DA3DC */ cpu->r[1] = _t0;
|
|
/* 028DA3E0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA3E0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DA3E4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028DA3E4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028DA3E8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DA3E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028DA3EC */ cpu->r[31] = cpu->r[4];
|
|
/* 028DA3F0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DA3F0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DA3F4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA3F4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DA3F4 */ if (_t5) goto L_028DA424; else goto L_028DA3F8;
|
|
L_028DA3F8: ; // 0x28da3f8
|
|
/* 028DA3F8 */ _t6 = cpu->r[30] + 0x00000000u;
|
|
/* 028DA3F8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DA3FC */ cpu->r[0] = 0x10140000u;
|
|
/* 028DA400 */ cpu->r[0] = cpu->r[0] + 0xFFFFB02Cu;
|
|
/* 028DA404 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DA408 */ _t7 = cpu->r[30] + 0x00000004u;
|
|
/* 028DA408 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028DA40C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA40C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028DA40C */ if (_t9) goto L_028DA414; else goto L_028DA410;
|
|
L_028DA410: ; // 0x28da410
|
|
/* 028DA410 */ Gambit_fn_028BF5C8(cpu);
|
|
L_028DA414: ; // 0x28da414
|
|
/* 028DA414 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DA414 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DA418 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA418 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DA418 */ if (_t11) goto L_028DA424; else goto L_028DA41C;
|
|
L_028DA41C: ; // 0x28da41c
|
|
/* 028DA41C */ cpu->r[3] = cpu->r[30];
|
|
/* 028DA420 */ Gambit_fn_02801BB0(cpu);
|
|
L_028DA424: ; // 0x28da424
|
|
/* 028DA424 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028DA424 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DA428 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028DA428 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DA42C */ cpu->lr = cpu->r[0];
|
|
/* 028DA430 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA430 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DA434 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DA438 */ return;
|
|
}
|
|
|
|
// fn_028DA3DC @ 0x28da3dc
|
|
void Gambit_fn_028DA3DC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028DA3DC: ; // 0x28da3dc
|
|
/* 028DA3DC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DA3DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DA3DC */ cpu->r[1] = _t0;
|
|
/* 028DA3E0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA3E0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DA3E4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028DA3E4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028DA3E8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DA3E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028DA3EC */ cpu->r[31] = cpu->r[4];
|
|
/* 028DA3F0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DA3F0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DA3F4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA3F4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DA3F4 */ if (_t5) goto L_028DA424; else goto L_028DA3F8;
|
|
L_028DA3F8: ; // 0x28da3f8
|
|
/* 028DA3F8 */ _t6 = cpu->r[30] + 0x00000000u;
|
|
/* 028DA3F8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DA3FC */ cpu->r[0] = 0x10140000u;
|
|
/* 028DA400 */ cpu->r[0] = cpu->r[0] + 0xFFFFB02Cu;
|
|
/* 028DA404 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DA408 */ _t7 = cpu->r[30] + 0x00000004u;
|
|
/* 028DA408 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028DA40C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA40C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028DA40C */ if (_t9) goto L_028DA414; else goto L_028DA410;
|
|
L_028DA410: ; // 0x28da410
|
|
/* 028DA410 */ Gambit_fn_028BF5C8(cpu);
|
|
L_028DA414: ; // 0x28da414
|
|
/* 028DA414 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DA414 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DA418 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA418 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DA418 */ if (_t11) goto L_028DA424; else goto L_028DA41C;
|
|
L_028DA41C: ; // 0x28da41c
|
|
/* 028DA41C */ cpu->r[3] = cpu->r[30];
|
|
/* 028DA420 */ Gambit_fn_02801BB0(cpu);
|
|
L_028DA424: ; // 0x28da424
|
|
/* 028DA424 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028DA424 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DA428 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028DA428 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DA42C */ cpu->lr = cpu->r[0];
|
|
/* 028DA430 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA430 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DA434 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DA438 */ return;
|
|
}
|
|
|
|
// fn_028DA43C @ 0x28da43c
|
|
void Gambit_fn_028DA43C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_028DA43C: ; // 0x28da43c
|
|
/* 028DA43C */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028DA43C */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028DA440 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028DA444 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA444 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028DA444 */ if (_t2) goto L_028DA448; else goto L_028DA450;
|
|
L_028DA448: ; // 0x28da448
|
|
/* 028DA448 */ cpu->r[3] = 0x00000000u;
|
|
/* 028DA44C */ return;
|
|
L_028DA450: ; // 0x28da450
|
|
/* 028DA450 */ _t3 = cpu->r[12] + 0x00000004u;
|
|
/* 028DA450 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028DA454 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028DA458 */ cpu->r[0] = 0x00000000u;
|
|
/* 028DA45C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA45C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DA45C */ if (_t5) goto L_028DA46C; else goto L_028DA460;
|
|
L_028DA460: ; // 0x28da460
|
|
/* 028DA460 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000006u);
|
|
/* 028DA464 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA464 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DA464 */ if (_t7) goto L_028DA46C; else goto L_028DA468;
|
|
L_028DA468: ; // 0x28da468
|
|
/* 028DA468 */ cpu->r[0] = 0x00000001u;
|
|
L_028DA46C: ; // 0x28da46c
|
|
/* 028DA46C */ cpu->r[3] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028DA470 */ return;
|
|
}
|
|
|
|
// fn_028DA474 @ 0x28da474
|
|
void Gambit_fn_028DA474(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028DA474: ; // 0x28da474
|
|
/* 028DA474 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DA478 */ _t0 = cpu->r[12] + 0xFFFFB024u;
|
|
/* 028DA478 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028DA47C */ return;
|
|
}
|
|
|
|
// fn_028DA480 @ 0x28da480
|
|
void Gambit_fn_028DA480(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028DA480: ; // 0x28da480
|
|
/* 028DA480 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DA484 */ _t0 = cpu->r[12] + 0xFFFFB024u;
|
|
/* 028DA484 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028DA488 */ return;
|
|
}
|
|
|
|
// fn_028DA48C @ 0x28da48c
|
|
void Gambit_fn_028DA48C(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028DA48C: ; // 0x28da48c
|
|
/* 028DA48C */ cpu->r[12] = 0x10140000u;
|
|
/* 028DA490 */ _t0 = cpu->r[12] + 0xFFFFB028u;
|
|
/* 028DA490 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028DA494 */ return;
|
|
}
|
|
|
|
// fn_028DA498 @ 0x28da498
|
|
void Gambit_fn_028DA498(CPUState* cpu) {
|
|
L_028DA498: ; // 0x28da498
|
|
/* 028DA498 */ return;
|
|
}
|
|
|
|
// fn_028DA49C @ 0x28da49c
|
|
void Gambit_fn_028DA49C(CPUState* cpu) {
|
|
L_028DA49C: ; // 0x28da49c
|
|
/* 028DA49C */ return;
|
|
}
|
|
|
|
// fn_028DA4A0 @ 0x28da4a0
|
|
void Gambit_fn_028DA4A0(CPUState* cpu) {
|
|
L_028DA4A0: ; // 0x28da4a0
|
|
/* 028DA4A0 */ return;
|
|
}
|
|
|
|
// fn_028DA4A4 @ 0x28da4a4
|
|
void Gambit_fn_028DA4A4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028DA4A4: ; // 0x28da4a4
|
|
/* 028DA4A4 */ cpu->r[0] = cpu->lr;
|
|
/* 028DA4A8 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028DA4A8 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028DA4AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DA4B0 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028DA4B0 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028DA4B0 */ cpu->r[1] = _t1;
|
|
/* 028DA4B4 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA4B4 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028DA4B4 */ if (_t3) goto L_028DA4B8; else goto L_028DA4C8;
|
|
L_028DA4B8: ; // 0x28da4b8
|
|
/* 028DA4B8 */ cpu->r[3] = 0x00000028u;
|
|
/* 028DA4BC */ Gambit_fn_02801A78(cpu);
|
|
/* 028DA4C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DA4C4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA4C4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DA4C4 */ if (_t5) goto L_028DA510; else goto L_028DA4C8;
|
|
L_028DA4C8: ; // 0x28da4c8
|
|
/* 028DA4C8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DA4CC */ cpu->r[9] = 0x00000001u;
|
|
/* 028DA4D0 */ _t6 = cpu->r[12] + 0xFFFFB0F4u;
|
|
/* 028DA4D0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028DA4D4 */ cpu->r[10] = 0x00000000u;
|
|
/* 028DA4D8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028DA4DC */ _t7 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028DA4DC */ rbrew_write32(cpu->mem, _t7, cpu->r[9]);
|
|
/* 028DA4E0 */ cpu->r[11] = cpu->r[11] + 0xFFFFB0DCu;
|
|
/* 028DA4E4 */ _t8 = cpu->r[3] + 0x00000008u;
|
|
/* 028DA4E4 */ rbrew_write32(cpu->mem, _t8, cpu->r[10]);
|
|
/* 028DA4E8 */ cpu->r[0] = 0x00000002u;
|
|
/* 028DA4EC */ _t9 = cpu->r[3] + 0x00000000u;
|
|
/* 028DA4EC */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 028DA4F0 */ cpu->ctr = cpu->r[0];
|
|
/* 028DA4F4 */ _t10 = cpu->r[3] + 0x00000004u;
|
|
/* 028DA4F4 */ rbrew_write8(cpu->mem, _t10, (uint8_t)cpu->r[9]);
|
|
/* 028DA4F8 */ cpu->r[11] = cpu->r[3] + 0x0000000Cu;
|
|
/* 028DA4FC */ _t11 = cpu->r[3] + 0x00000005u;
|
|
/* 028DA4FC */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[10]);
|
|
L_028DA500: ; // 0x28da500
|
|
/* 028DA500 */ _t12 = cpu->r[11] + 0x00000004u;
|
|
/* 028DA500 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[0]);
|
|
/* 028DA500 */ cpu->r[11] = _t12;
|
|
/* 028DA504 */ _t13 = cpu->r[11] + 0x00000008u;
|
|
/* 028DA504 */ rbrew_write_f32(cpu->mem, _t13, cpu->f[0]);
|
|
/* 028DA508 */ _t14 = cpu->r[11] + 0x00000010u;
|
|
/* 028DA508 */ rbrew_write_f32(cpu->mem, _t14, cpu->f[0]);
|
|
/* 028DA50C */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028DA50C */ _t15 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028DA50C */ _t16 = _t15 >> (0x00000002u & 31u);
|
|
/* 028DA50C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DA50C */ if (_t17) goto L_028DA500; else goto L_028DA510;
|
|
L_028DA510: ; // 0x28da510
|
|
/* 028DA510 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA510 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DA514 */ cpu->lr = cpu->r[0];
|
|
/* 028DA518 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA51C */ return;
|
|
}
|
|
|
|
// fn_028DA4B0 @ 0x28da4b0
|
|
void Gambit_fn_028DA4B0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028DA4B0: ; // 0x28da4b0
|
|
/* 028DA4B0 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028DA4B0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DA4B0 */ cpu->r[1] = _t0;
|
|
/* 028DA4B4 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA4B4 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028DA4B4 */ if (_t2) goto L_028DA4B8; else goto L_028DA4C8;
|
|
L_028DA4B8: ; // 0x28da4b8
|
|
/* 028DA4B8 */ cpu->r[3] = 0x00000028u;
|
|
/* 028DA4BC */ Gambit_fn_02801A78(cpu);
|
|
/* 028DA4C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DA4C4 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA4C4 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028DA4C4 */ if (_t4) goto L_028DA510; else goto L_028DA4C8;
|
|
L_028DA4C8: ; // 0x28da4c8
|
|
/* 028DA4C8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DA4CC */ cpu->r[9] = 0x00000001u;
|
|
/* 028DA4D0 */ _t5 = cpu->r[12] + 0xFFFFB0F4u;
|
|
/* 028DA4D0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 028DA4D4 */ cpu->r[10] = 0x00000000u;
|
|
/* 028DA4D8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028DA4DC */ _t6 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028DA4DC */ rbrew_write32(cpu->mem, _t6, cpu->r[9]);
|
|
/* 028DA4E0 */ cpu->r[11] = cpu->r[11] + 0xFFFFB0DCu;
|
|
/* 028DA4E4 */ _t7 = cpu->r[3] + 0x00000008u;
|
|
/* 028DA4E4 */ rbrew_write32(cpu->mem, _t7, cpu->r[10]);
|
|
/* 028DA4E8 */ cpu->r[0] = 0x00000002u;
|
|
/* 028DA4EC */ _t8 = cpu->r[3] + 0x00000000u;
|
|
/* 028DA4EC */ rbrew_write32(cpu->mem, _t8, cpu->r[11]);
|
|
/* 028DA4F0 */ cpu->ctr = cpu->r[0];
|
|
/* 028DA4F4 */ _t9 = cpu->r[3] + 0x00000004u;
|
|
/* 028DA4F4 */ rbrew_write8(cpu->mem, _t9, (uint8_t)cpu->r[9]);
|
|
/* 028DA4F8 */ cpu->r[11] = cpu->r[3] + 0x0000000Cu;
|
|
/* 028DA4FC */ _t10 = cpu->r[3] + 0x00000005u;
|
|
/* 028DA4FC */ rbrew_write8(cpu->mem, _t10, (uint8_t)cpu->r[10]);
|
|
L_028DA500: ; // 0x28da500
|
|
/* 028DA500 */ _t11 = cpu->r[11] + 0x00000004u;
|
|
/* 028DA500 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[0]);
|
|
/* 028DA500 */ cpu->r[11] = _t11;
|
|
/* 028DA504 */ _t12 = cpu->r[11] + 0x00000008u;
|
|
/* 028DA504 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[0]);
|
|
/* 028DA508 */ _t13 = cpu->r[11] + 0x00000010u;
|
|
/* 028DA508 */ rbrew_write_f32(cpu->mem, _t13, cpu->f[0]);
|
|
/* 028DA50C */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028DA50C */ _t14 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028DA50C */ _t15 = _t14 >> (0x00000002u & 31u);
|
|
/* 028DA50C */ _t16 = _t15 & 0x00000001u;
|
|
/* 028DA50C */ if (_t16) goto L_028DA500; else goto L_028DA510;
|
|
L_028DA510: ; // 0x28da510
|
|
/* 028DA510 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA510 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DA514 */ cpu->lr = cpu->r[0];
|
|
/* 028DA518 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA51C */ return;
|
|
}
|
|
|
|
// fn_028DA524 @ 0x28da524
|
|
void Gambit_fn_028DA524(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78;
|
|
|
|
L_028DA524: ; // 0x28da524
|
|
/* 028DA524 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 028DA524 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DA524 */ cpu->r[1] = _t0;
|
|
/* 028DA528 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028DA52C */ _t1 = cpu->r[1] + 0x00000030u;
|
|
/* 028DA52C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DA530 */ _t2 = cpu->r[1] + 0x00000034u;
|
|
/* 028DA530 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DA534 */ cpu->r[10] = 0x101D0000u;
|
|
/* 028DA538 */ _t3 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028DA538 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DA53C */ _t4 = cpu->r[12] + 0xFFFF99E8u;
|
|
/* 028DA53C */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028DA540 */ _t5 = cpu->r[10] + 0xFFFFF9D0u;
|
|
/* 028DA540 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028DA540 */ cpu->r[10] = _t5;
|
|
/* 028DA544 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DA548 */ cpu->r[4] = 0x101D0000u;
|
|
/* 028DA54C */ _t6 = cpu->r[12] + 0x00000014u;
|
|
/* 028DA54C */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DA550 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DA554 */ cpu->r[4] = cpu->r[4] + 0xFFFFF9CCu;
|
|
/* 028DA558 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA558 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DA558 */ if (_t8) goto L_028DA55C; else goto L_028DA570;
|
|
L_028DA55C: ; // 0x28da55c
|
|
/* 028DA55C */ cpu->r[0] = 0x10140000u;
|
|
/* 028DA560 */ cpu->r[9] = 0x00000001u;
|
|
/* 028DA564 */ cpu->r[0] = cpu->r[0] + 0xFFFFB0CCu;
|
|
/* 028DA568 */ _t9 = cpu->r[10] + 0x00000000u;
|
|
/* 028DA568 */ rbrew_write32(cpu->mem, _t9, cpu->r[9]);
|
|
/* 028DA56C */ _t10 = cpu->r[4] + 0x00000000u;
|
|
/* 028DA56C */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
L_028DA570: ; // 0x28da570
|
|
/* 028DA570 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DA574 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA574 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028DA574 */ if (_t12) goto L_028DA594; else goto L_028DA578;
|
|
L_028DA578: ; // 0x28da578
|
|
/* 028DA578 */ _t13 = cpu->r[31] + 0x00000000u;
|
|
/* 028DA578 */ cpu->r[7] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DA57C */ _t14 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028DA57C */ cpu->r[10] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DA580 */ cpu->ctr = cpu->r[10];
|
|
/* 028DA584 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DA588 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DA58C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DA590 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA590 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028DA590 */ if (_t16) goto L_028DA594; else goto L_028DA598;
|
|
L_028DA594: ; // 0x28da594
|
|
/* 028DA594 */ cpu->r[31] = 0x00000000u;
|
|
L_028DA598: ; // 0x28da598
|
|
/* 028DA598 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA59C */ cpu->r[31] = cpu->r[31] + 0x00000100u;
|
|
/* 028DA5A0 */ Gambit_fn_0284D6E0(cpu);
|
|
/* 028DA5A4 */ _t17 = cpu->r[30] + 0x00000004u;
|
|
/* 028DA5A4 */ cpu->r[8] = rbrew_read8(cpu->mem, _t17);
|
|
/* 028DA5A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028DA5AC */ cpu->r[9] = 0x00000000u;
|
|
/* 028DA5B0 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA5B0 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DA5B0 */ if (_t19) goto L_028DA5B4; else goto L_028DA5D4;
|
|
L_028DA5B4: ; // 0x28da5b4
|
|
/* 028DA5B4 */ _t20 = cpu->r[30] + 0x00000008u;
|
|
/* 028DA5B4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DA5B8 */ cpu->r[12] = 0x00000001u;
|
|
/* 028DA5BC */ _t21 = cpu->r[1] + 0x00000008u;
|
|
/* 028DA5BC */ rbrew_write32(cpu->mem, _t21, cpu->r[9]);
|
|
/* 028DA5C0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000001u);
|
|
/* 028DA5C4 */ _t22 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028DA5C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DA5C8 */ _t23 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DA5C8 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028DA5C8 */ if (_t24) goto L_028DA668; else goto L_028DA5CC;
|
|
L_028DA5CC: ; // 0x28da5cc
|
|
/* 028DA5CC */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA5CC */ _t26 = _t25 & 0x00000001u;
|
|
/* 028DA5CC */ if (_t26) goto L_028DA680; else goto L_028DA5D0;
|
|
L_028DA5D0: ; // 0x28da5d0
|
|
/* 028DA5D0 */ goto L_028DA604;
|
|
L_028DA5D4: ; // 0x28da5d4
|
|
/* 028DA5D4 */ _t27 = cpu->r[30] + 0x00000005u;
|
|
/* 028DA5D4 */ cpu->r[9] = rbrew_read8(cpu->mem, _t27);
|
|
/* 028DA5D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028DA5DC */ cpu->r[0] = 0x00000001u;
|
|
/* 028DA5E0 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA5E0 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028DA5E0 */ if (_t29) goto L_028DA5E8; else goto L_028DA5E4;
|
|
L_028DA5E4: ; // 0x28da5e4
|
|
/* 028DA5E4 */ cpu->r[0] = 0x00000002u;
|
|
L_028DA5E8: ; // 0x28da5e8
|
|
/* 028DA5E8 */ _t30 = cpu->r[30] + 0x00000008u;
|
|
/* 028DA5E8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028DA5EC */ cpu->r[12] = 0x00000001u;
|
|
/* 028DA5F0 */ _t31 = cpu->r[1] + 0x00000008u;
|
|
/* 028DA5F0 */ rbrew_write32(cpu->mem, _t31, cpu->r[0]);
|
|
/* 028DA5F4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000001u);
|
|
/* 028DA5F8 */ _t32 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028DA5F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028DA5FC */ _t33 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DA5FC */ _t34 = _t33 & 0x00000001u;
|
|
/* 028DA5FC */ if (_t34) goto L_028DA668; else goto L_028DA600;
|
|
L_028DA600: ; // 0x28da600
|
|
/* 028DA600 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA600 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028DA600 */ if (_t36) goto L_028DA680; else goto L_028DA604;
|
|
L_028DA604: ; // 0x28da604
|
|
/* 028DA604 */ _t37 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA604 */ rbrew_write32(cpu->mem, _t37, cpu->r[12]);
|
|
/* 028DA608 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000002u);
|
|
/* 028DA60C */ cpu->r[8] = 0x00000001u;
|
|
/* 028DA610 */ _t38 = cpu->r[1] + 0x00000010u;
|
|
/* 028DA610 */ rbrew_write32(cpu->mem, _t38, cpu->r[12]);
|
|
/* 028DA614 */ _t39 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DA614 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028DA614 */ if (_t40) goto L_028DA698; else goto L_028DA618;
|
|
L_028DA618: ; // 0x28da618
|
|
/* 028DA618 */ _t41 = cpu->r[30] + 0x00000010u;
|
|
/* 028DA618 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t41);
|
|
/* 028DA61C */ _t42 = cpu->r[30] + 0x00000014u;
|
|
/* 028DA61C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t42);
|
|
/* 028DA620 */ _t43 = cpu->r[1] + 0x00000014u;
|
|
/* 028DA620 */ rbrew_write_f32(cpu->mem, _t43, cpu->f[12]);
|
|
/* 028DA624 */ _t44 = cpu->r[30] + 0x00000018u;
|
|
/* 028DA624 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t44);
|
|
/* 028DA628 */ _t45 = cpu->r[1] + 0x00000018u;
|
|
/* 028DA628 */ rbrew_write_f32(cpu->mem, _t45, cpu->f[0]);
|
|
/* 028DA62C */ _t46 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DA62C */ rbrew_write_f32(cpu->mem, _t46, cpu->f[12]);
|
|
/* 028DA630 */ _t47 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DA630 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t47);
|
|
/* 028DA634 */ _t48 = cpu->r[30] + 0x00000020u;
|
|
/* 028DA634 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t48);
|
|
/* 028DA638 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DA63C */ _t49 = cpu->r[1] + 0x00000020u;
|
|
/* 028DA63C */ rbrew_write_f32(cpu->mem, _t49, cpu->f[0]);
|
|
/* 028DA640 */ cpu->r[12] = cpu->r[12] + 0xFFFFB0F8u;
|
|
/* 028DA644 */ _t50 = cpu->r[1] + 0x00000028u;
|
|
/* 028DA644 */ rbrew_write_f32(cpu->mem, _t50, cpu->f[13]);
|
|
/* 028DA648 */ _t51 = cpu->r[12] + cpu->r[0];
|
|
/* 028DA648 */ cpu->r[7] = rbrew_read8(cpu->mem, _t51);
|
|
/* 028DA64C */ _t52 = cpu->r[30] + 0x00000024u;
|
|
/* 028DA64C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 028DA650 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DA654 */ _t53 = cpu->r[1] + 0x00000024u;
|
|
/* 028DA654 */ rbrew_write32(cpu->mem, _t53, cpu->r[7]);
|
|
/* 028DA658 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA65C */ _t54 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DA65C */ rbrew_write_f32(cpu->mem, _t54, cpu->f[0]);
|
|
/* 028DA660 */ Gambit_fn_0284E70C(cpu);
|
|
/* 028DA664 */ goto L_028DA6D8;
|
|
L_028DA668: ; // 0x28da668
|
|
/* 028DA668 */ cpu->r[8] = 0x00000001u;
|
|
/* 028DA66C */ _t55 = cpu->r[1] + 0x00000010u;
|
|
/* 028DA66C */ rbrew_write32(cpu->mem, _t55, cpu->r[8]);
|
|
/* 028DA670 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000002u);
|
|
/* 028DA674 */ _t56 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA674 */ rbrew_write32(cpu->mem, _t56, cpu->r[8]);
|
|
/* 028DA678 */ _t57 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DA678 */ _t58 = _t57 & 0x00000001u;
|
|
/* 028DA678 */ if (_t58) goto L_028DA67C; else goto L_028DA618;
|
|
L_028DA67C: ; // 0x28da67c
|
|
/* 028DA67C */ goto L_028DA698;
|
|
L_028DA680: ; // 0x28da680
|
|
/* 028DA680 */ cpu->r[12] = 0x00000000u;
|
|
/* 028DA684 */ cpu->r[8] = 0x00000001u;
|
|
/* 028DA688 */ _t59 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA688 */ rbrew_write32(cpu->mem, _t59, cpu->r[12]);
|
|
/* 028DA68C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000002u);
|
|
/* 028DA690 */ _t60 = cpu->r[1] + 0x00000010u;
|
|
/* 028DA690 */ rbrew_write32(cpu->mem, _t60, cpu->r[12]);
|
|
/* 028DA694 */ _t61 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DA694 */ _t62 = _t61 & 0x00000001u;
|
|
/* 028DA694 */ if (_t62) goto L_028DA698; else goto L_028DA618;
|
|
L_028DA698: ; // 0x28da698
|
|
/* 028DA698 */ _t63 = cpu->r[1] + 0x00000024u;
|
|
/* 028DA698 */ rbrew_write32(cpu->mem, _t63, cpu->r[8]);
|
|
/* 028DA69C */ _t64 = cpu->r[30] + 0x00000010u;
|
|
/* 028DA69C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t64);
|
|
/* 028DA6A0 */ _t65 = cpu->r[30] + 0x00000014u;
|
|
/* 028DA6A0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t65);
|
|
/* 028DA6A4 */ _t66 = cpu->r[1] + 0x00000014u;
|
|
/* 028DA6A4 */ rbrew_write_f32(cpu->mem, _t66, cpu->f[12]);
|
|
/* 028DA6A8 */ _t67 = cpu->r[1] + 0x00000018u;
|
|
/* 028DA6A8 */ rbrew_write_f32(cpu->mem, _t67, cpu->f[0]);
|
|
/* 028DA6AC */ _t68 = cpu->r[30] + 0x00000018u;
|
|
/* 028DA6AC */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t68);
|
|
/* 028DA6B0 */ _t69 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DA6B0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t69);
|
|
/* 028DA6B4 */ _t70 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DA6B4 */ rbrew_write_f32(cpu->mem, _t70, cpu->f[12]);
|
|
/* 028DA6B8 */ _t71 = cpu->r[1] + 0x00000020u;
|
|
/* 028DA6B8 */ rbrew_write_f32(cpu->mem, _t71, cpu->f[0]);
|
|
/* 028DA6BC */ _t72 = cpu->r[30] + 0x00000020u;
|
|
/* 028DA6BC */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t72);
|
|
/* 028DA6C0 */ _t73 = cpu->r[30] + 0x00000024u;
|
|
/* 028DA6C0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t73);
|
|
/* 028DA6C4 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA6C8 */ _t74 = cpu->r[1] + 0x00000028u;
|
|
/* 028DA6C8 */ rbrew_write_f32(cpu->mem, _t74, cpu->f[13]);
|
|
/* 028DA6CC */ cpu->r[3] = cpu->r[31];
|
|
/* 028DA6D0 */ _t75 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DA6D0 */ rbrew_write_f32(cpu->mem, _t75, cpu->f[0]);
|
|
/* 028DA6D4 */ Gambit_fn_0284E70C(cpu);
|
|
L_028DA6D8: ; // 0x28da6d8
|
|
/* 028DA6D8 */ _t76 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028DA6D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028DA6DC */ _t77 = cpu->r[1] + 0x00000030u;
|
|
/* 028DA6DC */ cpu->r[30] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028DA6E0 */ cpu->lr = cpu->r[0];
|
|
/* 028DA6E4 */ _t78 = cpu->r[1] + 0x00000034u;
|
|
/* 028DA6E4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t78);
|
|
/* 028DA6E8 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 028DA6EC */ return;
|
|
}
|
|
|
|
// fn_028DA6F0 @ 0x28da6f0
|
|
void Gambit_fn_028DA6F0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80;
|
|
|
|
L_028DA520: ; // 0x28da520
|
|
/* 028DA520 */ cpu->r[0] = cpu->lr;
|
|
/* 028DA524 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 028DA524 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DA524 */ cpu->r[1] = _t0;
|
|
/* 028DA528 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028DA52C */ _t1 = cpu->r[1] + 0x00000030u;
|
|
/* 028DA52C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DA530 */ _t2 = cpu->r[1] + 0x00000034u;
|
|
/* 028DA530 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DA534 */ cpu->r[10] = 0x101D0000u;
|
|
/* 028DA538 */ _t3 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028DA538 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DA53C */ _t4 = cpu->r[12] + 0xFFFF99E8u;
|
|
/* 028DA53C */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028DA540 */ _t5 = cpu->r[10] + 0xFFFFF9D0u;
|
|
/* 028DA540 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028DA540 */ cpu->r[10] = _t5;
|
|
/* 028DA544 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DA548 */ cpu->r[4] = 0x101D0000u;
|
|
/* 028DA54C */ _t6 = cpu->r[12] + 0x00000014u;
|
|
/* 028DA54C */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DA550 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DA554 */ cpu->r[4] = cpu->r[4] + 0xFFFFF9CCu;
|
|
/* 028DA558 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA558 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DA558 */ if (_t8) goto L_028DA55C; else goto L_028DA570;
|
|
L_028DA55C: ; // 0x28da55c
|
|
/* 028DA55C */ cpu->r[0] = 0x10140000u;
|
|
/* 028DA560 */ cpu->r[9] = 0x00000001u;
|
|
/* 028DA564 */ cpu->r[0] = cpu->r[0] + 0xFFFFB0CCu;
|
|
/* 028DA568 */ _t9 = cpu->r[10] + 0x00000000u;
|
|
/* 028DA568 */ rbrew_write32(cpu->mem, _t9, cpu->r[9]);
|
|
/* 028DA56C */ _t10 = cpu->r[4] + 0x00000000u;
|
|
/* 028DA56C */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
L_028DA570: ; // 0x28da570
|
|
/* 028DA570 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DA574 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA574 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028DA574 */ if (_t12) goto L_028DA594; else goto L_028DA578;
|
|
L_028DA578: ; // 0x28da578
|
|
/* 028DA578 */ _t13 = cpu->r[31] + 0x00000000u;
|
|
/* 028DA578 */ cpu->r[7] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DA57C */ _t14 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028DA57C */ cpu->r[10] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DA580 */ cpu->ctr = cpu->r[10];
|
|
/* 028DA584 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DA588 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DA58C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DA590 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA590 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028DA590 */ if (_t16) goto L_028DA594; else goto L_028DA598;
|
|
L_028DA594: ; // 0x28da594
|
|
/* 028DA594 */ cpu->r[31] = 0x00000000u;
|
|
L_028DA598: ; // 0x28da598
|
|
/* 028DA598 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA59C */ cpu->r[31] = cpu->r[31] + 0x00000100u;
|
|
/* 028DA5A0 */ Gambit_fn_0284D6E0(cpu);
|
|
/* 028DA5A4 */ _t17 = cpu->r[30] + 0x00000004u;
|
|
/* 028DA5A4 */ cpu->r[8] = rbrew_read8(cpu->mem, _t17);
|
|
/* 028DA5A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028DA5AC */ cpu->r[9] = 0x00000000u;
|
|
/* 028DA5B0 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA5B0 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DA5B0 */ if (_t19) goto L_028DA5B4; else goto L_028DA5D4;
|
|
L_028DA5B4: ; // 0x28da5b4
|
|
/* 028DA5B4 */ _t20 = cpu->r[30] + 0x00000008u;
|
|
/* 028DA5B4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DA5B8 */ cpu->r[12] = 0x00000001u;
|
|
/* 028DA5BC */ _t21 = cpu->r[1] + 0x00000008u;
|
|
/* 028DA5BC */ rbrew_write32(cpu->mem, _t21, cpu->r[9]);
|
|
/* 028DA5C0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000001u);
|
|
/* 028DA5C4 */ _t22 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028DA5C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DA5C8 */ _t23 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DA5C8 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028DA5C8 */ if (_t24) goto L_028DA668; else goto L_028DA5CC;
|
|
L_028DA5CC: ; // 0x28da5cc
|
|
/* 028DA5CC */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA5CC */ _t26 = _t25 & 0x00000001u;
|
|
/* 028DA5CC */ if (_t26) goto L_028DA680; else goto L_028DA5D0;
|
|
L_028DA5D0: ; // 0x28da5d0
|
|
/* 028DA5D0 */ goto L_028DA604;
|
|
L_028DA5D4: ; // 0x28da5d4
|
|
/* 028DA5D4 */ _t27 = cpu->r[30] + 0x00000005u;
|
|
/* 028DA5D4 */ cpu->r[9] = rbrew_read8(cpu->mem, _t27);
|
|
/* 028DA5D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028DA5DC */ cpu->r[0] = 0x00000001u;
|
|
/* 028DA5E0 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA5E0 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028DA5E0 */ if (_t29) goto L_028DA5E8; else goto L_028DA5E4;
|
|
L_028DA5E4: ; // 0x28da5e4
|
|
/* 028DA5E4 */ cpu->r[0] = 0x00000002u;
|
|
L_028DA5E8: ; // 0x28da5e8
|
|
/* 028DA5E8 */ _t30 = cpu->r[30] + 0x00000008u;
|
|
/* 028DA5E8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028DA5EC */ cpu->r[12] = 0x00000001u;
|
|
/* 028DA5F0 */ _t31 = cpu->r[1] + 0x00000008u;
|
|
/* 028DA5F0 */ rbrew_write32(cpu->mem, _t31, cpu->r[0]);
|
|
/* 028DA5F4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000001u);
|
|
/* 028DA5F8 */ _t32 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028DA5F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028DA5FC */ _t33 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DA5FC */ _t34 = _t33 & 0x00000001u;
|
|
/* 028DA5FC */ if (_t34) goto L_028DA668; else goto L_028DA600;
|
|
L_028DA600: ; // 0x28da600
|
|
/* 028DA600 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA600 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028DA600 */ if (_t36) goto L_028DA680; else goto L_028DA604;
|
|
L_028DA604: ; // 0x28da604
|
|
/* 028DA604 */ _t37 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA604 */ rbrew_write32(cpu->mem, _t37, cpu->r[12]);
|
|
/* 028DA608 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000002u);
|
|
/* 028DA60C */ cpu->r[8] = 0x00000001u;
|
|
/* 028DA610 */ _t38 = cpu->r[1] + 0x00000010u;
|
|
/* 028DA610 */ rbrew_write32(cpu->mem, _t38, cpu->r[12]);
|
|
/* 028DA614 */ _t39 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DA614 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028DA614 */ if (_t40) goto L_028DA698; else goto L_028DA618;
|
|
L_028DA618: ; // 0x28da618
|
|
/* 028DA618 */ _t41 = cpu->r[30] + 0x00000010u;
|
|
/* 028DA618 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t41);
|
|
/* 028DA61C */ _t42 = cpu->r[30] + 0x00000014u;
|
|
/* 028DA61C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t42);
|
|
/* 028DA620 */ _t43 = cpu->r[1] + 0x00000014u;
|
|
/* 028DA620 */ rbrew_write_f32(cpu->mem, _t43, cpu->f[12]);
|
|
/* 028DA624 */ _t44 = cpu->r[30] + 0x00000018u;
|
|
/* 028DA624 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t44);
|
|
/* 028DA628 */ _t45 = cpu->r[1] + 0x00000018u;
|
|
/* 028DA628 */ rbrew_write_f32(cpu->mem, _t45, cpu->f[0]);
|
|
/* 028DA62C */ _t46 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DA62C */ rbrew_write_f32(cpu->mem, _t46, cpu->f[12]);
|
|
/* 028DA630 */ _t47 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DA630 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t47);
|
|
/* 028DA634 */ _t48 = cpu->r[30] + 0x00000020u;
|
|
/* 028DA634 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t48);
|
|
/* 028DA638 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DA63C */ _t49 = cpu->r[1] + 0x00000020u;
|
|
/* 028DA63C */ rbrew_write_f32(cpu->mem, _t49, cpu->f[0]);
|
|
/* 028DA640 */ cpu->r[12] = cpu->r[12] + 0xFFFFB0F8u;
|
|
/* 028DA644 */ _t50 = cpu->r[1] + 0x00000028u;
|
|
/* 028DA644 */ rbrew_write_f32(cpu->mem, _t50, cpu->f[13]);
|
|
/* 028DA648 */ _t51 = cpu->r[12] + cpu->r[0];
|
|
/* 028DA648 */ cpu->r[7] = rbrew_read8(cpu->mem, _t51);
|
|
/* 028DA64C */ _t52 = cpu->r[30] + 0x00000024u;
|
|
/* 028DA64C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 028DA650 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DA654 */ _t53 = cpu->r[1] + 0x00000024u;
|
|
/* 028DA654 */ rbrew_write32(cpu->mem, _t53, cpu->r[7]);
|
|
/* 028DA658 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA65C */ _t54 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DA65C */ rbrew_write_f32(cpu->mem, _t54, cpu->f[0]);
|
|
/* 028DA660 */ Gambit_fn_0284E70C(cpu);
|
|
/* 028DA664 */ goto L_028DA6D8;
|
|
L_028DA668: ; // 0x28da668
|
|
/* 028DA668 */ cpu->r[8] = 0x00000001u;
|
|
/* 028DA66C */ _t55 = cpu->r[1] + 0x00000010u;
|
|
/* 028DA66C */ rbrew_write32(cpu->mem, _t55, cpu->r[8]);
|
|
/* 028DA670 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000002u);
|
|
/* 028DA674 */ _t56 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA674 */ rbrew_write32(cpu->mem, _t56, cpu->r[8]);
|
|
/* 028DA678 */ _t57 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DA678 */ _t58 = _t57 & 0x00000001u;
|
|
/* 028DA678 */ if (_t58) goto L_028DA67C; else goto L_028DA618;
|
|
L_028DA67C: ; // 0x28da67c
|
|
/* 028DA67C */ goto L_028DA698;
|
|
L_028DA680: ; // 0x28da680
|
|
/* 028DA680 */ cpu->r[12] = 0x00000000u;
|
|
/* 028DA684 */ cpu->r[8] = 0x00000001u;
|
|
/* 028DA688 */ _t59 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA688 */ rbrew_write32(cpu->mem, _t59, cpu->r[12]);
|
|
/* 028DA68C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000002u);
|
|
/* 028DA690 */ _t60 = cpu->r[1] + 0x00000010u;
|
|
/* 028DA690 */ rbrew_write32(cpu->mem, _t60, cpu->r[12]);
|
|
/* 028DA694 */ _t61 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DA694 */ _t62 = _t61 & 0x00000001u;
|
|
/* 028DA694 */ if (_t62) goto L_028DA698; else goto L_028DA618;
|
|
L_028DA698: ; // 0x28da698
|
|
/* 028DA698 */ _t63 = cpu->r[1] + 0x00000024u;
|
|
/* 028DA698 */ rbrew_write32(cpu->mem, _t63, cpu->r[8]);
|
|
/* 028DA69C */ _t64 = cpu->r[30] + 0x00000010u;
|
|
/* 028DA69C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t64);
|
|
/* 028DA6A0 */ _t65 = cpu->r[30] + 0x00000014u;
|
|
/* 028DA6A0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t65);
|
|
/* 028DA6A4 */ _t66 = cpu->r[1] + 0x00000014u;
|
|
/* 028DA6A4 */ rbrew_write_f32(cpu->mem, _t66, cpu->f[12]);
|
|
/* 028DA6A8 */ _t67 = cpu->r[1] + 0x00000018u;
|
|
/* 028DA6A8 */ rbrew_write_f32(cpu->mem, _t67, cpu->f[0]);
|
|
/* 028DA6AC */ _t68 = cpu->r[30] + 0x00000018u;
|
|
/* 028DA6AC */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t68);
|
|
/* 028DA6B0 */ _t69 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DA6B0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t69);
|
|
/* 028DA6B4 */ _t70 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DA6B4 */ rbrew_write_f32(cpu->mem, _t70, cpu->f[12]);
|
|
/* 028DA6B8 */ _t71 = cpu->r[1] + 0x00000020u;
|
|
/* 028DA6B8 */ rbrew_write_f32(cpu->mem, _t71, cpu->f[0]);
|
|
/* 028DA6BC */ _t72 = cpu->r[30] + 0x00000020u;
|
|
/* 028DA6BC */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t72);
|
|
/* 028DA6C0 */ _t73 = cpu->r[30] + 0x00000024u;
|
|
/* 028DA6C0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t73);
|
|
/* 028DA6C4 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA6C8 */ _t74 = cpu->r[1] + 0x00000028u;
|
|
/* 028DA6C8 */ rbrew_write_f32(cpu->mem, _t74, cpu->f[13]);
|
|
/* 028DA6CC */ cpu->r[3] = cpu->r[31];
|
|
/* 028DA6D0 */ _t75 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DA6D0 */ rbrew_write_f32(cpu->mem, _t75, cpu->f[0]);
|
|
/* 028DA6D4 */ Gambit_fn_0284E70C(cpu);
|
|
L_028DA6D8: ; // 0x28da6d8
|
|
/* 028DA6D8 */ _t76 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028DA6D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028DA6DC */ _t77 = cpu->r[1] + 0x00000030u;
|
|
/* 028DA6DC */ cpu->r[30] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028DA6E0 */ cpu->lr = cpu->r[0];
|
|
/* 028DA6E4 */ _t78 = cpu->r[1] + 0x00000034u;
|
|
/* 028DA6E4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t78);
|
|
/* 028DA6E8 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 028DA6EC */ return;
|
|
L_028DA6F0: ; // 0x28da6f0
|
|
/* 028DA6F0 */ _t79 = cpu->r[4] + 0x00000000u;
|
|
/* 028DA6F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t79);
|
|
/* 028DA6F4 */ _t80 = cpu->r[3] + 0x00000008u;
|
|
/* 028DA6F4 */ rbrew_write32(cpu->mem, _t80, cpu->r[0]);
|
|
/* 028DA6F8 */ goto L_028DA520;
|
|
}
|
|
|
|
// fn_028DA6FC @ 0x28da6fc
|
|
void Gambit_fn_028DA6FC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028DA6FC: ; // 0x28da6fc
|
|
/* 028DA6FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DA700 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA700 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DA700 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DA700 */ goto L_028DA704;
|
|
L_028DA704: ; // 0x28da704
|
|
/* 028DA704 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DA704 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DA708 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA708 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DA708 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DA708 */ goto L_028DA70C;
|
|
L_028DA70C: ; // 0x28da70c
|
|
/* 028DA70C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028DA710 @ 0x28da710
|
|
void Gambit_fn_028DA710(CPUState* cpu) {
|
|
L_028DA710: ; // 0x28da710
|
|
/* 028DA710 */ return;
|
|
}
|
|
|
|
// fn_028DA714 @ 0x28da714
|
|
void Gambit_fn_028DA714(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028DA714: ; // 0x28da714
|
|
/* 028DA714 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DA718 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA718 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DA718 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DA718 */ goto L_028DA71C;
|
|
L_028DA71C: ; // 0x28da71c
|
|
/* 028DA71C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DA71C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DA720 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA720 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DA720 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DA720 */ goto L_028DA724;
|
|
L_028DA724: ; // 0x28da724
|
|
/* 028DA724 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028DA728 @ 0x28da728
|
|
void Gambit_fn_028DA728(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22;
|
|
|
|
L_028DA728: ; // 0x28da728
|
|
/* 028DA728 */ cpu->r[0] = cpu->lr;
|
|
/* 028DA72C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DA72C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DA72C */ cpu->r[1] = _t0;
|
|
/* 028DA730 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA730 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DA734 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DA734 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DA738 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DA738 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DA73C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA73C */ _t4 = _t3 & 0x00000001u;
|
|
/* 028DA73C */ if (_t4) goto L_028DA740; else goto L_028DA750;
|
|
L_028DA740: ; // 0x28da740
|
|
/* 028DA740 */ cpu->r[3] = 0x0000004Cu;
|
|
/* 028DA744 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DA748 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DA748 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DA74C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA74C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DA74C */ if (_t6) goto L_028DA7CC; else goto L_028DA750;
|
|
L_028DA750: ; // 0x28da750
|
|
/* 028DA750 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DA754 */ cpu->r[0] = cpu->r[0] + 0xFFFFB108u;
|
|
/* 028DA758 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DA75C */ _t7 = cpu->r[31] + 0x00000048u;
|
|
/* 028DA75C */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028DA760 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA760 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028DA760 */ if (_t9) goto L_028DA764; else goto L_028DA76C;
|
|
L_028DA764: ; // 0x28da764
|
|
/* 028DA764 */ cpu->r[3] = 0x00000030u;
|
|
/* 028DA768 */ Gambit_fn_02801A78(cpu);
|
|
L_028DA76C: ; // 0x28da76c
|
|
/* 028DA76C */ cpu->r[12] = 0x10140000u;
|
|
/* 028DA770 */ cpu->r[11] = 0x101F0000u;
|
|
/* 028DA774 */ _t10 = cpu->r[12] + 0xFFFFB118u;
|
|
/* 028DA774 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028DA778 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DA77C */ _t11 = cpu->r[11] + 0x00006338u;
|
|
/* 028DA77C */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DA77C */ cpu->r[11] = _t11;
|
|
/* 028DA780 */ _t12 = cpu->r[12] + 0xFFFFB11Cu;
|
|
/* 028DA780 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 028DA784 */ _t13 = cpu->r[31] + 0x00000030u;
|
|
/* 028DA784 */ rbrew_write32(cpu->mem, _t13, cpu->r[0]);
|
|
/* 028DA788 */ _t14 = cpu->r[11] + 0x00000004u;
|
|
/* 028DA788 */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DA78C */ _t15 = cpu->r[31] + 0x00000034u;
|
|
/* 028DA78C */ rbrew_write32(cpu->mem, _t15, cpu->r[12]);
|
|
/* 028DA790 */ _t16 = cpu->r[11] + 0x00000008u;
|
|
/* 028DA790 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DA794 */ _t17 = cpu->r[31] + 0x0000003Cu;
|
|
/* 028DA794 */ rbrew_write_f32(cpu->mem, _t17, cpu->f[13]);
|
|
/* 028DA798 */ cpu->f[13] = cpu->f[0] - cpu->f[13];
|
|
/* 028DA79C */ cpu->r[12] = 0x10140000u;
|
|
/* 028DA7A0 */ _t18 = cpu->r[31] + 0x00000038u;
|
|
/* 028DA7A0 */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028DA7A4 */ cpu->r[12] = cpu->r[12] + 0xFFFFB100u;
|
|
/* 028DA7A8 */ _t19 = cpu->r[31] + 0x00000040u;
|
|
/* 028DA7A8 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[0]);
|
|
/* 028DA7AC */ /* nop */
|
|
/* 028DA7B0 */ _t20 = cpu->r[31] + 0x00000044u;
|
|
/* 028DA7B0 */ rbrew_write_f32(cpu->mem, _t20, cpu->f[13]);
|
|
/* 028DA7B4 */ /* nop */
|
|
/* 028DA7B8 */ /* nop */
|
|
/* 028DA7BC */ /* nop */
|
|
/* 028DA7C0 */ /* nop */
|
|
/* 028DA7C4 */ /* nop */
|
|
/* 028DA7C8 */ /* nop */
|
|
L_028DA7CC: ; // 0x28da7cc
|
|
/* 028DA7CC */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 028DA7CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DA7D0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DA7D4 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA7D4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DA7D8 */ cpu->lr = cpu->r[0];
|
|
/* 028DA7DC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DA7E0 */ return;
|
|
}
|
|
|
|
// fn_028DA72C @ 0x28da72c
|
|
void Gambit_fn_028DA72C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22;
|
|
|
|
L_028DA72C: ; // 0x28da72c
|
|
/* 028DA72C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DA72C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DA72C */ cpu->r[1] = _t0;
|
|
/* 028DA730 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA730 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DA734 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DA734 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DA738 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DA738 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DA73C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA73C */ _t4 = _t3 & 0x00000001u;
|
|
/* 028DA73C */ if (_t4) goto L_028DA740; else goto L_028DA750;
|
|
L_028DA740: ; // 0x28da740
|
|
/* 028DA740 */ cpu->r[3] = 0x0000004Cu;
|
|
/* 028DA744 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DA748 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DA748 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DA74C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA74C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DA74C */ if (_t6) goto L_028DA7CC; else goto L_028DA750;
|
|
L_028DA750: ; // 0x28da750
|
|
/* 028DA750 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DA754 */ cpu->r[0] = cpu->r[0] + 0xFFFFB108u;
|
|
/* 028DA758 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DA75C */ _t7 = cpu->r[31] + 0x00000048u;
|
|
/* 028DA75C */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028DA760 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA760 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028DA760 */ if (_t9) goto L_028DA764; else goto L_028DA76C;
|
|
L_028DA764: ; // 0x28da764
|
|
/* 028DA764 */ cpu->r[3] = 0x00000030u;
|
|
/* 028DA768 */ Gambit_fn_02801A78(cpu);
|
|
L_028DA76C: ; // 0x28da76c
|
|
/* 028DA76C */ cpu->r[12] = 0x10140000u;
|
|
/* 028DA770 */ cpu->r[11] = 0x101F0000u;
|
|
/* 028DA774 */ _t10 = cpu->r[12] + 0xFFFFB118u;
|
|
/* 028DA774 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028DA778 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DA77C */ _t11 = cpu->r[11] + 0x00006338u;
|
|
/* 028DA77C */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DA77C */ cpu->r[11] = _t11;
|
|
/* 028DA780 */ _t12 = cpu->r[12] + 0xFFFFB11Cu;
|
|
/* 028DA780 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 028DA784 */ _t13 = cpu->r[31] + 0x00000030u;
|
|
/* 028DA784 */ rbrew_write32(cpu->mem, _t13, cpu->r[0]);
|
|
/* 028DA788 */ _t14 = cpu->r[11] + 0x00000004u;
|
|
/* 028DA788 */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DA78C */ _t15 = cpu->r[31] + 0x00000034u;
|
|
/* 028DA78C */ rbrew_write32(cpu->mem, _t15, cpu->r[12]);
|
|
/* 028DA790 */ _t16 = cpu->r[11] + 0x00000008u;
|
|
/* 028DA790 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DA794 */ _t17 = cpu->r[31] + 0x0000003Cu;
|
|
/* 028DA794 */ rbrew_write_f32(cpu->mem, _t17, cpu->f[13]);
|
|
/* 028DA798 */ cpu->f[13] = cpu->f[0] - cpu->f[13];
|
|
/* 028DA79C */ cpu->r[12] = 0x10140000u;
|
|
/* 028DA7A0 */ _t18 = cpu->r[31] + 0x00000038u;
|
|
/* 028DA7A0 */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028DA7A4 */ cpu->r[12] = cpu->r[12] + 0xFFFFB100u;
|
|
/* 028DA7A8 */ _t19 = cpu->r[31] + 0x00000040u;
|
|
/* 028DA7A8 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[0]);
|
|
/* 028DA7AC */ /* nop */
|
|
/* 028DA7B0 */ _t20 = cpu->r[31] + 0x00000044u;
|
|
/* 028DA7B0 */ rbrew_write_f32(cpu->mem, _t20, cpu->f[13]);
|
|
/* 028DA7B4 */ /* nop */
|
|
/* 028DA7B8 */ /* nop */
|
|
/* 028DA7BC */ /* nop */
|
|
/* 028DA7C0 */ /* nop */
|
|
/* 028DA7C4 */ /* nop */
|
|
/* 028DA7C8 */ /* nop */
|
|
L_028DA7CC: ; // 0x28da7cc
|
|
/* 028DA7CC */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 028DA7CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DA7D0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DA7D4 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA7D4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DA7D8 */ cpu->lr = cpu->r[0];
|
|
/* 028DA7DC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DA7E0 */ return;
|
|
}
|
|
|
|
// fn_028DA7E4 @ 0x28da7e4
|
|
void Gambit_fn_028DA7E4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_0200D42C: ; // 0x200d42c
|
|
/* 0200D42C */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0200D430 */ _t0 = cpu->r[4] + cpu->r[0];
|
|
/* 0200D430 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0200D434 */ cpu->r[12] = cpu->r[4] + cpu->r[0];
|
|
/* 0200D438 */ _t1 = cpu->r[3] + 0x00000000u;
|
|
/* 0200D438 */ rbrew_write_f32(cpu->mem, _t1, cpu->f[0]);
|
|
/* 0200D43C */ _t2 = cpu->r[12] + 0x00000010u;
|
|
/* 0200D43C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t2);
|
|
/* 0200D440 */ _t3 = cpu->r[3] + 0x00000004u;
|
|
/* 0200D440 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[0]);
|
|
/* 0200D444 */ _t4 = cpu->r[12] + 0x00000020u;
|
|
/* 0200D444 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 0200D448 */ _t5 = cpu->r[3] + 0x00000008u;
|
|
/* 0200D448 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[0]);
|
|
/* 0200D44C */ return;
|
|
L_0200D450: ; // 0x200d450
|
|
/* 0200D450 */ cpu->r[5] = 0x00000003u;
|
|
/* 0200D454 */ goto L_0200D42C;
|
|
L_028DA7E4: ; // 0x28da7e4
|
|
/* 028DA7E4 */ cpu->r[0] = cpu->r[4];
|
|
/* 028DA7E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DA7E8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA7E8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DA7E8 */ if (_t7) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DA7E8 */ goto L_028DA7EC;
|
|
L_028DA7EC: ; // 0x28da7ec
|
|
/* 028DA7EC */ cpu->r[4] = cpu->r[3];
|
|
/* 028DA7F0 */ cpu->r[3] = cpu->r[0];
|
|
/* 028DA7F4 */ goto L_0200D450;
|
|
}
|
|
|
|
// fn_028DA7F8 @ 0x28da7f8
|
|
void Gambit_fn_028DA7F8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24;
|
|
|
|
L_028DA7F8: ; // 0x28da7f8
|
|
/* 028DA7F8 */ cpu->r[0] = cpu->lr;
|
|
/* 028DA7FC */ _t0 = cpu->r[1] + 0xFFFFFFC0u;
|
|
/* 028DA7FC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DA7FC */ cpu->r[1] = _t0;
|
|
/* 028DA800 */ _t1 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028DA800 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DA804 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DA808 */ cpu->r[3] = cpu->r[4];
|
|
/* 028DA80C */ cpu->r[4] = cpu->r[31];
|
|
/* 028DA810 */ _t2 = cpu->r[1] + 0x00000044u;
|
|
/* 028DA810 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DA814 */ Gambit_fn_02C69510(cpu);
|
|
/* 028DA818 */ cpu->r[4] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DA81C */ cpu->r[3] = cpu->r[31];
|
|
/* 028DA820 */ Gambit_fn_028DA7E4(cpu);
|
|
/* 028DA824 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DA828 */ cpu->r[11] = 0x10140000u;
|
|
/* 028DA82C */ _t3 = cpu->r[12] + 0xFFFFB120u;
|
|
/* 028DA82C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t3);
|
|
/* 028DA830 */ _t4 = cpu->r[11] + 0xFFFFB124u;
|
|
/* 028DA830 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028DA834 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DA838 */ _t5 = cpu->r[1] + 0x00000008u;
|
|
/* 028DA838 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[13]);
|
|
/* 028DA83C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA840 */ _t6 = cpu->r[1] + 0x00000010u;
|
|
/* 028DA840 */ rbrew_write_f32(cpu->mem, _t6, cpu->f[0]);
|
|
/* 028DA844 */ cpu->r[5] = cpu->r[4];
|
|
/* 028DA848 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA848 */ rbrew_write_f32(cpu->mem, _t7, cpu->f[13]);
|
|
/* 028DA84C */ Gambit_fn_02C69468(cpu);
|
|
/* 028DA850 */ /* nop */
|
|
/* 028DA854 */ /* nop */
|
|
/* 028DA858 */ _t8 = cpu->r[1] + 0x00000010u;
|
|
/* 028DA858 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028DA85C */ /* nop */
|
|
/* 028DA860 */ /* nop */
|
|
/* 028DA864 */ _t9 = cpu->r[1] + 0x00000018u;
|
|
/* 028DA864 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DA868 */ _t10 = cpu->r[1] + 0x00000034u;
|
|
/* 028DA868 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028DA86C */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028DA86C */ cpu->r[12] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DA870 */ _t12 = cpu->r[1] + 0x00000024u;
|
|
/* 028DA870 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 028DA874 */ cpu->f[13] = cpu->f[0] - cpu->f[12];
|
|
/* 028DA878 */ _t13 = cpu->r[1] + 0x00000024u;
|
|
/* 028DA878 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 028DA87C */ _t14 = cpu->r[1] + 0x00000020u;
|
|
/* 028DA87C */ rbrew_write32(cpu->mem, _t14, cpu->r[12]);
|
|
/* 028DA880 */ _t15 = cpu->r[1] + 0x00000020u;
|
|
/* 028DA880 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028DA884 */ _t16 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DA884 */ rbrew_write_f32(cpu->mem, _t16, cpu->f[13]);
|
|
/* 028DA888 */ _t17 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DA888 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DA88C */ _t18 = cpu->r[31] + 0x00000030u;
|
|
/* 028DA88C */ rbrew_write_f32(cpu->mem, _t18, cpu->f[12]);
|
|
/* 028DA890 */ _t19 = cpu->r[1] + 0x00000028u;
|
|
/* 028DA890 */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 028DA894 */ _t20 = cpu->r[1] + 0x00000028u;
|
|
/* 028DA894 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t20);
|
|
/* 028DA898 */ _t21 = cpu->r[31] + 0x00000034u;
|
|
/* 028DA898 */ rbrew_write_f32(cpu->mem, _t21, cpu->f[0]);
|
|
/* 028DA89C */ _t22 = cpu->r[31] + 0x00000038u;
|
|
/* 028DA89C */ rbrew_write_f32(cpu->mem, _t22, cpu->f[12]);
|
|
/* 028DA8A0 */ _t23 = cpu->r[1] + 0x00000044u;
|
|
/* 028DA8A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028DA8A4 */ cpu->lr = cpu->r[0];
|
|
/* 028DA8A8 */ _t24 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028DA8A8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028DA8AC */ cpu->r[1] = cpu->r[1] + 0x00000040u;
|
|
/* 028DA8B0 */ return;
|
|
}
|
|
|
|
// fn_028DA7FC @ 0x28da7fc
|
|
void Gambit_fn_028DA7FC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24;
|
|
|
|
L_028DA7FC: ; // 0x28da7fc
|
|
/* 028DA7FC */ _t0 = cpu->r[1] + 0xFFFFFFC0u;
|
|
/* 028DA7FC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DA7FC */ cpu->r[1] = _t0;
|
|
/* 028DA800 */ _t1 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028DA800 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DA804 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DA808 */ cpu->r[3] = cpu->r[4];
|
|
/* 028DA80C */ cpu->r[4] = cpu->r[31];
|
|
/* 028DA810 */ _t2 = cpu->r[1] + 0x00000044u;
|
|
/* 028DA810 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DA814 */ Gambit_fn_02C69510(cpu);
|
|
/* 028DA818 */ cpu->r[4] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DA81C */ cpu->r[3] = cpu->r[31];
|
|
/* 028DA820 */ Gambit_fn_028DA7E4(cpu);
|
|
/* 028DA824 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DA828 */ cpu->r[11] = 0x10140000u;
|
|
/* 028DA82C */ _t3 = cpu->r[12] + 0xFFFFB120u;
|
|
/* 028DA82C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t3);
|
|
/* 028DA830 */ _t4 = cpu->r[11] + 0xFFFFB124u;
|
|
/* 028DA830 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028DA834 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DA838 */ _t5 = cpu->r[1] + 0x00000008u;
|
|
/* 028DA838 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[13]);
|
|
/* 028DA83C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA840 */ _t6 = cpu->r[1] + 0x00000010u;
|
|
/* 028DA840 */ rbrew_write_f32(cpu->mem, _t6, cpu->f[0]);
|
|
/* 028DA844 */ cpu->r[5] = cpu->r[4];
|
|
/* 028DA848 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DA848 */ rbrew_write_f32(cpu->mem, _t7, cpu->f[13]);
|
|
/* 028DA84C */ Gambit_fn_02C69468(cpu);
|
|
/* 028DA850 */ /* nop */
|
|
/* 028DA854 */ /* nop */
|
|
/* 028DA858 */ _t8 = cpu->r[1] + 0x00000010u;
|
|
/* 028DA858 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028DA85C */ /* nop */
|
|
/* 028DA860 */ /* nop */
|
|
/* 028DA864 */ _t9 = cpu->r[1] + 0x00000018u;
|
|
/* 028DA864 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DA868 */ _t10 = cpu->r[1] + 0x00000034u;
|
|
/* 028DA868 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028DA86C */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028DA86C */ cpu->r[12] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DA870 */ _t12 = cpu->r[1] + 0x00000024u;
|
|
/* 028DA870 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 028DA874 */ cpu->f[13] = cpu->f[0] - cpu->f[12];
|
|
/* 028DA878 */ _t13 = cpu->r[1] + 0x00000024u;
|
|
/* 028DA878 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 028DA87C */ _t14 = cpu->r[1] + 0x00000020u;
|
|
/* 028DA87C */ rbrew_write32(cpu->mem, _t14, cpu->r[12]);
|
|
/* 028DA880 */ _t15 = cpu->r[1] + 0x00000020u;
|
|
/* 028DA880 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028DA884 */ _t16 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DA884 */ rbrew_write_f32(cpu->mem, _t16, cpu->f[13]);
|
|
/* 028DA888 */ _t17 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DA888 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DA88C */ _t18 = cpu->r[31] + 0x00000030u;
|
|
/* 028DA88C */ rbrew_write_f32(cpu->mem, _t18, cpu->f[12]);
|
|
/* 028DA890 */ _t19 = cpu->r[1] + 0x00000028u;
|
|
/* 028DA890 */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 028DA894 */ _t20 = cpu->r[1] + 0x00000028u;
|
|
/* 028DA894 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t20);
|
|
/* 028DA898 */ _t21 = cpu->r[31] + 0x00000034u;
|
|
/* 028DA898 */ rbrew_write_f32(cpu->mem, _t21, cpu->f[0]);
|
|
/* 028DA89C */ _t22 = cpu->r[31] + 0x00000038u;
|
|
/* 028DA89C */ rbrew_write_f32(cpu->mem, _t22, cpu->f[12]);
|
|
/* 028DA8A0 */ _t23 = cpu->r[1] + 0x00000044u;
|
|
/* 028DA8A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028DA8A4 */ cpu->lr = cpu->r[0];
|
|
/* 028DA8A8 */ _t24 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028DA8A8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028DA8AC */ cpu->r[1] = cpu->r[1] + 0x00000040u;
|
|
/* 028DA8B0 */ return;
|
|
}
|
|
|
|
// fn_028DA8B4 @ 0x28da8b4
|
|
void Gambit_fn_028DA8B4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028DA8B4: ; // 0x28da8b4
|
|
/* 028DA8B4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DA8B8 */ _t0 = cpu->r[12] + 0xFFFFB120u;
|
|
/* 028DA8B8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028DA8BC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[2], cpu->f[13]);
|
|
/* 028DA8C0 */ _t1 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DA8C0 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028DA8C0 */ if (_t2) goto L_028DA8C4; else goto L_028DA8D8;
|
|
L_028DA8C4: ; // 0x28da8c4
|
|
/* 028DA8C4 */ /* nop */
|
|
/* 028DA8C8 */ cpu->f[2] = cpu->f[13];
|
|
/* 028DA8CC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[2]);
|
|
/* 028DA8D0 */ _t3 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DA8D0 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028DA8D0 */ if (_t4) goto L_028DA8D4; else goto L_028DA8FC;
|
|
L_028DA8D4: ; // 0x28da8d4
|
|
/* 028DA8D4 */ goto L_028DA8F8;
|
|
L_028DA8D8: ; // 0x28da8d8
|
|
/* 028DA8D8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DA8DC */ _t5 = cpu->r[12] + 0xFFFFB128u;
|
|
/* 028DA8DC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 028DA8E0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[2], cpu->f[0]);
|
|
/* 028DA8E4 */ _t6 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DA8E4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DA8E4 */ if (_t7) goto L_028DA8E8; else goto L_028DA8EC;
|
|
L_028DA8E8: ; // 0x28da8e8
|
|
/* 028DA8E8 */ cpu->f[2] = cpu->f[0];
|
|
L_028DA8EC: ; // 0x28da8ec
|
|
/* 028DA8EC */ /* nop */
|
|
/* 028DA8F0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[2]);
|
|
/* 028DA8F4 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DA8F4 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028DA8F4 */ if (_t9) goto L_028DA8F8; else goto L_028DA8FC;
|
|
L_028DA8F8: ; // 0x28da8f8
|
|
/* 028DA8F8 */ cpu->f[1] = cpu->f[2];
|
|
L_028DA8FC: ; // 0x28da8fc
|
|
/* 028DA8FC */ cpu->f[12] = cpu->f[2] - cpu->f[1];
|
|
/* 028DA900 */ _t10 = cpu->r[3] + 0x0000003Cu;
|
|
/* 028DA900 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[1]);
|
|
/* 028DA904 */ _t11 = cpu->r[3] + 0x00000040u;
|
|
/* 028DA904 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[2]);
|
|
/* 028DA908 */ _t12 = cpu->r[3] + 0x00000044u;
|
|
/* 028DA908 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[12]);
|
|
/* 028DA90C */ return;
|
|
}
|
|
|
|
// fn_028DA910 @ 0x28da910
|
|
void Gambit_fn_028DA910(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30;
|
|
|
|
L_028DA910: ; // 0x28da910
|
|
/* 028DA910 */ cpu->r[0] = cpu->lr;
|
|
/* 028DA914 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028DA914 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DA914 */ cpu->r[1] = _t0;
|
|
/* 028DA918 */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028DA918 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028DA91C */ /* nop */
|
|
/* 028DA920 */ _t2 = cpu->r[1] + 0x00000020u;
|
|
/* 028DA920 */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028DA924 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DA928 */ _t3 = cpu->r[12] + 0xFFFFB120u;
|
|
/* 028DA928 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t3);
|
|
/* 028DA92C */ _t4 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DA92C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DA930 */ _t5 = cpu->r[3] + 0x00000030u;
|
|
/* 028DA930 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 028DA934 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[1]);
|
|
/* 028DA938 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA938 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DA938 */ if (_t7) goto L_028DA93C; else goto L_028DA954;
|
|
L_028DA93C: ; // 0x28da93c
|
|
/* 028DA93C */ _t8 = cpu->r[3] + 0x00000034u;
|
|
/* 028DA93C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028DA940 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[1]);
|
|
/* 028DA944 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA944 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028DA944 */ if (_t10) goto L_028DA948; else goto L_028DA954;
|
|
L_028DA948: ; // 0x28da948
|
|
/* 028DA948 */ _t11 = cpu->r[3] + 0x00000038u;
|
|
/* 028DA948 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028DA94C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[1]);
|
|
/* 028DA950 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA950 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028DA950 */ if (_t13) goto L_028DA9F0; else goto L_028DA954;
|
|
L_028DA954: ; // 0x28da954
|
|
/* 028DA954 */ _t14 = cpu->r[4] + 0x00000000u;
|
|
/* 028DA954 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028DA958 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[1]);
|
|
/* 028DA95C */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA95C */ _t16 = _t15 & 0x00000001u;
|
|
/* 028DA95C */ if (_t16) goto L_028DA960; else goto L_028DA96C;
|
|
L_028DA960: ; // 0x28da960
|
|
/* 028DA960 */ _t17 = cpu->r[4] + 0x00000004u;
|
|
/* 028DA960 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028DA964 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[1]);
|
|
/* 028DA968 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA968 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DA968 */ if (_t19) goto L_028DA9AC; else goto L_028DA96C;
|
|
L_028DA96C: ; // 0x28da96c
|
|
/* 028DA96C */ /* nop */
|
|
/* 028DA970 */ /* nop */
|
|
/* 028DA974 */ /* nop */
|
|
/* 028DA978 */ /* nop */
|
|
/* 028DA97C */ _t20 = cpu->r[4] + 0x00000008u;
|
|
/* 028DA97C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t20);
|
|
/* 028DA980 */ cpu->f[12] = cpu->f[0];
|
|
/* 028DA984 */ _t21 = cpu->r[3] + 0x00000038u;
|
|
/* 028DA984 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028DA988 */ cpu->r[3] = cpu->r[3] + 0x00000030u;
|
|
/* 028DA98C */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA990 */ cpu->f[31] = fma(cpu->f[0], cpu->f[13], cpu->f[12]);
|
|
/* 028DA994 */ Gambit_fn_02C692EC(cpu);
|
|
/* 028DA998 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA99C */ Gambit_fn_02C69350(cpu);
|
|
/* 028DA9A0 */ cpu->f[2] = cpu->f[31];
|
|
/* 028DA9A4 */ Gambit_fn_02C89074(cpu);
|
|
/* 028DA9A8 */ goto L_028DA9F0;
|
|
L_028DA9AC: ; // 0x28da9ac
|
|
/* 028DA9AC */ _t22 = cpu->r[4] + 0x00000008u;
|
|
/* 028DA9AC */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 028DA9B0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[1]);
|
|
/* 028DA9B4 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA9B4 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028DA9B4 */ if (_t24) goto L_028DA9F0; else goto L_028DA9B8;
|
|
L_028DA9B8: ; // 0x28da9b8
|
|
/* 028DA9B8 */ /* nop */
|
|
/* 028DA9BC */ /* nop */
|
|
/* 028DA9C0 */ /* nop */
|
|
/* 028DA9C4 */ /* nop */
|
|
/* 028DA9C8 */ cpu->f[12] = cpu->f[0];
|
|
/* 028DA9CC */ _t25 = cpu->r[3] + 0x00000038u;
|
|
/* 028DA9CC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 028DA9D0 */ cpu->r[3] = cpu->r[3] + 0x00000030u;
|
|
/* 028DA9D4 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA9D8 */ cpu->f[31] = fma(cpu->f[0], cpu->f[13], cpu->f[12]);
|
|
/* 028DA9DC */ Gambit_fn_02C692EC(cpu);
|
|
/* 028DA9E0 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA9E4 */ Gambit_fn_02C69350(cpu);
|
|
/* 028DA9E8 */ cpu->f[2] = cpu->f[31];
|
|
/* 028DA9EC */ Gambit_fn_02C89074(cpu);
|
|
L_028DA9F0: ; // 0x28da9f0
|
|
/* 028DA9F0 */ _t26 = cpu->r[1] + 0x00000020u;
|
|
/* 028DA9F0 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028DA9F4 */ _t27 = cpu->r[1] + 0x00000018u;
|
|
/* 028DA9F4 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t27);
|
|
/* 028DA9F8 */ _t28 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DA9F8 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028DA9F8 */ if (_t29) goto L_028DA9FC; // else: addr-0 trap, fall-through
|
|
L_028DA9FC: ; // 0x28da9fc
|
|
/* 028DA9FC */ _t30 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DA9FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028DAA00 */ cpu->lr = cpu->r[0];
|
|
/* 028DAA04 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028DAA08 */ return;
|
|
}
|
|
|
|
// fn_028DA914 @ 0x28da914
|
|
void Gambit_fn_028DA914(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30;
|
|
|
|
L_028DA914: ; // 0x28da914
|
|
/* 028DA914 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028DA914 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DA914 */ cpu->r[1] = _t0;
|
|
/* 028DA918 */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028DA918 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028DA91C */ /* nop */
|
|
/* 028DA920 */ _t2 = cpu->r[1] + 0x00000020u;
|
|
/* 028DA920 */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028DA924 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DA928 */ _t3 = cpu->r[12] + 0xFFFFB120u;
|
|
/* 028DA928 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t3);
|
|
/* 028DA92C */ _t4 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DA92C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DA930 */ _t5 = cpu->r[3] + 0x00000030u;
|
|
/* 028DA930 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 028DA934 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[1]);
|
|
/* 028DA938 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA938 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DA938 */ if (_t7) goto L_028DA93C; else goto L_028DA954;
|
|
L_028DA93C: ; // 0x28da93c
|
|
/* 028DA93C */ _t8 = cpu->r[3] + 0x00000034u;
|
|
/* 028DA93C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028DA940 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[1]);
|
|
/* 028DA944 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA944 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028DA944 */ if (_t10) goto L_028DA948; else goto L_028DA954;
|
|
L_028DA948: ; // 0x28da948
|
|
/* 028DA948 */ _t11 = cpu->r[3] + 0x00000038u;
|
|
/* 028DA948 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028DA94C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[1]);
|
|
/* 028DA950 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA950 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028DA950 */ if (_t13) goto L_028DA9F0; else goto L_028DA954;
|
|
L_028DA954: ; // 0x28da954
|
|
/* 028DA954 */ _t14 = cpu->r[4] + 0x00000000u;
|
|
/* 028DA954 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028DA958 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[1]);
|
|
/* 028DA95C */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA95C */ _t16 = _t15 & 0x00000001u;
|
|
/* 028DA95C */ if (_t16) goto L_028DA960; else goto L_028DA96C;
|
|
L_028DA960: ; // 0x28da960
|
|
/* 028DA960 */ _t17 = cpu->r[4] + 0x00000004u;
|
|
/* 028DA960 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028DA964 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[1]);
|
|
/* 028DA968 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA968 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DA968 */ if (_t19) goto L_028DA9AC; else goto L_028DA96C;
|
|
L_028DA96C: ; // 0x28da96c
|
|
/* 028DA96C */ /* nop */
|
|
/* 028DA970 */ /* nop */
|
|
/* 028DA974 */ /* nop */
|
|
/* 028DA978 */ /* nop */
|
|
/* 028DA97C */ _t20 = cpu->r[4] + 0x00000008u;
|
|
/* 028DA97C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t20);
|
|
/* 028DA980 */ cpu->f[12] = cpu->f[0];
|
|
/* 028DA984 */ _t21 = cpu->r[3] + 0x00000038u;
|
|
/* 028DA984 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028DA988 */ cpu->r[3] = cpu->r[3] + 0x00000030u;
|
|
/* 028DA98C */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA990 */ cpu->f[31] = fma(cpu->f[0], cpu->f[13], cpu->f[12]);
|
|
/* 028DA994 */ Gambit_fn_02C692EC(cpu);
|
|
/* 028DA998 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA99C */ Gambit_fn_02C69350(cpu);
|
|
/* 028DA9A0 */ cpu->f[2] = cpu->f[31];
|
|
/* 028DA9A4 */ Gambit_fn_02C89074(cpu);
|
|
/* 028DA9A8 */ goto L_028DA9F0;
|
|
L_028DA9AC: ; // 0x28da9ac
|
|
/* 028DA9AC */ _t22 = cpu->r[4] + 0x00000008u;
|
|
/* 028DA9AC */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 028DA9B0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[1]);
|
|
/* 028DA9B4 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DA9B4 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028DA9B4 */ if (_t24) goto L_028DA9F0; else goto L_028DA9B8;
|
|
L_028DA9B8: ; // 0x28da9b8
|
|
/* 028DA9B8 */ /* nop */
|
|
/* 028DA9BC */ /* nop */
|
|
/* 028DA9C0 */ /* nop */
|
|
/* 028DA9C4 */ /* nop */
|
|
/* 028DA9C8 */ cpu->f[12] = cpu->f[0];
|
|
/* 028DA9CC */ _t25 = cpu->r[3] + 0x00000038u;
|
|
/* 028DA9CC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 028DA9D0 */ cpu->r[3] = cpu->r[3] + 0x00000030u;
|
|
/* 028DA9D4 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA9D8 */ cpu->f[31] = fma(cpu->f[0], cpu->f[13], cpu->f[12]);
|
|
/* 028DA9DC */ Gambit_fn_02C692EC(cpu);
|
|
/* 028DA9E0 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028DA9E4 */ Gambit_fn_02C69350(cpu);
|
|
/* 028DA9E8 */ cpu->f[2] = cpu->f[31];
|
|
/* 028DA9EC */ Gambit_fn_02C89074(cpu);
|
|
L_028DA9F0: ; // 0x28da9f0
|
|
/* 028DA9F0 */ _t26 = cpu->r[1] + 0x00000020u;
|
|
/* 028DA9F0 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028DA9F4 */ _t27 = cpu->r[1] + 0x00000018u;
|
|
/* 028DA9F4 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t27);
|
|
/* 028DA9F8 */ _t28 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DA9F8 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028DA9F8 */ if (_t29) goto L_028DA9FC; // else: addr-0 trap, fall-through
|
|
L_028DA9FC: ; // 0x28da9fc
|
|
/* 028DA9FC */ _t30 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DA9FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028DAA00 */ cpu->lr = cpu->r[0];
|
|
/* 028DAA04 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028DAA08 */ return;
|
|
}
|
|
|
|
// fn_028DAA0C @ 0x28daa0c
|
|
void Gambit_fn_028DAA0C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25;
|
|
|
|
L_028DAA0C: ; // 0x28daa0c
|
|
/* 028DAA0C */ cpu->r[0] = cpu->lr;
|
|
/* 028DAA10 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DAA14 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 028DAA14 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DAA14 */ cpu->r[1] = _t0;
|
|
/* 028DAA18 */ _t1 = cpu->r[12] + 0xFFFFB120u;
|
|
/* 028DAA18 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t1);
|
|
/* 028DAA1C */ _t2 = cpu->r[1] + 0x00000030u;
|
|
/* 028DAA1C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028DAA20 */ _t3 = cpu->r[1] + 0x00000034u;
|
|
/* 028DAA20 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028DAA24 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DAA28 */ _t4 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028DAA28 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DAA2C */ _t5 = cpu->r[30] + 0x00000030u;
|
|
/* 028DAA2C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 028DAA30 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[1]);
|
|
/* 028DAA34 */ cpu->r[31] = cpu->r[4];
|
|
/* 028DAA38 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAA38 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DAA38 */ if (_t7) goto L_028DAA3C; else goto L_028DAA54;
|
|
L_028DAA3C: ; // 0x28daa3c
|
|
/* 028DAA3C */ _t8 = cpu->r[30] + 0x00000034u;
|
|
/* 028DAA3C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028DAA40 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[1]);
|
|
/* 028DAA44 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAA44 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028DAA44 */ if (_t10) goto L_028DAA48; else goto L_028DAA54;
|
|
L_028DAA48: ; // 0x28daa48
|
|
/* 028DAA48 */ _t11 = cpu->r[30] + 0x00000038u;
|
|
/* 028DAA48 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028DAA4C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[1]);
|
|
/* 028DAA50 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAA50 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028DAA50 */ if (_t13) goto L_028DAAA4; else goto L_028DAA54;
|
|
L_028DAA54: ; // 0x28daa54
|
|
/* 028DAA54 */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 028DAA58 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DAA5C */ Gambit_fn_028DA7E4(cpu);
|
|
/* 028DAA60 */ /* nop */
|
|
/* 028DAA64 */ /* nop */
|
|
/* 028DAA68 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAA68 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028DAA6C */ /* nop */
|
|
/* 028DAA70 */ _t15 = cpu->r[31] + 0x00000008u;
|
|
/* 028DAA70 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028DAA74 */ /* nop */
|
|
/* 028DAA78 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028DAA78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DAA7C */ cpu->f[13] = cpu->f[0] - cpu->f[12];
|
|
/* 028DAA80 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAA80 */ cpu->r[8] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DAA84 */ _t18 = cpu->r[1] + 0x00000020u;
|
|
/* 028DAA84 */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028DAA88 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAA88 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[13]);
|
|
/* 028DAA8C */ _t20 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAA8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DAA90 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 028DAA94 */ _t21 = cpu->r[1] + 0x00000024u;
|
|
/* 028DAA94 */ rbrew_write32(cpu->mem, _t21, cpu->r[8]);
|
|
/* 028DAA98 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DAA9C */ _t22 = cpu->r[1] + 0x00000028u;
|
|
/* 028DAA9C */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
/* 028DAAA0 */ Gambit_fn_028DA910(cpu);
|
|
L_028DAAA4: ; // 0x28daaa4
|
|
/* 028DAAA4 */ _t23 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028DAAA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028DAAA8 */ _t24 = cpu->r[1] + 0x00000030u;
|
|
/* 028DAAA8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028DAAAC */ cpu->lr = cpu->r[0];
|
|
/* 028DAAB0 */ _t25 = cpu->r[1] + 0x00000034u;
|
|
/* 028DAAB0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028DAAB4 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 028DAAB8 */ return;
|
|
}
|
|
|
|
// fn_028DAA14 @ 0x28daa14
|
|
void Gambit_fn_028DAA14(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25;
|
|
|
|
L_028DAA14: ; // 0x28daa14
|
|
/* 028DAA14 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 028DAA14 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DAA14 */ cpu->r[1] = _t0;
|
|
/* 028DAA18 */ _t1 = cpu->r[12] + 0xFFFFB120u;
|
|
/* 028DAA18 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t1);
|
|
/* 028DAA1C */ _t2 = cpu->r[1] + 0x00000030u;
|
|
/* 028DAA1C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028DAA20 */ _t3 = cpu->r[1] + 0x00000034u;
|
|
/* 028DAA20 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028DAA24 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DAA28 */ _t4 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028DAA28 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DAA2C */ _t5 = cpu->r[30] + 0x00000030u;
|
|
/* 028DAA2C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 028DAA30 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[1]);
|
|
/* 028DAA34 */ cpu->r[31] = cpu->r[4];
|
|
/* 028DAA38 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAA38 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DAA38 */ if (_t7) goto L_028DAA3C; else goto L_028DAA54;
|
|
L_028DAA3C: ; // 0x28daa3c
|
|
/* 028DAA3C */ _t8 = cpu->r[30] + 0x00000034u;
|
|
/* 028DAA3C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028DAA40 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[1]);
|
|
/* 028DAA44 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAA44 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028DAA44 */ if (_t10) goto L_028DAA48; else goto L_028DAA54;
|
|
L_028DAA48: ; // 0x28daa48
|
|
/* 028DAA48 */ _t11 = cpu->r[30] + 0x00000038u;
|
|
/* 028DAA48 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028DAA4C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[1]);
|
|
/* 028DAA50 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAA50 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028DAA50 */ if (_t13) goto L_028DAAA4; else goto L_028DAA54;
|
|
L_028DAA54: ; // 0x28daa54
|
|
/* 028DAA54 */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 028DAA58 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DAA5C */ Gambit_fn_028DA7E4(cpu);
|
|
/* 028DAA60 */ /* nop */
|
|
/* 028DAA64 */ /* nop */
|
|
/* 028DAA68 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAA68 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028DAA6C */ /* nop */
|
|
/* 028DAA70 */ _t15 = cpu->r[31] + 0x00000008u;
|
|
/* 028DAA70 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028DAA74 */ /* nop */
|
|
/* 028DAA78 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028DAA78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DAA7C */ cpu->f[13] = cpu->f[0] - cpu->f[12];
|
|
/* 028DAA80 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAA80 */ cpu->r[8] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DAA84 */ _t18 = cpu->r[1] + 0x00000020u;
|
|
/* 028DAA84 */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028DAA88 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAA88 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[13]);
|
|
/* 028DAA8C */ _t20 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAA8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DAA90 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 028DAA94 */ _t21 = cpu->r[1] + 0x00000024u;
|
|
/* 028DAA94 */ rbrew_write32(cpu->mem, _t21, cpu->r[8]);
|
|
/* 028DAA98 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DAA9C */ _t22 = cpu->r[1] + 0x00000028u;
|
|
/* 028DAA9C */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
/* 028DAAA0 */ Gambit_fn_028DA910(cpu);
|
|
L_028DAAA4: ; // 0x28daaa4
|
|
/* 028DAAA4 */ _t23 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028DAAA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028DAAA8 */ _t24 = cpu->r[1] + 0x00000030u;
|
|
/* 028DAAA8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028DAAAC */ cpu->lr = cpu->r[0];
|
|
/* 028DAAB0 */ _t25 = cpu->r[1] + 0x00000034u;
|
|
/* 028DAAB0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028DAAB4 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 028DAAB8 */ return;
|
|
}
|
|
|
|
// fn_028DAABC @ 0x28daabc
|
|
void Gambit_fn_028DAABC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028DAABC: ; // 0x28daabc
|
|
/* 028DAABC */ _t0 = cpu->r[3] + 0x0000003Cu;
|
|
/* 028DAABC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028DAAC0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[0]);
|
|
/* 028DAAC4 */ _t1 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DAAC4 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028DAAC4 */ if (_t2) goto L_028DAAD4; else goto L_028DAAC8;
|
|
L_028DAAC8: ; // 0x28daac8
|
|
/* 028DAAC8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DAACC */ _t3 = cpu->r[12] + 0xFFFFB120u;
|
|
/* 028DAACC */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t3);
|
|
/* 028DAAD0 */ return;
|
|
L_028DAAD4: ; // 0x28daad4
|
|
/* 028DAAD4 */ _t4 = cpu->r[3] + 0x00000040u;
|
|
/* 028DAAD4 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028DAAD8 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[13]);
|
|
/* 028DAADC */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DAADC */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DAADC */ if (_t6) goto L_028DAAE0; else goto L_028DAAEC;
|
|
L_028DAAE0: ; // 0x28daae0
|
|
/* 028DAAE0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DAAE4 */ _t7 = cpu->r[12] + 0xFFFFB124u;
|
|
/* 028DAAE4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028DAAE8 */ return;
|
|
L_028DAAEC: ; // 0x28daaec
|
|
/* 028DAAEC */ cpu->f[0] = cpu->f[1] - cpu->f[0];
|
|
/* 028DAAF0 */ _t8 = cpu->r[3] + 0x00000044u;
|
|
/* 028DAAF0 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028DAAF4 */ cpu->f[1] = cpu->f[0] / cpu->f[13];
|
|
/* 028DAAF8 */ return;
|
|
}
|
|
|
|
// fn_028DAAFC @ 0x28daafc
|
|
void Gambit_fn_028DAAFC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028DAAFC: ; // 0x28daafc
|
|
/* 028DAAFC */ cpu->r[0] = cpu->lr;
|
|
/* 028DAB00 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DAB00 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DAB00 */ cpu->r[1] = _t0;
|
|
/* 028DAB04 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAB04 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DAB08 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DAB0C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAB0C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DAB10 */ Gambit_fn_028DAA0C(cpu);
|
|
/* 028DAB14 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DAB18 */ Gambit_fn_028DAABC(cpu);
|
|
/* 028DAB1C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAB1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028DAB20 */ cpu->lr = cpu->r[0];
|
|
/* 028DAB24 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAB24 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028DAB28 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DAB2C */ return;
|
|
}
|
|
|
|
// fn_028DAB00 @ 0x28dab00
|
|
void Gambit_fn_028DAB00(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028DAB00: ; // 0x28dab00
|
|
/* 028DAB00 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DAB00 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DAB00 */ cpu->r[1] = _t0;
|
|
/* 028DAB04 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAB04 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DAB08 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DAB0C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAB0C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DAB10 */ Gambit_fn_028DAA0C(cpu);
|
|
/* 028DAB14 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DAB18 */ Gambit_fn_028DAABC(cpu);
|
|
/* 028DAB1C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAB1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028DAB20 */ cpu->lr = cpu->r[0];
|
|
/* 028DAB24 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAB24 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028DAB28 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DAB2C */ return;
|
|
}
|
|
|
|
// fn_028DAB30 @ 0x28dab30
|
|
void Gambit_fn_028DAB30(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028DAB30: ; // 0x28dab30
|
|
/* 028DAB30 */ cpu->r[0] = cpu->lr;
|
|
/* 028DAB34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DAB34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DAB34 */ cpu->r[1] = _t0;
|
|
/* 028DAB38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAB38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DAB3C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DAB40 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAB40 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DAB44 */ Gambit_fn_028DA910(cpu);
|
|
/* 028DAB48 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DAB4C */ Gambit_fn_028DAABC(cpu);
|
|
/* 028DAB50 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAB50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028DAB54 */ cpu->lr = cpu->r[0];
|
|
/* 028DAB58 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAB58 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028DAB5C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DAB60 */ return;
|
|
}
|
|
|
|
// fn_028DAB34 @ 0x28dab34
|
|
void Gambit_fn_028DAB34(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028DAB34: ; // 0x28dab34
|
|
/* 028DAB34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DAB34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DAB34 */ cpu->r[1] = _t0;
|
|
/* 028DAB38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAB38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DAB3C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DAB40 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAB40 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DAB44 */ Gambit_fn_028DA910(cpu);
|
|
/* 028DAB48 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DAB4C */ Gambit_fn_028DAABC(cpu);
|
|
/* 028DAB50 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAB50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028DAB54 */ cpu->lr = cpu->r[0];
|
|
/* 028DAB58 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAB58 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028DAB5C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DAB60 */ return;
|
|
}
|
|
|
|
// fn_028DAB64 @ 0x28dab64
|
|
void Gambit_fn_028DAB64(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028DAB64: ; // 0x28dab64
|
|
/* 028DAB64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DAB68 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAB68 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DAB68 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DAB68 */ goto L_028DAB6C;
|
|
L_028DAB6C: ; // 0x28dab6c
|
|
/* 028DAB6C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DAB6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DAB70 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAB70 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DAB70 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DAB70 */ goto L_028DAB74;
|
|
L_028DAB74: ; // 0x28dab74
|
|
/* 028DAB74 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028DAB78 @ 0x28dab78
|
|
void Gambit_fn_028DAB78(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27;
|
|
|
|
L_028DAB78: ; // 0x28dab78
|
|
/* 028DAB78 */ cpu->r[0] = cpu->lr;
|
|
/* 028DAB7C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DAB7C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DAB7C */ cpu->r[1] = _t0;
|
|
/* 028DAB80 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAB80 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028DAB84 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAB84 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DAB88 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAB88 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028DAB8C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DAB8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DAB90 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAB90 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DAB94 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAB94 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DAB94 */ if (_t6) goto L_028DAB98; else goto L_028DABA8;
|
|
L_028DAB98: ; // 0x28dab98
|
|
/* 028DAB98 */ cpu->r[3] = 0x00000068u;
|
|
/* 028DAB9C */ Gambit_fn_02801A78(cpu);
|
|
/* 028DABA0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DABA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DABA4 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DABA4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DABA4 */ if (_t8) goto L_028DAC08; else goto L_028DABA8;
|
|
L_028DABA8: ; // 0x28daba8
|
|
/* 028DABA8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DABAC */ cpu->r[29] = cpu->r[31] + 0x00000014u;
|
|
/* 028DABAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DABB0 */ cpu->r[0] = cpu->r[0] + 0xFFFFB1C4u;
|
|
/* 028DABB4 */ _t9 = cpu->r[31] + 0x00000000u;
|
|
/* 028DABB4 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028DABB8 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DABB8 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DABB8 */ if (_t11) goto L_028DABBC; else goto L_028DABCC;
|
|
L_028DABBC: ; // 0x28dabbc
|
|
/* 028DABBC */ cpu->r[3] = 0x00000018u;
|
|
/* 028DABC0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DABC4 */ cpu->r[29] = cpu->r[3];
|
|
/* 028DABC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DABC8 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DABC8 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028DABC8 */ if (_t13) goto L_028DAC00; else goto L_028DABCC;
|
|
L_028DABCC: ; // 0x28dabcc
|
|
/* 028DABCC */ cpu->r[3] = cpu->r[29];
|
|
/* 028DABCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DABD0 */ cpu->r[30] = 0x00000000u;
|
|
/* 028DABD4 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DABD4 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028DABD4 */ if (_t15) goto L_028DABD8; else goto L_028DABE8;
|
|
L_028DABD8: ; // 0x28dabd8
|
|
/* 028DABD8 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028DABDC */ Gambit_fn_02801A78(cpu);
|
|
/* 028DABE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DABE4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DABE4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DABE4 */ if (_t17) goto L_028DABF4; else goto L_028DABE8;
|
|
L_028DABE8: ; // 0x28dabe8
|
|
/* 028DABE8 */ _t18 = cpu->r[3] + 0x00000004u;
|
|
/* 028DABE8 */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
/* 028DABEC */ _t19 = cpu->r[3] + 0x00000008u;
|
|
/* 028DABEC */ rbrew_write32(cpu->mem, _t19, cpu->r[30]);
|
|
/* 028DABF0 */ _t20 = cpu->r[3] + 0x00000000u;
|
|
/* 028DABF0 */ rbrew_write32(cpu->mem, _t20, cpu->r[3]);
|
|
L_028DABF4: ; // 0x28dabf4
|
|
/* 028DABF4 */ _t21 = cpu->r[29] + 0x00000010u;
|
|
/* 028DABF4 */ rbrew_write32(cpu->mem, _t21, cpu->r[30]);
|
|
/* 028DABF8 */ _t22 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028DABF8 */ rbrew_write32(cpu->mem, _t22, cpu->r[30]);
|
|
/* 028DABFC */ _t23 = cpu->r[29] + 0x00000014u;
|
|
/* 028DABFC */ rbrew_write32(cpu->mem, _t23, cpu->r[30]);
|
|
L_028DAC00: ; // 0x28dac00
|
|
/* 028DAC00 */ cpu->r[3] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028DAC04 */ Gambit_fn_02836EBC(cpu);
|
|
L_028DAC08: ; // 0x28dac08
|
|
/* 028DAC08 */ _t24 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAC08 */ cpu->r[29] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028DAC0C */ _t25 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAC0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028DAC10 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DAC14 */ _t26 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAC14 */ cpu->r[30] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028DAC18 */ cpu->lr = cpu->r[0];
|
|
/* 028DAC1C */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAC1C */ cpu->r[31] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028DAC20 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DAC24 */ return;
|
|
}
|
|
|
|
// fn_028DAB7C @ 0x28dab7c
|
|
void Gambit_fn_028DAB7C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27;
|
|
|
|
L_028DAB7C: ; // 0x28dab7c
|
|
/* 028DAB7C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DAB7C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DAB7C */ cpu->r[1] = _t0;
|
|
/* 028DAB80 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAB80 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028DAB84 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAB84 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DAB88 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAB88 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028DAB8C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DAB8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DAB90 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAB90 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DAB94 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAB94 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DAB94 */ if (_t6) goto L_028DAB98; else goto L_028DABA8;
|
|
L_028DAB98: ; // 0x28dab98
|
|
/* 028DAB98 */ cpu->r[3] = 0x00000068u;
|
|
/* 028DAB9C */ Gambit_fn_02801A78(cpu);
|
|
/* 028DABA0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DABA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DABA4 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DABA4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DABA4 */ if (_t8) goto L_028DAC08; else goto L_028DABA8;
|
|
L_028DABA8: ; // 0x28daba8
|
|
/* 028DABA8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DABAC */ cpu->r[29] = cpu->r[31] + 0x00000014u;
|
|
/* 028DABAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DABB0 */ cpu->r[0] = cpu->r[0] + 0xFFFFB1C4u;
|
|
/* 028DABB4 */ _t9 = cpu->r[31] + 0x00000000u;
|
|
/* 028DABB4 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028DABB8 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DABB8 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DABB8 */ if (_t11) goto L_028DABBC; else goto L_028DABCC;
|
|
L_028DABBC: ; // 0x28dabbc
|
|
/* 028DABBC */ cpu->r[3] = 0x00000018u;
|
|
/* 028DABC0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DABC4 */ cpu->r[29] = cpu->r[3];
|
|
/* 028DABC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DABC8 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DABC8 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028DABC8 */ if (_t13) goto L_028DAC00; else goto L_028DABCC;
|
|
L_028DABCC: ; // 0x28dabcc
|
|
/* 028DABCC */ cpu->r[3] = cpu->r[29];
|
|
/* 028DABCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DABD0 */ cpu->r[30] = 0x00000000u;
|
|
/* 028DABD4 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DABD4 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028DABD4 */ if (_t15) goto L_028DABD8; else goto L_028DABE8;
|
|
L_028DABD8: ; // 0x28dabd8
|
|
/* 028DABD8 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028DABDC */ Gambit_fn_02801A78(cpu);
|
|
/* 028DABE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DABE4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DABE4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DABE4 */ if (_t17) goto L_028DABF4; else goto L_028DABE8;
|
|
L_028DABE8: ; // 0x28dabe8
|
|
/* 028DABE8 */ _t18 = cpu->r[3] + 0x00000004u;
|
|
/* 028DABE8 */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
/* 028DABEC */ _t19 = cpu->r[3] + 0x00000008u;
|
|
/* 028DABEC */ rbrew_write32(cpu->mem, _t19, cpu->r[30]);
|
|
/* 028DABF0 */ _t20 = cpu->r[3] + 0x00000000u;
|
|
/* 028DABF0 */ rbrew_write32(cpu->mem, _t20, cpu->r[3]);
|
|
L_028DABF4: ; // 0x28dabf4
|
|
/* 028DABF4 */ _t21 = cpu->r[29] + 0x00000010u;
|
|
/* 028DABF4 */ rbrew_write32(cpu->mem, _t21, cpu->r[30]);
|
|
/* 028DABF8 */ _t22 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028DABF8 */ rbrew_write32(cpu->mem, _t22, cpu->r[30]);
|
|
/* 028DABFC */ _t23 = cpu->r[29] + 0x00000014u;
|
|
/* 028DABFC */ rbrew_write32(cpu->mem, _t23, cpu->r[30]);
|
|
L_028DAC00: ; // 0x28dac00
|
|
/* 028DAC00 */ cpu->r[3] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028DAC04 */ Gambit_fn_02836EBC(cpu);
|
|
L_028DAC08: ; // 0x28dac08
|
|
/* 028DAC08 */ _t24 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAC08 */ cpu->r[29] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028DAC0C */ _t25 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAC0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028DAC10 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DAC14 */ _t26 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAC14 */ cpu->r[30] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028DAC18 */ cpu->lr = cpu->r[0];
|
|
/* 028DAC1C */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAC1C */ cpu->r[31] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028DAC20 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DAC24 */ return;
|
|
}
|
|
|
|
// fn_028DAC28 @ 0x28dac28
|
|
void Gambit_fn_028DAC28(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20;
|
|
|
|
L_028DAC28: ; // 0x28dac28
|
|
/* 028DAC28 */ cpu->r[0] = cpu->lr;
|
|
/* 028DAC2C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DAC2C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DAC2C */ cpu->r[1] = _t0;
|
|
/* 028DAC30 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAC30 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DAC34 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028DAC34 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028DAC38 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAC38 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DAC3C */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAC3C */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028DAC40 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAC40 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DAC44 */ cpu->r[29] = 0x101D0000u;
|
|
/* 028DAC48 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DAC4C */ _t6 = cpu->r[29] + 0xFFFF9AC4u;
|
|
/* 028DAC4C */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DAC4C */ cpu->r[29] = _t6;
|
|
/* 028DAC50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DAC54 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAC54 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DAC54 */ if (_t8) goto L_028DAC58; else goto L_028DACA8;
|
|
L_028DAC58: ; // 0x28dac58
|
|
/* 028DAC58 */ cpu->r[4] = cpu->r[30];
|
|
/* 028DAC5C */ cpu->r[3] = 0x00000068u;
|
|
/* 028DAC60 */ cpu->r[5] = 0x00000004u;
|
|
/* 028DAC64 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028DAC68 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DAC6C */ cpu->r[28] = cpu->r[31] + 0x00000004u;
|
|
/* 028DAC6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028DAC70 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAC70 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028DAC70 */ if (_t10) goto L_028DAC90; else goto L_028DAC74;
|
|
L_028DAC74: ; // 0x28dac74
|
|
/* 028DAC74 */ cpu->r[5] = 0x00000003u;
|
|
/* 028DAC78 */ cpu->r[4] = cpu->r[30];
|
|
/* 028DAC7C */ cpu->r[3] = cpu->r[28];
|
|
/* 028DAC80 */ Gambit_fn_02821D88(cpu);
|
|
/* 028DAC84 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DAC88 */ cpu->r[0] = cpu->r[0] + 0xFFFFB1B4u;
|
|
/* 028DAC8C */ _t11 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028DAC8C */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_028DAC90: ; // 0x28dac90
|
|
/* 028DAC90 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028DAC94 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DAC94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DAC98 */ _t12 = cpu->r[12] + 0xFFFF9AC8u;
|
|
/* 028DAC98 */ rbrew_write32(cpu->mem, _t12, cpu->r[28]);
|
|
/* 028DAC9C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAC9C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028DAC9C */ if (_t14) goto L_028DACA4; else goto L_028DACA0;
|
|
L_028DACA0: ; // 0x28daca0
|
|
/* 028DACA0 */ Gambit_fn_028DAB78(cpu);
|
|
L_028DACA4: ; // 0x28daca4
|
|
/* 028DACA4 */ _t15 = cpu->r[29] + 0x00000000u;
|
|
/* 028DACA4 */ rbrew_write32(cpu->mem, _t15, cpu->r[3]);
|
|
L_028DACA8: ; // 0x28daca8
|
|
/* 028DACA8 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028DACA8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DACAC */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DACAC */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DACB0 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DACB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DACB4 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028DACB4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DACB8 */ cpu->lr = cpu->r[0];
|
|
/* 028DACBC */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028DACBC */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DACC0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DACC4 */ return;
|
|
}
|
|
|
|
// fn_028DAC2C @ 0x28dac2c
|
|
void Gambit_fn_028DAC2C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20;
|
|
|
|
L_028DAC2C: ; // 0x28dac2c
|
|
/* 028DAC2C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DAC2C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DAC2C */ cpu->r[1] = _t0;
|
|
/* 028DAC30 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAC30 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DAC34 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028DAC34 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028DAC38 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAC38 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DAC3C */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAC3C */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028DAC40 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAC40 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DAC44 */ cpu->r[29] = 0x101D0000u;
|
|
/* 028DAC48 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DAC4C */ _t6 = cpu->r[29] + 0xFFFF9AC4u;
|
|
/* 028DAC4C */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DAC4C */ cpu->r[29] = _t6;
|
|
/* 028DAC50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DAC54 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAC54 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DAC54 */ if (_t8) goto L_028DAC58; else goto L_028DACA8;
|
|
L_028DAC58: ; // 0x28dac58
|
|
/* 028DAC58 */ cpu->r[4] = cpu->r[30];
|
|
/* 028DAC5C */ cpu->r[3] = 0x00000068u;
|
|
/* 028DAC60 */ cpu->r[5] = 0x00000004u;
|
|
/* 028DAC64 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028DAC68 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DAC6C */ cpu->r[28] = cpu->r[31] + 0x00000004u;
|
|
/* 028DAC6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028DAC70 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAC70 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028DAC70 */ if (_t10) goto L_028DAC90; else goto L_028DAC74;
|
|
L_028DAC74: ; // 0x28dac74
|
|
/* 028DAC74 */ cpu->r[5] = 0x00000003u;
|
|
/* 028DAC78 */ cpu->r[4] = cpu->r[30];
|
|
/* 028DAC7C */ cpu->r[3] = cpu->r[28];
|
|
/* 028DAC80 */ Gambit_fn_02821D88(cpu);
|
|
/* 028DAC84 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DAC88 */ cpu->r[0] = cpu->r[0] + 0xFFFFB1B4u;
|
|
/* 028DAC8C */ _t11 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028DAC8C */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_028DAC90: ; // 0x28dac90
|
|
/* 028DAC90 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028DAC94 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DAC94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DAC98 */ _t12 = cpu->r[12] + 0xFFFF9AC8u;
|
|
/* 028DAC98 */ rbrew_write32(cpu->mem, _t12, cpu->r[28]);
|
|
/* 028DAC9C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAC9C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028DAC9C */ if (_t14) goto L_028DACA4; else goto L_028DACA0;
|
|
L_028DACA0: ; // 0x28daca0
|
|
/* 028DACA0 */ Gambit_fn_028DAB78(cpu);
|
|
L_028DACA4: ; // 0x28daca4
|
|
/* 028DACA4 */ _t15 = cpu->r[29] + 0x00000000u;
|
|
/* 028DACA4 */ rbrew_write32(cpu->mem, _t15, cpu->r[3]);
|
|
L_028DACA8: ; // 0x28daca8
|
|
/* 028DACA8 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028DACA8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DACAC */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DACAC */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DACB0 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DACB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DACB4 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028DACB4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DACB8 */ cpu->lr = cpu->r[0];
|
|
/* 028DACBC */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028DACBC */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DACC0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DACC4 */ return;
|
|
}
|
|
|
|
// fn_028DACC8 @ 0x28dacc8
|
|
void Gambit_fn_028DACC8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30;
|
|
|
|
L_028DACC8: ; // 0x28dacc8
|
|
/* 028DACC8 */ cpu->r[0] = cpu->lr;
|
|
/* 028DACCC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DACCC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DACCC */ cpu->r[1] = _t0;
|
|
/* 028DACD0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DACD0 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028DACD4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028DACD4 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028DACD8 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028DACD8 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028DACDC */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028DACDC */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028DACE0 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DACE0 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DACE4 */ _t6 = cpu->r[3] + 0x00000024u;
|
|
/* 028DACE4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DACE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DACEC */ cpu->r[28] = cpu->r[3] + 0x00000014u;
|
|
/* 028DACF0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DACF0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DACF0 */ if (_t8) goto L_028DAD64; else goto L_028DACF4;
|
|
L_028DACF4: ; // 0x28dacf4
|
|
/* 028DACF4 */ _t9 = cpu->r[28] + 0x00000004u;
|
|
/* 028DACF4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DACF8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[28]);
|
|
/* 028DACFC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DACFC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DACFC */ if (_t11) goto L_028DAD4C; else goto L_028DAD00;
|
|
L_028DAD00: ; // 0x28dad00
|
|
/* 028DAD00 */ _t12 = cpu->r[29] + 0x00000004u;
|
|
/* 028DAD00 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DAD04 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DAD08 */ Gambit_fn_02801EDC(cpu);
|
|
/* 028DAD0C */ _t13 = cpu->r[28] + 0x00000008u;
|
|
/* 028DAD0C */ cpu->r[7] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DAD10 */ cpu->r[7] = cpu->r[7] + 0xFFFFFFFFu;
|
|
/* 028DAD14 */ _t14 = cpu->r[28] + 0x00000008u;
|
|
/* 028DAD14 */ rbrew_write32(cpu->mem, _t14, cpu->r[7]);
|
|
/* 028DAD18 */ _t15 = cpu->r[29] + 0xFFFFFFFCu;
|
|
/* 028DAD18 */ cpu->r[8] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028DAD1C */ _t16 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028DAD1C */ cpu->r[9] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DAD20 */ cpu->r[31] = cpu->r[29] + 0xFFFFFFB4u;
|
|
/* 028DAD24 */ cpu->ctr = cpu->r[9];
|
|
/* 028DAD28 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DAD2C */ cpu->r[4] = 0x00000002u;
|
|
/* 028DAD30 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DAD34 */ _t17 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028DAD34 */ cpu->r[10] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DAD38 */ _t18 = cpu->r[29] + 0xFFFFFFB4u;
|
|
/* 028DAD38 */ rbrew_write32(cpu->mem, _t18, cpu->r[10]);
|
|
/* 028DAD3C */ cpu->r[29] = cpu->r[30];
|
|
/* 028DAD40 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[28]);
|
|
/* 028DAD44 */ _t19 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028DAD44 */ rbrew_write32(cpu->mem, _t19, cpu->r[31]);
|
|
/* 028DAD48 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAD48 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028DAD48 */ if (_t21) goto L_028DAD4C; else goto L_028DAD00;
|
|
L_028DAD4C: ; // 0x28dad4c
|
|
/* 028DAD4C */ _t22 = cpu->r[28] + 0x00000010u;
|
|
/* 028DAD4C */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DAD50 */ Gambit_fn_02801BB4(cpu);
|
|
/* 028DAD54 */ cpu->r[11] = 0x00000000u;
|
|
/* 028DAD58 */ _t23 = cpu->r[28] + 0x00000014u;
|
|
/* 028DAD58 */ rbrew_write32(cpu->mem, _t23, cpu->r[11]);
|
|
/* 028DAD5C */ _t24 = cpu->r[28] + 0x00000010u;
|
|
/* 028DAD5C */ rbrew_write32(cpu->mem, _t24, cpu->r[11]);
|
|
/* 028DAD60 */ _t25 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028DAD60 */ rbrew_write32(cpu->mem, _t25, cpu->r[11]);
|
|
L_028DAD64: ; // 0x28dad64
|
|
/* 028DAD64 */ _t26 = cpu->r[1] + 0x00000008u;
|
|
/* 028DAD64 */ cpu->r[28] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028DAD68 */ _t27 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAD68 */ cpu->r[29] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028DAD6C */ _t28 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAD6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028DAD70 */ _t29 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAD70 */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028DAD74 */ cpu->lr = cpu->r[0];
|
|
/* 028DAD78 */ _t30 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAD78 */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028DAD7C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DAD80 */ return;
|
|
}
|
|
|
|
// fn_028DACCC @ 0x28daccc
|
|
void Gambit_fn_028DACCC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30;
|
|
|
|
L_028DACCC: ; // 0x28daccc
|
|
/* 028DACCC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DACCC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DACCC */ cpu->r[1] = _t0;
|
|
/* 028DACD0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DACD0 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028DACD4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028DACD4 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028DACD8 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028DACD8 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028DACDC */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028DACDC */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028DACE0 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DACE0 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DACE4 */ _t6 = cpu->r[3] + 0x00000024u;
|
|
/* 028DACE4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DACE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DACEC */ cpu->r[28] = cpu->r[3] + 0x00000014u;
|
|
/* 028DACF0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DACF0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DACF0 */ if (_t8) goto L_028DAD64; else goto L_028DACF4;
|
|
L_028DACF4: ; // 0x28dacf4
|
|
/* 028DACF4 */ _t9 = cpu->r[28] + 0x00000004u;
|
|
/* 028DACF4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DACF8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[28]);
|
|
/* 028DACFC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DACFC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DACFC */ if (_t11) goto L_028DAD4C; else goto L_028DAD00;
|
|
L_028DAD00: ; // 0x28dad00
|
|
/* 028DAD00 */ _t12 = cpu->r[29] + 0x00000004u;
|
|
/* 028DAD00 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DAD04 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DAD08 */ Gambit_fn_02801EDC(cpu);
|
|
/* 028DAD0C */ _t13 = cpu->r[28] + 0x00000008u;
|
|
/* 028DAD0C */ cpu->r[7] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DAD10 */ cpu->r[7] = cpu->r[7] + 0xFFFFFFFFu;
|
|
/* 028DAD14 */ _t14 = cpu->r[28] + 0x00000008u;
|
|
/* 028DAD14 */ rbrew_write32(cpu->mem, _t14, cpu->r[7]);
|
|
/* 028DAD18 */ _t15 = cpu->r[29] + 0xFFFFFFFCu;
|
|
/* 028DAD18 */ cpu->r[8] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028DAD1C */ _t16 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028DAD1C */ cpu->r[9] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DAD20 */ cpu->r[31] = cpu->r[29] + 0xFFFFFFB4u;
|
|
/* 028DAD24 */ cpu->ctr = cpu->r[9];
|
|
/* 028DAD28 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DAD2C */ cpu->r[4] = 0x00000002u;
|
|
/* 028DAD30 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DAD34 */ _t17 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028DAD34 */ cpu->r[10] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DAD38 */ _t18 = cpu->r[29] + 0xFFFFFFB4u;
|
|
/* 028DAD38 */ rbrew_write32(cpu->mem, _t18, cpu->r[10]);
|
|
/* 028DAD3C */ cpu->r[29] = cpu->r[30];
|
|
/* 028DAD40 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[28]);
|
|
/* 028DAD44 */ _t19 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028DAD44 */ rbrew_write32(cpu->mem, _t19, cpu->r[31]);
|
|
/* 028DAD48 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAD48 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028DAD48 */ if (_t21) goto L_028DAD4C; else goto L_028DAD00;
|
|
L_028DAD4C: ; // 0x28dad4c
|
|
/* 028DAD4C */ _t22 = cpu->r[28] + 0x00000010u;
|
|
/* 028DAD4C */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DAD50 */ Gambit_fn_02801BB4(cpu);
|
|
/* 028DAD54 */ cpu->r[11] = 0x00000000u;
|
|
/* 028DAD58 */ _t23 = cpu->r[28] + 0x00000014u;
|
|
/* 028DAD58 */ rbrew_write32(cpu->mem, _t23, cpu->r[11]);
|
|
/* 028DAD5C */ _t24 = cpu->r[28] + 0x00000010u;
|
|
/* 028DAD5C */ rbrew_write32(cpu->mem, _t24, cpu->r[11]);
|
|
/* 028DAD60 */ _t25 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028DAD60 */ rbrew_write32(cpu->mem, _t25, cpu->r[11]);
|
|
L_028DAD64: ; // 0x28dad64
|
|
/* 028DAD64 */ _t26 = cpu->r[1] + 0x00000008u;
|
|
/* 028DAD64 */ cpu->r[28] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028DAD68 */ _t27 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAD68 */ cpu->r[29] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028DAD6C */ _t28 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAD6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028DAD70 */ _t29 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAD70 */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028DAD74 */ cpu->lr = cpu->r[0];
|
|
/* 028DAD78 */ _t30 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAD78 */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028DAD7C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DAD80 */ return;
|
|
}
|
|
|
|
// fn_028DAD84 @ 0x28dad84
|
|
void Gambit_fn_028DAD84(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028DAD84: ; // 0x28dad84
|
|
/* 028DAD84 */ cpu->r[0] = cpu->lr;
|
|
/* 028DAD88 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DAD88 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DAD88 */ cpu->r[1] = _t0;
|
|
/* 028DAD8C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028DAD8C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DAD90 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAD90 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DAD94 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DAD94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DAD98 */ cpu->r[30] = cpu->r[4];
|
|
/* 028DAD9C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAD9C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DADA0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DADA0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DADA0 */ if (_t5) goto L_028DADD4; else goto L_028DADA4;
|
|
L_028DADA4: ; // 0x28dada4
|
|
/* 028DADA4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DADA8 */ cpu->r[0] = cpu->r[0] + 0xFFFFB1C4u;
|
|
/* 028DADAC */ cpu->r[3] = cpu->r[31];
|
|
/* 028DADB0 */ _t6 = cpu->r[31] + 0x00000000u;
|
|
/* 028DADB0 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028DADB4 */ Gambit_fn_028DACC8(cpu);
|
|
/* 028DADB8 */ cpu->r[3] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028DADBC */ cpu->r[4] = 0x00000002u;
|
|
/* 028DADC0 */ Gambit_fn_02836FA8(cpu);
|
|
/* 028DADC4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DADC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DADC8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DADC8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DADC8 */ if (_t8) goto L_028DADD4; else goto L_028DADCC;
|
|
L_028DADCC: ; // 0x28dadcc
|
|
/* 028DADCC */ cpu->r[3] = cpu->r[31];
|
|
/* 028DADD0 */ Gambit_fn_02801BB0(cpu);
|
|
L_028DADD4: ; // 0x28dadd4
|
|
/* 028DADD4 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028DADD4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DADD8 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028DADD8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DADDC */ cpu->lr = cpu->r[0];
|
|
/* 028DADE0 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DADE0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DADE4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DADE8 */ return;
|
|
}
|
|
|
|
// fn_028DAD88 @ 0x28dad88
|
|
void Gambit_fn_028DAD88(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028DAD88: ; // 0x28dad88
|
|
/* 028DAD88 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DAD88 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DAD88 */ cpu->r[1] = _t0;
|
|
/* 028DAD8C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028DAD8C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DAD90 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAD90 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DAD94 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DAD94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DAD98 */ cpu->r[30] = cpu->r[4];
|
|
/* 028DAD9C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAD9C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DADA0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DADA0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DADA0 */ if (_t5) goto L_028DADD4; else goto L_028DADA4;
|
|
L_028DADA4: ; // 0x28dada4
|
|
/* 028DADA4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DADA8 */ cpu->r[0] = cpu->r[0] + 0xFFFFB1C4u;
|
|
/* 028DADAC */ cpu->r[3] = cpu->r[31];
|
|
/* 028DADB0 */ _t6 = cpu->r[31] + 0x00000000u;
|
|
/* 028DADB0 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028DADB4 */ Gambit_fn_028DACC8(cpu);
|
|
/* 028DADB8 */ cpu->r[3] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028DADBC */ cpu->r[4] = 0x00000002u;
|
|
/* 028DADC0 */ Gambit_fn_02836FA8(cpu);
|
|
/* 028DADC4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DADC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DADC8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DADC8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DADC8 */ if (_t8) goto L_028DADD4; else goto L_028DADCC;
|
|
L_028DADCC: ; // 0x28dadcc
|
|
/* 028DADCC */ cpu->r[3] = cpu->r[31];
|
|
/* 028DADD0 */ Gambit_fn_02801BB0(cpu);
|
|
L_028DADD4: ; // 0x28dadd4
|
|
/* 028DADD4 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028DADD4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DADD8 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028DADD8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DADDC */ cpu->lr = cpu->r[0];
|
|
/* 028DADE0 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DADE0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DADE4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DADE8 */ return;
|
|
}
|
|
|
|
// fn_028DADEC @ 0x28dadec
|
|
void Gambit_fn_028DADEC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22;
|
|
|
|
L_028DADEC: ; // 0x28dadec
|
|
/* 028DADEC */ cpu->r[0] = cpu->lr;
|
|
/* 028DADF0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DADF0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DADF0 */ cpu->r[1] = _t0;
|
|
/* 028DADF4 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028DADF4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DADF8 */ cpu->r[31] = cpu->r[4];
|
|
/* 028DADF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DADFC */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028DADFC */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028DAE00 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DAE04 */ cpu->r[4] = cpu->r[5];
|
|
/* 028DAE08 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAE08 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DAE0C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAE0C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DAE10 */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DAE10 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DAE10 */ if (_t6) goto L_028DAE14; else goto L_028DAE68;
|
|
L_028DAE14: ; // 0x28dae14
|
|
/* 028DAE14 */ cpu->r[29] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x00000054u);
|
|
/* 028DAE18 */ cpu->r[5] = 0x00000004u;
|
|
/* 028DAE1C */ cpu->r[3] = cpu->r[29];
|
|
/* 028DAE20 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028DAE24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DAE28 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAE28 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DAE28 */ if (_t8) goto L_028DAE68; else goto L_028DAE2C;
|
|
L_028DAE2C: ; // 0x28dae2c
|
|
/* 028DAE2C */ cpu->r[0] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028DAE2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DAE30 */ _t9 = cpu->r[30] + 0x00000020u;
|
|
/* 028DAE30 */ rbrew_write32(cpu->mem, _t9, cpu->r[3]);
|
|
/* 028DAE34 */ _t10 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DAE34 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DAE34 */ if (_t11) goto L_028DAE38; else goto L_028DAE54;
|
|
L_028DAE38: ; // 0x28dae38
|
|
/* 028DAE38 */ cpu->ctr = cpu->r[0];
|
|
/* 028DAE3C */ cpu->r[10] = 0x00000000u;
|
|
/* 028DAE40 */ cpu->r[11] = cpu->r[3] + 0x00000054u;
|
|
L_028DAE44: ; // 0x28dae44
|
|
/* 028DAE44 */ _t12 = cpu->r[3] + cpu->r[10];
|
|
/* 028DAE44 */ rbrew_write32(cpu->mem, _t12, cpu->r[11]);
|
|
/* 028DAE48 */ cpu->r[10] = cpu->r[10] + 0x00000054u;
|
|
/* 028DAE4C */ cpu->r[11] = cpu->r[11] + 0x00000054u;
|
|
/* 028DAE50 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028DAE50 */ _t13 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028DAE50 */ _t14 = _t13 >> (0x00000002u & 31u);
|
|
/* 028DAE50 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028DAE50 */ if (_t15) goto L_028DAE44; else goto L_028DAE54;
|
|
L_028DAE54: ; // 0x28dae54
|
|
/* 028DAE54 */ cpu->r[12] = cpu->r[3] + cpu->r[29];
|
|
/* 028DAE58 */ cpu->r[0] = 0x00000000u;
|
|
/* 028DAE5C */ _t16 = cpu->r[12] + 0xFFFFFFACu;
|
|
/* 028DAE5C */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 028DAE60 */ _t17 = cpu->r[30] + 0x00000028u;
|
|
/* 028DAE60 */ rbrew_write32(cpu->mem, _t17, cpu->r[31]);
|
|
/* 028DAE64 */ _t18 = cpu->r[30] + 0x00000024u;
|
|
/* 028DAE64 */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
L_028DAE68: ; // 0x28dae68
|
|
/* 028DAE68 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAE68 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DAE6C */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAE6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DAE70 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAE70 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DAE74 */ cpu->lr = cpu->r[0];
|
|
/* 028DAE78 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAE78 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DAE7C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DAE80 */ return;
|
|
}
|
|
|
|
// fn_028DADF0 @ 0x28dadf0
|
|
void Gambit_fn_028DADF0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22;
|
|
|
|
L_028DADF0: ; // 0x28dadf0
|
|
/* 028DADF0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DADF0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DADF0 */ cpu->r[1] = _t0;
|
|
/* 028DADF4 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028DADF4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DADF8 */ cpu->r[31] = cpu->r[4];
|
|
/* 028DADF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DADFC */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028DADFC */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028DAE00 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DAE04 */ cpu->r[4] = cpu->r[5];
|
|
/* 028DAE08 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAE08 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DAE0C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAE0C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DAE10 */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DAE10 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DAE10 */ if (_t6) goto L_028DAE14; else goto L_028DAE68;
|
|
L_028DAE14: ; // 0x28dae14
|
|
/* 028DAE14 */ cpu->r[29] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x00000054u);
|
|
/* 028DAE18 */ cpu->r[5] = 0x00000004u;
|
|
/* 028DAE1C */ cpu->r[3] = cpu->r[29];
|
|
/* 028DAE20 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028DAE24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DAE28 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAE28 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DAE28 */ if (_t8) goto L_028DAE68; else goto L_028DAE2C;
|
|
L_028DAE2C: ; // 0x28dae2c
|
|
/* 028DAE2C */ cpu->r[0] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028DAE2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DAE30 */ _t9 = cpu->r[30] + 0x00000020u;
|
|
/* 028DAE30 */ rbrew_write32(cpu->mem, _t9, cpu->r[3]);
|
|
/* 028DAE34 */ _t10 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DAE34 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DAE34 */ if (_t11) goto L_028DAE38; else goto L_028DAE54;
|
|
L_028DAE38: ; // 0x28dae38
|
|
/* 028DAE38 */ cpu->ctr = cpu->r[0];
|
|
/* 028DAE3C */ cpu->r[10] = 0x00000000u;
|
|
/* 028DAE40 */ cpu->r[11] = cpu->r[3] + 0x00000054u;
|
|
L_028DAE44: ; // 0x28dae44
|
|
/* 028DAE44 */ _t12 = cpu->r[3] + cpu->r[10];
|
|
/* 028DAE44 */ rbrew_write32(cpu->mem, _t12, cpu->r[11]);
|
|
/* 028DAE48 */ cpu->r[10] = cpu->r[10] + 0x00000054u;
|
|
/* 028DAE4C */ cpu->r[11] = cpu->r[11] + 0x00000054u;
|
|
/* 028DAE50 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028DAE50 */ _t13 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028DAE50 */ _t14 = _t13 >> (0x00000002u & 31u);
|
|
/* 028DAE50 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028DAE50 */ if (_t15) goto L_028DAE44; else goto L_028DAE54;
|
|
L_028DAE54: ; // 0x28dae54
|
|
/* 028DAE54 */ cpu->r[12] = cpu->r[3] + cpu->r[29];
|
|
/* 028DAE58 */ cpu->r[0] = 0x00000000u;
|
|
/* 028DAE5C */ _t16 = cpu->r[12] + 0xFFFFFFACu;
|
|
/* 028DAE5C */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 028DAE60 */ _t17 = cpu->r[30] + 0x00000028u;
|
|
/* 028DAE60 */ rbrew_write32(cpu->mem, _t17, cpu->r[31]);
|
|
/* 028DAE64 */ _t18 = cpu->r[30] + 0x00000024u;
|
|
/* 028DAE64 */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
L_028DAE68: ; // 0x28dae68
|
|
/* 028DAE68 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAE68 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DAE6C */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAE6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DAE70 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAE70 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DAE74 */ cpu->lr = cpu->r[0];
|
|
/* 028DAE78 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAE78 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DAE7C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DAE80 */ return;
|
|
}
|
|
|
|
// fn_028DAE84 @ 0x28dae84
|
|
void Gambit_fn_028DAE84(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32;
|
|
|
|
L_028DAE84: ; // 0x28dae84
|
|
/* 028DAE84 */ cpu->r[0] = cpu->lr;
|
|
/* 028DAE88 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DAE88 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DAE88 */ cpu->r[1] = _t0;
|
|
/* 028DAE8C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAE8C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028DAE90 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAE90 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028DAE94 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAE94 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028DAE98 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DAE9C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAE9C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DAEA0 */ _t5 = cpu->r[30] + 0x00000024u;
|
|
/* 028DAEA0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028DAEA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DAEA8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAEA8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DAEA8 */ if (_t7) goto L_028DAEAC; else goto L_028DAECC;
|
|
L_028DAEAC: ; // 0x28daeac
|
|
/* 028DAEAC */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAEAC */ cpu->r[29] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DAEB0 */ _t9 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAEB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DAEB4 */ _t10 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAEB4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DAEB8 */ cpu->lr = cpu->r[0];
|
|
/* 028DAEBC */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAEBC */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DAEC0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DAEC4 */ cpu->r[3] = 0x00000000u;
|
|
/* 028DAEC8 */ return;
|
|
L_028DAECC: ; // 0x28daecc
|
|
/* 028DAECC */ cpu->r[29] = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DAED0 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DAED4 */ Gambit_fn_02836FFC(cpu);
|
|
/* 028DAED8 */ _t12 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DAED8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DAEDC */ _t13 = cpu->r[30] + 0x00000028u;
|
|
/* 028DAEDC */ cpu->r[7] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DAEE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[7]);
|
|
/* 028DAEE4 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DAEE4 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028DAEE4 */ if (_t15) goto L_028DAEF8; else goto L_028DAEE8;
|
|
L_028DAEE8: ; // 0x28daee8
|
|
/* 028DAEE8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DAEEC */ Gambit_fn_02837030(cpu);
|
|
/* 028DAEF0 */ cpu->r[3] = 0x00000000u;
|
|
/* 028DAEF4 */ goto L_028DAF6C;
|
|
L_028DAEF8: ; // 0x28daef8
|
|
/* 028DAEF8 */ _t16 = cpu->r[30] + 0x00000020u;
|
|
/* 028DAEF8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DAEFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DAF00 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAF00 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028DAF00 */ if (_t18) goto L_028DAF0C; else goto L_028DAF04;
|
|
L_028DAF04: ; // 0x28daf04
|
|
/* 028DAF04 */ _t19 = cpu->r[31] + 0x00000000u;
|
|
/* 028DAF04 */ cpu->r[8] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DAF08 */ _t20 = cpu->r[30] + 0x00000020u;
|
|
/* 028DAF08 */ rbrew_write32(cpu->mem, _t20, cpu->r[8]);
|
|
L_028DAF0C: ; // 0x28daf0c
|
|
/* 028DAF0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DAF10 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAF10 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028DAF10 */ if (_t22) goto L_028DAF44; else goto L_028DAF14;
|
|
L_028DAF14: ; // 0x28daf14
|
|
/* 028DAF14 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DAF18 */ Gambit_fn_028DA728(cpu);
|
|
/* 028DAF1C */ cpu->r[9] = 0x00000000u;
|
|
/* 028DAF20 */ cpu->r[4] = cpu->r[31] + 0x0000004Cu;
|
|
/* 028DAF24 */ _t23 = cpu->r[31] + 0x00000050u;
|
|
/* 028DAF24 */ rbrew_write32(cpu->mem, _t23, cpu->r[9]);
|
|
/* 028DAF28 */ cpu->r[3] = cpu->r[30] + 0x00000014u;
|
|
/* 028DAF2C */ _t24 = cpu->r[31] + 0x0000004Cu;
|
|
/* 028DAF2C */ rbrew_write32(cpu->mem, _t24, cpu->r[9]);
|
|
/* 028DAF30 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028DAF34 */ _t25 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DAF34 */ cpu->r[11] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028DAF38 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 028DAF3C */ _t26 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DAF3C */ rbrew_write32(cpu->mem, _t26, cpu->r[11]);
|
|
/* 028DAF40 */ goto L_028DAF60;
|
|
L_028DAF44: ; // 0x28daf44
|
|
/* 028DAF44 */ cpu->r[4] = 0x0000004Cu;
|
|
/* 028DAF48 */ cpu->r[3] = cpu->r[30] + 0x00000014u;
|
|
/* 028DAF4C */ cpu->r[31] = 0x00000000u;
|
|
/* 028DAF50 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028DAF54 */ _t27 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DAF54 */ cpu->r[11] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028DAF58 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 028DAF5C */ _t28 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DAF5C */ rbrew_write32(cpu->mem, _t28, cpu->r[11]);
|
|
L_028DAF60: ; // 0x28daf60
|
|
/* 028DAF60 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DAF64 */ Gambit_fn_02837030(cpu);
|
|
/* 028DAF68 */ cpu->r[3] = cpu->r[31];
|
|
L_028DAF6C: ; // 0x28daf6c
|
|
/* 028DAF6C */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAF6C */ cpu->r[29] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028DAF70 */ _t30 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAF70 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028DAF74 */ _t31 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAF74 */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028DAF78 */ cpu->lr = cpu->r[0];
|
|
/* 028DAF7C */ _t32 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAF7C */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028DAF80 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DAF84 */ return;
|
|
}
|
|
|
|
// fn_028DAE88 @ 0x28dae88
|
|
void Gambit_fn_028DAE88(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32;
|
|
|
|
L_028DAE88: ; // 0x28dae88
|
|
/* 028DAE88 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DAE88 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DAE88 */ cpu->r[1] = _t0;
|
|
/* 028DAE8C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAE8C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028DAE90 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAE90 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028DAE94 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAE94 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028DAE98 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DAE9C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAE9C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DAEA0 */ _t5 = cpu->r[30] + 0x00000024u;
|
|
/* 028DAEA0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028DAEA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DAEA8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAEA8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DAEA8 */ if (_t7) goto L_028DAEAC; else goto L_028DAECC;
|
|
L_028DAEAC: ; // 0x28daeac
|
|
/* 028DAEAC */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAEAC */ cpu->r[29] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DAEB0 */ _t9 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAEB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DAEB4 */ _t10 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAEB4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DAEB8 */ cpu->lr = cpu->r[0];
|
|
/* 028DAEBC */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAEBC */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DAEC0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DAEC4 */ cpu->r[3] = 0x00000000u;
|
|
/* 028DAEC8 */ return;
|
|
L_028DAECC: ; // 0x28daecc
|
|
/* 028DAECC */ cpu->r[29] = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DAED0 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DAED4 */ Gambit_fn_02836FFC(cpu);
|
|
/* 028DAED8 */ _t12 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DAED8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DAEDC */ _t13 = cpu->r[30] + 0x00000028u;
|
|
/* 028DAEDC */ cpu->r[7] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DAEE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[7]);
|
|
/* 028DAEE4 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DAEE4 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028DAEE4 */ if (_t15) goto L_028DAEF8; else goto L_028DAEE8;
|
|
L_028DAEE8: ; // 0x28daee8
|
|
/* 028DAEE8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DAEEC */ Gambit_fn_02837030(cpu);
|
|
/* 028DAEF0 */ cpu->r[3] = 0x00000000u;
|
|
/* 028DAEF4 */ goto L_028DAF6C;
|
|
L_028DAEF8: ; // 0x28daef8
|
|
/* 028DAEF8 */ _t16 = cpu->r[30] + 0x00000020u;
|
|
/* 028DAEF8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DAEFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DAF00 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAF00 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028DAF00 */ if (_t18) goto L_028DAF0C; else goto L_028DAF04;
|
|
L_028DAF04: ; // 0x28daf04
|
|
/* 028DAF04 */ _t19 = cpu->r[31] + 0x00000000u;
|
|
/* 028DAF04 */ cpu->r[8] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DAF08 */ _t20 = cpu->r[30] + 0x00000020u;
|
|
/* 028DAF08 */ rbrew_write32(cpu->mem, _t20, cpu->r[8]);
|
|
L_028DAF0C: ; // 0x28daf0c
|
|
/* 028DAF0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DAF10 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAF10 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028DAF10 */ if (_t22) goto L_028DAF44; else goto L_028DAF14;
|
|
L_028DAF14: ; // 0x28daf14
|
|
/* 028DAF14 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DAF18 */ Gambit_fn_028DA728(cpu);
|
|
/* 028DAF1C */ cpu->r[9] = 0x00000000u;
|
|
/* 028DAF20 */ cpu->r[4] = cpu->r[31] + 0x0000004Cu;
|
|
/* 028DAF24 */ _t23 = cpu->r[31] + 0x00000050u;
|
|
/* 028DAF24 */ rbrew_write32(cpu->mem, _t23, cpu->r[9]);
|
|
/* 028DAF28 */ cpu->r[3] = cpu->r[30] + 0x00000014u;
|
|
/* 028DAF2C */ _t24 = cpu->r[31] + 0x0000004Cu;
|
|
/* 028DAF2C */ rbrew_write32(cpu->mem, _t24, cpu->r[9]);
|
|
/* 028DAF30 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028DAF34 */ _t25 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DAF34 */ cpu->r[11] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028DAF38 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 028DAF3C */ _t26 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DAF3C */ rbrew_write32(cpu->mem, _t26, cpu->r[11]);
|
|
/* 028DAF40 */ goto L_028DAF60;
|
|
L_028DAF44: ; // 0x28daf44
|
|
/* 028DAF44 */ cpu->r[4] = 0x0000004Cu;
|
|
/* 028DAF48 */ cpu->r[3] = cpu->r[30] + 0x00000014u;
|
|
/* 028DAF4C */ cpu->r[31] = 0x00000000u;
|
|
/* 028DAF50 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028DAF54 */ _t27 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DAF54 */ cpu->r[11] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028DAF58 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 028DAF5C */ _t28 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DAF5C */ rbrew_write32(cpu->mem, _t28, cpu->r[11]);
|
|
L_028DAF60: ; // 0x28daf60
|
|
/* 028DAF60 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DAF64 */ Gambit_fn_02837030(cpu);
|
|
/* 028DAF68 */ cpu->r[3] = cpu->r[31];
|
|
L_028DAF6C: ; // 0x28daf6c
|
|
/* 028DAF6C */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAF6C */ cpu->r[29] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028DAF70 */ _t30 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAF70 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028DAF74 */ _t31 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAF74 */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028DAF78 */ cpu->lr = cpu->r[0];
|
|
/* 028DAF7C */ _t32 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAF7C */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028DAF80 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DAF84 */ return;
|
|
}
|
|
|
|
// fn_028DAF88 @ 0x28daf88
|
|
void Gambit_fn_028DAF88(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20;
|
|
|
|
L_028DAF88: ; // 0x28daf88
|
|
/* 028DAF88 */ cpu->r[0] = cpu->lr;
|
|
/* 028DAF8C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DAF8C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DAF8C */ cpu->r[1] = _t0;
|
|
/* 028DAF90 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAF90 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028DAF94 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAF94 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028DAF98 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAF98 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028DAF9C */ cpu->r[30] = cpu->r[3];
|
|
/* 028DAFA0 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAFA0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DAFA4 */ _t5 = cpu->r[30] + 0x00000024u;
|
|
/* 028DAFA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028DAFA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DAFAC */ cpu->r[31] = cpu->r[4];
|
|
/* 028DAFB0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAFB0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DAFB0 */ if (_t7) goto L_028DB014; else goto L_028DAFB4;
|
|
L_028DAFB4: ; // 0x28dafb4
|
|
/* 028DAFB4 */ cpu->r[29] = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DAFB8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DAFBC */ Gambit_fn_02836FFC(cpu);
|
|
/* 028DAFC0 */ cpu->r[3] = cpu->r[30] + 0x00000014u;
|
|
/* 028DAFC4 */ cpu->r[4] = cpu->r[31] + 0x0000004Cu;
|
|
/* 028DAFC8 */ Gambit_fn_02802290(cpu);
|
|
/* 028DAFCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DAFD0 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DAFD0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028DAFD0 */ if (_t9) goto L_028DB00C; else goto L_028DAFD4;
|
|
L_028DAFD4: ; // 0x28dafd4
|
|
/* 028DAFD4 */ cpu->r[3] = cpu->r[31] + 0x0000004Cu;
|
|
/* 028DAFD8 */ Gambit_fn_02801EDC(cpu);
|
|
/* 028DAFDC */ _t10 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DAFDC */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DAFE0 */ cpu->r[10] = cpu->r[10] + 0xFFFFFFFFu;
|
|
/* 028DAFE4 */ _t11 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DAFE4 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
/* 028DAFE8 */ _t12 = cpu->r[31] + 0x00000048u;
|
|
/* 028DAFE8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DAFEC */ _t13 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028DAFEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DAFF0 */ cpu->ctr = cpu->r[0];
|
|
/* 028DAFF4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DAFF8 */ cpu->r[4] = 0x00000002u;
|
|
/* 028DAFFC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DB000 */ _t14 = cpu->r[30] + 0x00000020u;
|
|
/* 028DB000 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DB004 */ _t15 = cpu->r[31] + 0x00000000u;
|
|
/* 028DB004 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028DB008 */ _t16 = cpu->r[30] + 0x00000020u;
|
|
/* 028DB008 */ rbrew_write32(cpu->mem, _t16, cpu->r[31]);
|
|
L_028DB00C: ; // 0x28db00c
|
|
/* 028DB00C */ cpu->r[3] = cpu->r[29];
|
|
/* 028DB010 */ Gambit_fn_02837030(cpu);
|
|
L_028DB014: ; // 0x28db014
|
|
/* 028DB014 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB014 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DB018 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DB018 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DB01C */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028DB01C */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DB020 */ cpu->lr = cpu->r[0];
|
|
/* 028DB024 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB024 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DB028 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DB02C */ return;
|
|
}
|
|
|
|
// fn_028DAF8C @ 0x28daf8c
|
|
void Gambit_fn_028DAF8C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20;
|
|
|
|
L_028DAF8C: ; // 0x28daf8c
|
|
/* 028DAF8C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DAF8C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DAF8C */ cpu->r[1] = _t0;
|
|
/* 028DAF90 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DAF90 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028DAF94 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028DAF94 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028DAF98 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DAF98 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028DAF9C */ cpu->r[30] = cpu->r[3];
|
|
/* 028DAFA0 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DAFA0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DAFA4 */ _t5 = cpu->r[30] + 0x00000024u;
|
|
/* 028DAFA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028DAFA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DAFAC */ cpu->r[31] = cpu->r[4];
|
|
/* 028DAFB0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DAFB0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DAFB0 */ if (_t7) goto L_028DB014; else goto L_028DAFB4;
|
|
L_028DAFB4: ; // 0x28dafb4
|
|
/* 028DAFB4 */ cpu->r[29] = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DAFB8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DAFBC */ Gambit_fn_02836FFC(cpu);
|
|
/* 028DAFC0 */ cpu->r[3] = cpu->r[30] + 0x00000014u;
|
|
/* 028DAFC4 */ cpu->r[4] = cpu->r[31] + 0x0000004Cu;
|
|
/* 028DAFC8 */ Gambit_fn_02802290(cpu);
|
|
/* 028DAFCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DAFD0 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DAFD0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028DAFD0 */ if (_t9) goto L_028DB00C; else goto L_028DAFD4;
|
|
L_028DAFD4: ; // 0x28dafd4
|
|
/* 028DAFD4 */ cpu->r[3] = cpu->r[31] + 0x0000004Cu;
|
|
/* 028DAFD8 */ Gambit_fn_02801EDC(cpu);
|
|
/* 028DAFDC */ _t10 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DAFDC */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DAFE0 */ cpu->r[10] = cpu->r[10] + 0xFFFFFFFFu;
|
|
/* 028DAFE4 */ _t11 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DAFE4 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
/* 028DAFE8 */ _t12 = cpu->r[31] + 0x00000048u;
|
|
/* 028DAFE8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DAFEC */ _t13 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028DAFEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DAFF0 */ cpu->ctr = cpu->r[0];
|
|
/* 028DAFF4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DAFF8 */ cpu->r[4] = 0x00000002u;
|
|
/* 028DAFFC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DB000 */ _t14 = cpu->r[30] + 0x00000020u;
|
|
/* 028DB000 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DB004 */ _t15 = cpu->r[31] + 0x00000000u;
|
|
/* 028DB004 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028DB008 */ _t16 = cpu->r[30] + 0x00000020u;
|
|
/* 028DB008 */ rbrew_write32(cpu->mem, _t16, cpu->r[31]);
|
|
L_028DB00C: ; // 0x28db00c
|
|
/* 028DB00C */ cpu->r[3] = cpu->r[29];
|
|
/* 028DB010 */ Gambit_fn_02837030(cpu);
|
|
L_028DB014: ; // 0x28db014
|
|
/* 028DB014 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB014 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DB018 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DB018 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DB01C */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028DB01C */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DB020 */ cpu->lr = cpu->r[0];
|
|
/* 028DB024 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB024 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DB028 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DB02C */ return;
|
|
}
|
|
|
|
// fn_028DB030 @ 0x28db030
|
|
void Gambit_fn_028DB030(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23;
|
|
|
|
L_028DB030: ; // 0x28db030
|
|
/* 028DB030 */ cpu->r[0] = cpu->lr;
|
|
/* 028DB034 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DB034 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DB034 */ cpu->r[1] = _t0;
|
|
/* 028DB038 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB038 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 028DB03C */ cpu->r[28] = cpu->r[4];
|
|
/* 028DB040 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB040 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DB044 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB044 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DB048 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DB048 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DB04C */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028DB04C */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028DB050 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DB050 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DB054 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB054 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DB054 */ if (_t7) goto L_028DB0B8; else goto L_028DB058;
|
|
L_028DB058: ; // 0x28db058
|
|
/* 028DB058 */ cpu->r[6] = 0x10140000u;
|
|
/* 028DB05C */ cpu->r[6] = cpu->r[6] + 0xFFFFB1B4u;
|
|
/* 028DB060 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028DB064 */ _t8 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DB064 */ rbrew_write32(cpu->mem, _t8, cpu->r[6]);
|
|
/* 028DB068 */ _t9 = cpu->r[12] + 0xFFFF9AC8u;
|
|
/* 028DB068 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DB068 */ cpu->r[12] = _t9;
|
|
/* 028DB06C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[0]);
|
|
/* 028DB070 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB070 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DB070 */ if (_t11) goto L_028DB074; else goto L_028DB09C;
|
|
L_028DB074: ; // 0x28db074
|
|
/* 028DB074 */ cpu->r[30] = 0x101D0000u;
|
|
/* 028DB078 */ cpu->r[29] = 0x00000000u;
|
|
/* 028DB07C */ _t12 = cpu->r[30] + 0xFFFF9AC4u;
|
|
/* 028DB07C */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DB080 */ _t13 = cpu->r[12] + 0x00000000u;
|
|
/* 028DB080 */ rbrew_write32(cpu->mem, _t13, cpu->r[29]);
|
|
/* 028DB084 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028DB084 */ cpu->r[8] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DB088 */ _t15 = cpu->r[8] + 0x00000014u;
|
|
/* 028DB088 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028DB08C */ cpu->ctr = cpu->r[10];
|
|
/* 028DB090 */ cpu->r[4] = 0x00000002u;
|
|
/* 028DB094 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DB098 */ _t16 = cpu->r[30] + 0xFFFF9AC4u;
|
|
/* 028DB098 */ rbrew_write32(cpu->mem, _t16, cpu->r[29]);
|
|
L_028DB09C: ; // 0x28db09c
|
|
/* 028DB09C */ cpu->r[3] = cpu->r[31];
|
|
/* 028DB0A0 */ cpu->r[4] = 0x00000000u;
|
|
/* 028DB0A4 */ Gambit_fn_02821E68(cpu);
|
|
/* 028DB0A8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[28], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DB0A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DB0AC */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB0AC */ _t18 = _t17 & 0x00000001u;
|
|
/* 028DB0AC */ if (_t18) goto L_028DB0B8; else goto L_028DB0B0;
|
|
L_028DB0B0: ; // 0x28db0b0
|
|
/* 028DB0B0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DB0B4 */ Gambit_fn_02801BB0(cpu);
|
|
L_028DB0B8: ; // 0x28db0b8
|
|
/* 028DB0B8 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB0B8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DB0BC */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB0BC */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DB0C0 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DB0C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DB0C4 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028DB0C4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DB0C8 */ cpu->lr = cpu->r[0];
|
|
/* 028DB0CC */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB0CC */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028DB0D0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DB0D4 */ return;
|
|
}
|
|
|
|
// fn_028DB034 @ 0x28db034
|
|
void Gambit_fn_028DB034(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23;
|
|
|
|
L_028DB034: ; // 0x28db034
|
|
/* 028DB034 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DB034 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DB034 */ cpu->r[1] = _t0;
|
|
/* 028DB038 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB038 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 028DB03C */ cpu->r[28] = cpu->r[4];
|
|
/* 028DB040 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB040 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DB044 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB044 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DB048 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DB048 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DB04C */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028DB04C */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028DB050 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DB050 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DB054 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB054 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DB054 */ if (_t7) goto L_028DB0B8; else goto L_028DB058;
|
|
L_028DB058: ; // 0x28db058
|
|
/* 028DB058 */ cpu->r[6] = 0x10140000u;
|
|
/* 028DB05C */ cpu->r[6] = cpu->r[6] + 0xFFFFB1B4u;
|
|
/* 028DB060 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028DB064 */ _t8 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DB064 */ rbrew_write32(cpu->mem, _t8, cpu->r[6]);
|
|
/* 028DB068 */ _t9 = cpu->r[12] + 0xFFFF9AC8u;
|
|
/* 028DB068 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DB068 */ cpu->r[12] = _t9;
|
|
/* 028DB06C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[0]);
|
|
/* 028DB070 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB070 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DB070 */ if (_t11) goto L_028DB074; else goto L_028DB09C;
|
|
L_028DB074: ; // 0x28db074
|
|
/* 028DB074 */ cpu->r[30] = 0x101D0000u;
|
|
/* 028DB078 */ cpu->r[29] = 0x00000000u;
|
|
/* 028DB07C */ _t12 = cpu->r[30] + 0xFFFF9AC4u;
|
|
/* 028DB07C */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DB080 */ _t13 = cpu->r[12] + 0x00000000u;
|
|
/* 028DB080 */ rbrew_write32(cpu->mem, _t13, cpu->r[29]);
|
|
/* 028DB084 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028DB084 */ cpu->r[8] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DB088 */ _t15 = cpu->r[8] + 0x00000014u;
|
|
/* 028DB088 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028DB08C */ cpu->ctr = cpu->r[10];
|
|
/* 028DB090 */ cpu->r[4] = 0x00000002u;
|
|
/* 028DB094 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DB098 */ _t16 = cpu->r[30] + 0xFFFF9AC4u;
|
|
/* 028DB098 */ rbrew_write32(cpu->mem, _t16, cpu->r[29]);
|
|
L_028DB09C: ; // 0x28db09c
|
|
/* 028DB09C */ cpu->r[3] = cpu->r[31];
|
|
/* 028DB0A0 */ cpu->r[4] = 0x00000000u;
|
|
/* 028DB0A4 */ Gambit_fn_02821E68(cpu);
|
|
/* 028DB0A8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[28], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DB0A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DB0AC */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB0AC */ _t18 = _t17 & 0x00000001u;
|
|
/* 028DB0AC */ if (_t18) goto L_028DB0B8; else goto L_028DB0B0;
|
|
L_028DB0B0: ; // 0x28db0b0
|
|
/* 028DB0B0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DB0B4 */ Gambit_fn_02801BB0(cpu);
|
|
L_028DB0B8: ; // 0x28db0b8
|
|
/* 028DB0B8 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB0B8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DB0BC */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB0BC */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DB0C0 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DB0C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DB0C4 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028DB0C4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DB0C8 */ cpu->lr = cpu->r[0];
|
|
/* 028DB0CC */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB0CC */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028DB0D0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DB0D4 */ return;
|
|
}
|
|
|
|
// fn_028DB0D8 @ 0x28db0d8
|
|
void Gambit_fn_028DB0D8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028DB0D8: ; // 0x28db0d8
|
|
/* 028DB0D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DB0DC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB0DC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DB0DC */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DB0DC */ goto L_028DB0E0;
|
|
L_028DB0E0: ; // 0x28db0e0
|
|
/* 028DB0E0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DB0E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DB0E4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB0E4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DB0E4 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DB0E4 */ goto L_028DB0E8;
|
|
L_028DB0E8: ; // 0x28db0e8
|
|
/* 028DB0E8 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028DB0EC @ 0x28db0ec
|
|
void Gambit_fn_028DB0EC(CPUState* cpu) {
|
|
L_028DB0EC: ; // 0x28db0ec
|
|
/* 028DB0EC */ return;
|
|
}
|
|
|
|
// fn_028DB0F0 @ 0x28db0f0
|
|
void Gambit_fn_028DB0F0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028DB0F0: ; // 0x28db0f0
|
|
/* 028DB0F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DB0F4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB0F4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DB0F4 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DB0F4 */ goto L_028DB0F8;
|
|
L_028DB0F8: ; // 0x28db0f8
|
|
/* 028DB0F8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DB0F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DB0FC */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB0FC */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DB0FC */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DB0FC */ goto L_028DB100;
|
|
L_028DB100: ; // 0x28db100
|
|
/* 028DB100 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028DB104 @ 0x28db104
|
|
void Gambit_fn_028DB104(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028DB104: ; // 0x28db104
|
|
/* 028DB104 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028DB104 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028DB108 */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 028DB108 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028DB10C */ cpu->r[12] = cpu->r[11] + cpu->r[12];
|
|
/* 028DB110 */ cpu->r[11] = 0x10110000u;
|
|
/* 028DB114 */ _t2 = cpu->r[11] + 0x00007399u;
|
|
/* 028DB114 */ cpu->r[0] = rbrew_read8(cpu->mem, _t2);
|
|
/* 028DB118 */ _t3 = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028DB118 */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[0]);
|
|
/* 028DB11C */ return;
|
|
}
|
|
|
|
// fn_028DB120 @ 0x28db120
|
|
void Gambit_fn_028DB120(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028DB120: ; // 0x28db120
|
|
/* 028DB120 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DB124 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB124 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DB124 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DB124 */ goto L_028DB128;
|
|
L_028DB128: ; // 0x28db128
|
|
/* 028DB128 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DB128 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DB12C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB12C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DB12C */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DB12C */ goto L_028DB130;
|
|
L_028DB130: ; // 0x28db130
|
|
/* 028DB130 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028DB134 @ 0x28db134
|
|
void Gambit_fn_028DB134(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028DB134: ; // 0x28db134
|
|
/* 028DB134 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DB138 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB138 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DB138 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DB138 */ goto L_028DB13C;
|
|
L_028DB13C: ; // 0x28db13c
|
|
/* 028DB13C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DB13C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DB140 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB140 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DB140 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DB140 */ goto L_028DB144;
|
|
L_028DB144: ; // 0x28db144
|
|
/* 028DB144 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028DB148 @ 0x28db148
|
|
void Gambit_fn_028DB148(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_028DB148: ; // 0x28db148
|
|
/* 028DB148 */ cpu->r[3] = cpu->r[4];
|
|
/* 028DB148 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DB14C */ _t0 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB14C */ _t1 = _t0 & 0x00000001u;
|
|
/* 028DB14C */ if (_t1) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DB14C */ goto L_028DB150;
|
|
L_028DB150: ; // 0x28db150
|
|
/* 028DB150 */ _t2 = cpu->r[5] + 0x00000000u;
|
|
/* 028DB150 */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028DB154 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000001u);
|
|
/* 028DB158 */ cpu->r[0] = 0x00000001u;
|
|
/* 028DB15C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB15C */ _t4 = _t3 & 0x00000001u;
|
|
/* 028DB15C */ if (_t4) goto L_028DB16C; else goto L_028DB160;
|
|
L_028DB160: ; // 0x28db160
|
|
/* 028DB160 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000002u);
|
|
/* 028DB164 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB164 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DB164 */ if (_t6) goto L_028DB16C; else goto L_028DB168;
|
|
L_028DB168: ; // 0x28db168
|
|
/* 028DB168 */ cpu->r[0] = 0x00000000u;
|
|
L_028DB16C: ; // 0x28db16c
|
|
/* 028DB16C */ cpu->r[4] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028DB170 */ goto L_028EDB80;
|
|
L_028DD224: ; // 0x28dd224
|
|
/* 028DD224 */ _t7 = cpu->r[3] + 0x00000018u;
|
|
/* 028DD224 */ rbrew_write8(cpu->mem, _t7, (uint8_t)cpu->r[4]);
|
|
/* 028DD228 */ return;
|
|
L_028EDB80: ; // 0x28edb80
|
|
/* 028EDB80 */ cpu->r[3] = cpu->r[3] + 0x00000004u;
|
|
/* 028EDB84 */ goto L_028DD224;
|
|
}
|
|
|
|
// fn_028DB174 @ 0x28db174
|
|
void Gambit_fn_028DB174(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39;
|
|
|
|
L_028DB174: ; // 0x28db174
|
|
/* 028DB174 */ cpu->r[0] = cpu->lr;
|
|
/* 028DB178 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028DB178 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DB178 */ cpu->r[1] = _t0;
|
|
/* 028DB17C */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB17C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028DB180 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028DB180 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028DB184 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DB184 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028DB188 */ _t4 = cpu->r[1] + 0x00000018u;
|
|
/* 028DB188 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028DB18C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DB18C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DB190 */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 028DB190 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DB194 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB194 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DB194 */ if (_t7) goto L_028DB198; else goto L_028DB1A8;
|
|
L_028DB198: ; // 0x28db198
|
|
/* 028DB198 */ cpu->r[3] = 0x00000208u;
|
|
/* 028DB19C */ Gambit_fn_02801A78(cpu);
|
|
/* 028DB1A0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DB1A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DB1A4 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB1A4 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028DB1A4 */ if (_t9) goto L_028DB270; else goto L_028DB1A8;
|
|
L_028DB1A8: ; // 0x28db1a8
|
|
/* 028DB1A8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DB1AC */ cpu->r[6] = 0x028F0000u;
|
|
/* 028DB1B0 */ cpu->r[3] = cpu->r[31] + 0x00000004u;
|
|
/* 028DB1B4 */ cpu->r[0] = cpu->r[0] + 0xFFFFB27Cu;
|
|
/* 028DB1B8 */ cpu->r[6] = cpu->r[6] + 0xFFFFD9B8u;
|
|
/* 028DB1BC */ cpu->r[4] = 0x00000005u;
|
|
/* 028DB1C0 */ cpu->r[5] = 0x00000060u;
|
|
/* 028DB1C4 */ _t10 = cpu->r[31] + 0x00000000u;
|
|
/* 028DB1C4 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028DB1C8 */ Gambit_fn_02C82E00(cpu);
|
|
/* 028DB1CC */ cpu->r[3] = cpu->r[31] + 0x000001E4u;
|
|
/* 028DB1CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DB1D0 */ cpu->r[30] = 0x00000000u;
|
|
/* 028DB1D4 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB1D4 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028DB1D4 */ if (_t12) goto L_028DB1D8; else goto L_028DB1E8;
|
|
L_028DB1D8: ; // 0x28db1d8
|
|
/* 028DB1D8 */ cpu->r[3] = 0x00000001u;
|
|
/* 028DB1DC */ Gambit_fn_02801A78(cpu);
|
|
/* 028DB1E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DB1E4 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB1E4 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028DB1E4 */ if (_t14) goto L_028DB1EC; else goto L_028DB1E8;
|
|
L_028DB1E8: ; // 0x28db1e8
|
|
/* 028DB1E8 */ _t15 = cpu->r[3] + 0x00000000u;
|
|
/* 028DB1E8 */ rbrew_write8(cpu->mem, _t15, (uint8_t)cpu->r[30]);
|
|
L_028DB1EC: ; // 0x28db1ec
|
|
/* 028DB1EC */ cpu->r[10] = 0x10140000u;
|
|
/* 028DB1F0 */ _t16 = cpu->r[31] + 0x000001F0u;
|
|
/* 028DB1F0 */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[30]);
|
|
/* 028DB1F4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DB1F8 */ _t17 = cpu->r[10] + 0xFFFFB218u;
|
|
/* 028DB1F8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028DB1FC */ cpu->r[7] = 0x10140000u;
|
|
/* 028DB200 */ _t18 = cpu->r[12] + 0xFFFFB224u;
|
|
/* 028DB200 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t18);
|
|
/* 028DB204 */ _t19 = cpu->r[31] + 0x000001ECu;
|
|
/* 028DB204 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[13]);
|
|
/* 028DB208 */ cpu->r[8] = 0x10140000u;
|
|
/* 028DB20C */ _t20 = cpu->r[31] + 0x000001FCu;
|
|
/* 028DB20C */ rbrew_write_f32(cpu->mem, _t20, cpu->f[0]);
|
|
/* 028DB210 */ _t21 = cpu->r[8] + 0xFFFFB21Cu;
|
|
/* 028DB210 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028DB214 */ cpu->r[9] = 0x10140000u;
|
|
/* 028DB218 */ _t22 = cpu->r[31] + 0x00000200u;
|
|
/* 028DB218 */ rbrew_write_f32(cpu->mem, _t22, cpu->f[0]);
|
|
/* 028DB21C */ _t23 = cpu->r[9] + 0xFFFFB220u;
|
|
/* 028DB21C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 028DB220 */ _t24 = cpu->r[31] + 0x00000204u;
|
|
/* 028DB220 */ rbrew_write8(cpu->mem, _t24, (uint8_t)cpu->r[30]);
|
|
/* 028DB224 */ _t25 = cpu->r[31] + 0x000001F8u;
|
|
/* 028DB224 */ rbrew_write_f32(cpu->mem, _t25, cpu->f[0]);
|
|
/* 028DB228 */ _t26 = cpu->r[7] + 0xFFFFB214u;
|
|
/* 028DB228 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028DB22C */ _t27 = cpu->r[31] + 0x000001E4u;
|
|
/* 028DB22C */ rbrew_write8(cpu->mem, _t27, (uint8_t)cpu->r[30]);
|
|
/* 028DB230 */ _t28 = cpu->r[31] + 0x000001E8u;
|
|
/* 028DB230 */ rbrew_write_f32(cpu->mem, _t28, cpu->f[0]);
|
|
/* 028DB234 */ cpu->r[29] = cpu->r[31] + 0x00000004u;
|
|
/* 028DB238 */ _t29 = cpu->r[31] + 0x00000206u;
|
|
/* 028DB238 */ rbrew_write8(cpu->mem, _t29, (uint8_t)cpu->r[30]);
|
|
/* 028DB23C */ cpu->r[28] = 0x00000005u;
|
|
/* 028DB240 */ _t30 = cpu->r[31] + 0x00000205u;
|
|
/* 028DB240 */ rbrew_write8(cpu->mem, _t30, (uint8_t)cpu->r[30]);
|
|
/* 028DB244 */ cpu->r[30] = 0x00000000u;
|
|
/* 028DB248 */ _t31 = cpu->r[31] + 0x000001F4u;
|
|
/* 028DB248 */ rbrew_write_f32(cpu->mem, _t31, cpu->f[13]);
|
|
L_028DB24C: ; // 0x28db24c
|
|
/* 028DB24C */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028DB250 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DB254 */ cpu->r[4] = cpu->r[29];
|
|
/* 028DB258 */ _t32 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB258 */ rbrew_write32(cpu->mem, _t32, cpu->r[30]);
|
|
/* 028DB25C */ Gambit_fn_028DB148(cpu);
|
|
/* 028DB260 */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 028DB260 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028DB264 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028DB268 */ cpu->r[29] = cpu->r[29] + 0x00000060u;
|
|
/* 028DB26C */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB26C */ _t34 = _t33 & 0x00000001u;
|
|
/* 028DB26C */ if (_t34) goto L_028DB270; else goto L_028DB24C;
|
|
L_028DB270: ; // 0x28db270
|
|
/* 028DB270 */ _t35 = cpu->r[1] + 0x00000010u;
|
|
/* 028DB270 */ cpu->r[28] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028DB274 */ _t36 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB274 */ cpu->r[29] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028DB278 */ _t37 = cpu->r[1] + 0x00000024u;
|
|
/* 028DB278 */ cpu->r[0] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028DB27C */ cpu->r[3] = cpu->r[31];
|
|
/* 028DB280 */ _t38 = cpu->r[1] + 0x00000018u;
|
|
/* 028DB280 */ cpu->r[30] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028DB284 */ cpu->lr = cpu->r[0];
|
|
/* 028DB288 */ _t39 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DB288 */ cpu->r[31] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028DB28C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028DB290 */ return;
|
|
}
|
|
|
|
// fn_028DB178 @ 0x28db178
|
|
void Gambit_fn_028DB178(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39;
|
|
|
|
L_028DB178: ; // 0x28db178
|
|
/* 028DB178 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028DB178 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DB178 */ cpu->r[1] = _t0;
|
|
/* 028DB17C */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB17C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028DB180 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028DB180 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028DB184 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DB184 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028DB188 */ _t4 = cpu->r[1] + 0x00000018u;
|
|
/* 028DB188 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028DB18C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DB18C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DB190 */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 028DB190 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DB194 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB194 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DB194 */ if (_t7) goto L_028DB198; else goto L_028DB1A8;
|
|
L_028DB198: ; // 0x28db198
|
|
/* 028DB198 */ cpu->r[3] = 0x00000208u;
|
|
/* 028DB19C */ Gambit_fn_02801A78(cpu);
|
|
/* 028DB1A0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DB1A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DB1A4 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB1A4 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028DB1A4 */ if (_t9) goto L_028DB270; else goto L_028DB1A8;
|
|
L_028DB1A8: ; // 0x28db1a8
|
|
/* 028DB1A8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DB1AC */ cpu->r[6] = 0x028F0000u;
|
|
/* 028DB1B0 */ cpu->r[3] = cpu->r[31] + 0x00000004u;
|
|
/* 028DB1B4 */ cpu->r[0] = cpu->r[0] + 0xFFFFB27Cu;
|
|
/* 028DB1B8 */ cpu->r[6] = cpu->r[6] + 0xFFFFD9B8u;
|
|
/* 028DB1BC */ cpu->r[4] = 0x00000005u;
|
|
/* 028DB1C0 */ cpu->r[5] = 0x00000060u;
|
|
/* 028DB1C4 */ _t10 = cpu->r[31] + 0x00000000u;
|
|
/* 028DB1C4 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028DB1C8 */ Gambit_fn_02C82E00(cpu);
|
|
/* 028DB1CC */ cpu->r[3] = cpu->r[31] + 0x000001E4u;
|
|
/* 028DB1CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DB1D0 */ cpu->r[30] = 0x00000000u;
|
|
/* 028DB1D4 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB1D4 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028DB1D4 */ if (_t12) goto L_028DB1D8; else goto L_028DB1E8;
|
|
L_028DB1D8: ; // 0x28db1d8
|
|
/* 028DB1D8 */ cpu->r[3] = 0x00000001u;
|
|
/* 028DB1DC */ Gambit_fn_02801A78(cpu);
|
|
/* 028DB1E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DB1E4 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB1E4 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028DB1E4 */ if (_t14) goto L_028DB1EC; else goto L_028DB1E8;
|
|
L_028DB1E8: ; // 0x28db1e8
|
|
/* 028DB1E8 */ _t15 = cpu->r[3] + 0x00000000u;
|
|
/* 028DB1E8 */ rbrew_write8(cpu->mem, _t15, (uint8_t)cpu->r[30]);
|
|
L_028DB1EC: ; // 0x28db1ec
|
|
/* 028DB1EC */ cpu->r[10] = 0x10140000u;
|
|
/* 028DB1F0 */ _t16 = cpu->r[31] + 0x000001F0u;
|
|
/* 028DB1F0 */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[30]);
|
|
/* 028DB1F4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DB1F8 */ _t17 = cpu->r[10] + 0xFFFFB218u;
|
|
/* 028DB1F8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028DB1FC */ cpu->r[7] = 0x10140000u;
|
|
/* 028DB200 */ _t18 = cpu->r[12] + 0xFFFFB224u;
|
|
/* 028DB200 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t18);
|
|
/* 028DB204 */ _t19 = cpu->r[31] + 0x000001ECu;
|
|
/* 028DB204 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[13]);
|
|
/* 028DB208 */ cpu->r[8] = 0x10140000u;
|
|
/* 028DB20C */ _t20 = cpu->r[31] + 0x000001FCu;
|
|
/* 028DB20C */ rbrew_write_f32(cpu->mem, _t20, cpu->f[0]);
|
|
/* 028DB210 */ _t21 = cpu->r[8] + 0xFFFFB21Cu;
|
|
/* 028DB210 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028DB214 */ cpu->r[9] = 0x10140000u;
|
|
/* 028DB218 */ _t22 = cpu->r[31] + 0x00000200u;
|
|
/* 028DB218 */ rbrew_write_f32(cpu->mem, _t22, cpu->f[0]);
|
|
/* 028DB21C */ _t23 = cpu->r[9] + 0xFFFFB220u;
|
|
/* 028DB21C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 028DB220 */ _t24 = cpu->r[31] + 0x00000204u;
|
|
/* 028DB220 */ rbrew_write8(cpu->mem, _t24, (uint8_t)cpu->r[30]);
|
|
/* 028DB224 */ _t25 = cpu->r[31] + 0x000001F8u;
|
|
/* 028DB224 */ rbrew_write_f32(cpu->mem, _t25, cpu->f[0]);
|
|
/* 028DB228 */ _t26 = cpu->r[7] + 0xFFFFB214u;
|
|
/* 028DB228 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028DB22C */ _t27 = cpu->r[31] + 0x000001E4u;
|
|
/* 028DB22C */ rbrew_write8(cpu->mem, _t27, (uint8_t)cpu->r[30]);
|
|
/* 028DB230 */ _t28 = cpu->r[31] + 0x000001E8u;
|
|
/* 028DB230 */ rbrew_write_f32(cpu->mem, _t28, cpu->f[0]);
|
|
/* 028DB234 */ cpu->r[29] = cpu->r[31] + 0x00000004u;
|
|
/* 028DB238 */ _t29 = cpu->r[31] + 0x00000206u;
|
|
/* 028DB238 */ rbrew_write8(cpu->mem, _t29, (uint8_t)cpu->r[30]);
|
|
/* 028DB23C */ cpu->r[28] = 0x00000005u;
|
|
/* 028DB240 */ _t30 = cpu->r[31] + 0x00000205u;
|
|
/* 028DB240 */ rbrew_write8(cpu->mem, _t30, (uint8_t)cpu->r[30]);
|
|
/* 028DB244 */ cpu->r[30] = 0x00000000u;
|
|
/* 028DB248 */ _t31 = cpu->r[31] + 0x000001F4u;
|
|
/* 028DB248 */ rbrew_write_f32(cpu->mem, _t31, cpu->f[13]);
|
|
L_028DB24C: ; // 0x28db24c
|
|
/* 028DB24C */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028DB250 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DB254 */ cpu->r[4] = cpu->r[29];
|
|
/* 028DB258 */ _t32 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB258 */ rbrew_write32(cpu->mem, _t32, cpu->r[30]);
|
|
/* 028DB25C */ Gambit_fn_028DB148(cpu);
|
|
/* 028DB260 */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 028DB260 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028DB264 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028DB268 */ cpu->r[29] = cpu->r[29] + 0x00000060u;
|
|
/* 028DB26C */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB26C */ _t34 = _t33 & 0x00000001u;
|
|
/* 028DB26C */ if (_t34) goto L_028DB270; else goto L_028DB24C;
|
|
L_028DB270: ; // 0x28db270
|
|
/* 028DB270 */ _t35 = cpu->r[1] + 0x00000010u;
|
|
/* 028DB270 */ cpu->r[28] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028DB274 */ _t36 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB274 */ cpu->r[29] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028DB278 */ _t37 = cpu->r[1] + 0x00000024u;
|
|
/* 028DB278 */ cpu->r[0] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028DB27C */ cpu->r[3] = cpu->r[31];
|
|
/* 028DB280 */ _t38 = cpu->r[1] + 0x00000018u;
|
|
/* 028DB280 */ cpu->r[30] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028DB284 */ cpu->lr = cpu->r[0];
|
|
/* 028DB288 */ _t39 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DB288 */ cpu->r[31] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028DB28C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028DB290 */ return;
|
|
}
|
|
|
|
// fn_028DB294 @ 0x28db294
|
|
void Gambit_fn_028DB294(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028DB294: ; // 0x28db294
|
|
/* 028DB294 */ cpu->r[0] = cpu->lr;
|
|
/* 028DB298 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DB298 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DB298 */ cpu->r[1] = _t0;
|
|
/* 028DB29C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB29C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DB2A0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB2A0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DB2A4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DB2A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DB2A8 */ cpu->r[30] = cpu->r[4];
|
|
/* 028DB2AC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB2AC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DB2B0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB2B0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DB2B0 */ if (_t5) goto L_028DB2E4; else goto L_028DB2B4;
|
|
L_028DB2B4: ; // 0x28db2b4
|
|
/* 028DB2B4 */ cpu->r[6] = 0x028F0000u;
|
|
/* 028DB2B8 */ cpu->r[3] = cpu->r[31] + 0x00000004u;
|
|
/* 028DB2BC */ cpu->r[7] = 0x00000000u;
|
|
/* 028DB2C0 */ cpu->r[6] = cpu->r[6] + 0xFFFFDA24u;
|
|
/* 028DB2C4 */ cpu->r[4] = 0x00000005u;
|
|
/* 028DB2C8 */ cpu->r[8] = cpu->r[7];
|
|
/* 028DB2CC */ cpu->r[5] = 0x00000060u;
|
|
/* 028DB2D0 */ Gambit_fn_02C82F38(cpu);
|
|
/* 028DB2D4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DB2D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DB2D8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB2D8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DB2D8 */ if (_t7) goto L_028DB2E4; else goto L_028DB2DC;
|
|
L_028DB2DC: ; // 0x28db2dc
|
|
/* 028DB2DC */ cpu->r[3] = cpu->r[31];
|
|
/* 028DB2E0 */ Gambit_fn_02801BB0(cpu);
|
|
L_028DB2E4: ; // 0x28db2e4
|
|
/* 028DB2E4 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB2E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DB2E8 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB2E8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DB2EC */ cpu->lr = cpu->r[0];
|
|
/* 028DB2F0 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB2F0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DB2F4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DB2F8 */ return;
|
|
}
|
|
|
|
// fn_028DB298 @ 0x28db298
|
|
void Gambit_fn_028DB298(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028DB298: ; // 0x28db298
|
|
/* 028DB298 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DB298 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DB298 */ cpu->r[1] = _t0;
|
|
/* 028DB29C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB29C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DB2A0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB2A0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DB2A4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DB2A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DB2A8 */ cpu->r[30] = cpu->r[4];
|
|
/* 028DB2AC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB2AC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DB2B0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB2B0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DB2B0 */ if (_t5) goto L_028DB2E4; else goto L_028DB2B4;
|
|
L_028DB2B4: ; // 0x28db2b4
|
|
/* 028DB2B4 */ cpu->r[6] = 0x028F0000u;
|
|
/* 028DB2B8 */ cpu->r[3] = cpu->r[31] + 0x00000004u;
|
|
/* 028DB2BC */ cpu->r[7] = 0x00000000u;
|
|
/* 028DB2C0 */ cpu->r[6] = cpu->r[6] + 0xFFFFDA24u;
|
|
/* 028DB2C4 */ cpu->r[4] = 0x00000005u;
|
|
/* 028DB2C8 */ cpu->r[8] = cpu->r[7];
|
|
/* 028DB2CC */ cpu->r[5] = 0x00000060u;
|
|
/* 028DB2D0 */ Gambit_fn_02C82F38(cpu);
|
|
/* 028DB2D4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DB2D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DB2D8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB2D8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DB2D8 */ if (_t7) goto L_028DB2E4; else goto L_028DB2DC;
|
|
L_028DB2DC: ; // 0x28db2dc
|
|
/* 028DB2DC */ cpu->r[3] = cpu->r[31];
|
|
/* 028DB2E0 */ Gambit_fn_02801BB0(cpu);
|
|
L_028DB2E4: ; // 0x28db2e4
|
|
/* 028DB2E4 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB2E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DB2E8 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB2E8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DB2EC */ cpu->lr = cpu->r[0];
|
|
/* 028DB2F0 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB2F0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DB2F4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DB2F8 */ return;
|
|
}
|
|
|
|
// fn_028DB2FC @ 0x28db2fc
|
|
void Gambit_fn_028DB2FC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028DB2FC: ; // 0x28db2fc
|
|
/* 028DB2FC */ cpu->r[0] = cpu->lr;
|
|
/* 028DB300 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DB300 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DB300 */ cpu->r[1] = _t0;
|
|
/* 028DB304 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB304 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DB308 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB308 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DB30C */ cpu->r[31] = cpu->r[5];
|
|
/* 028DB310 */ cpu->r[30] = cpu->r[4];
|
|
/* 028DB314 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB314 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DB318 */ _t4 = cpu->r[31] + 0x00000008u;
|
|
/* 028DB318 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028DB31C */ cpu->r[3] = cpu->r[30];
|
|
/* 028DB320 */ Gambit_fn_028DD120(cpu);
|
|
/* 028DB324 */ _t5 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DB324 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 028DB328 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DB32C */ Gambit_fn_028DD174(cpu);
|
|
/* 028DB330 */ _t6 = cpu->r[31] + 0x00000010u;
|
|
/* 028DB330 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028DB334 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DB338 */ Gambit_fn_028DD1CC(cpu);
|
|
/* 028DB33C */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB33C */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DB340 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB340 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DB344 */ cpu->lr = cpu->r[0];
|
|
/* 028DB348 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB348 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DB34C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DB350 */ return;
|
|
}
|
|
|
|
// fn_028DB300 @ 0x28db300
|
|
void Gambit_fn_028DB300(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028DB300: ; // 0x28db300
|
|
/* 028DB300 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DB300 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DB300 */ cpu->r[1] = _t0;
|
|
/* 028DB304 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB304 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DB308 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB308 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DB30C */ cpu->r[31] = cpu->r[5];
|
|
/* 028DB310 */ cpu->r[30] = cpu->r[4];
|
|
/* 028DB314 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB314 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DB318 */ _t4 = cpu->r[31] + 0x00000008u;
|
|
/* 028DB318 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028DB31C */ cpu->r[3] = cpu->r[30];
|
|
/* 028DB320 */ Gambit_fn_028DD120(cpu);
|
|
/* 028DB324 */ _t5 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DB324 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 028DB328 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DB32C */ Gambit_fn_028DD174(cpu);
|
|
/* 028DB330 */ _t6 = cpu->r[31] + 0x00000010u;
|
|
/* 028DB330 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028DB334 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DB338 */ Gambit_fn_028DD1CC(cpu);
|
|
/* 028DB33C */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB33C */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DB340 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB340 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DB344 */ cpu->lr = cpu->r[0];
|
|
/* 028DB348 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB348 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DB34C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DB350 */ return;
|
|
}
|
|
|
|
// fn_028DB354 @ 0x28db354
|
|
void Gambit_fn_028DB354(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33;
|
|
|
|
L_028DB354: ; // 0x28db354
|
|
/* 028DB354 */ cpu->r[0] = cpu->lr;
|
|
/* 028DB358 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 028DB358 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DB358 */ cpu->r[1] = _t0;
|
|
/* 028DB35C */ _t1 = cpu->r[1] + 0x00000030u;
|
|
/* 028DB35C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DB360 */ cpu->r[30] = cpu->r[5];
|
|
/* 028DB364 */ _t2 = cpu->r[1] + 0x00000028u;
|
|
/* 028DB364 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028DB368 */ _t3 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DB368 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DB36C */ _t4 = cpu->r[1] + 0x00000034u;
|
|
/* 028DB36C */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028DB370 */ _t5 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028DB370 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DB374 */ cpu->r[29] = cpu->r[4];
|
|
/* 028DB378 */ cpu->r[10] = 0x10140000u;
|
|
/* 028DB37C */ _t6 = cpu->r[30] + 0x00000000u;
|
|
/* 028DB37C */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DB380 */ cpu->r[10] = cpu->r[10] + 0xFFFFB1DCu;
|
|
/* 028DB384 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000001u);
|
|
/* 028DB388 */ cpu->r[28] = cpu->r[3];
|
|
/* 028DB38C */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DB38C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DB38C */ if (_t8) goto L_028DB3B4; else goto L_028DB390;
|
|
L_028DB390: ; // 0x28db390
|
|
/* 028DB390 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB390 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028DB390 */ if (_t10) goto L_028DB3F4; else goto L_028DB394;
|
|
L_028DB394: ; // 0x28db394
|
|
/* 028DB394 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000002u);
|
|
/* 028DB398 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB398 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028DB398 */ if (_t12) goto L_028DB434; else goto L_028DB39C;
|
|
L_028DB39C: ; // 0x28db39c
|
|
/* 028DB39C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000004u);
|
|
/* 028DB3A0 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB3A0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028DB3A0 */ if (_t14) goto L_028DB474; else goto L_028DB3A4;
|
|
L_028DB3A4: ; // 0x28db3a4
|
|
/* 028DB3A4 */ _t15 = cpu->r[30] + 0x00000014u;
|
|
/* 028DB3A4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028DB3A8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DB3AC */ Gambit_fn_028EDB74(cpu);
|
|
/* 028DB3B0 */ goto L_028DB498;
|
|
L_028DB3B4: ; // 0x28db3b4
|
|
/* 028DB3B4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DB3B8 */ cpu->r[31] = cpu->r[29] + 0x00000004u;
|
|
/* 028DB3BC */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB3BC */ rbrew_write32(cpu->mem, _t16, cpu->r[10]);
|
|
/* 028DB3C0 */ cpu->r[0] = cpu->r[0] + 0xFFFFB240u;
|
|
/* 028DB3C4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DB3C8 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028DB3CC */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB3CC */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 028DB3D0 */ Gambit_fn_028DCED8(cpu);
|
|
/* 028DB3D4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DB3D8 */ cpu->r[4] = cpu->r[31];
|
|
/* 028DB3DC */ cpu->r[5] = cpu->r[30];
|
|
/* 028DB3E0 */ Gambit_fn_028DB2FC(cpu);
|
|
/* 028DB3E4 */ _t18 = cpu->r[30] + 0x00000014u;
|
|
/* 028DB3E4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t18);
|
|
/* 028DB3E8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DB3EC */ Gambit_fn_028EDB74(cpu);
|
|
/* 028DB3F0 */ goto L_028DB498;
|
|
L_028DB3F4: ; // 0x28db3f4
|
|
/* 028DB3F4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DB3F8 */ cpu->r[31] = cpu->r[29] + 0x00000004u;
|
|
/* 028DB3FC */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB3FC */ rbrew_write32(cpu->mem, _t19, cpu->r[10]);
|
|
/* 028DB400 */ cpu->r[0] = cpu->r[0] + 0xFFFFB228u;
|
|
/* 028DB404 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DB408 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028DB40C */ _t20 = cpu->r[1] + 0x00000010u;
|
|
/* 028DB40C */ rbrew_write32(cpu->mem, _t20, cpu->r[0]);
|
|
/* 028DB410 */ Gambit_fn_028DCED8(cpu);
|
|
/* 028DB414 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DB418 */ cpu->r[4] = cpu->r[31];
|
|
/* 028DB41C */ cpu->r[5] = cpu->r[30];
|
|
/* 028DB420 */ Gambit_fn_028DB2FC(cpu);
|
|
/* 028DB424 */ _t21 = cpu->r[30] + 0x00000014u;
|
|
/* 028DB424 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028DB428 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DB42C */ Gambit_fn_028EDB74(cpu);
|
|
/* 028DB430 */ goto L_028DB498;
|
|
L_028DB434: ; // 0x28db434
|
|
/* 028DB434 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DB438 */ cpu->r[31] = cpu->r[29] + 0x00000004u;
|
|
/* 028DB43C */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DB43C */ rbrew_write32(cpu->mem, _t22, cpu->r[10]);
|
|
/* 028DB440 */ cpu->r[0] = cpu->r[0] + 0xFFFFB258u;
|
|
/* 028DB444 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DB448 */ cpu->r[4] = cpu->r[1] + 0x00000018u;
|
|
/* 028DB44C */ _t23 = cpu->r[1] + 0x00000018u;
|
|
/* 028DB44C */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 028DB450 */ Gambit_fn_028DCED8(cpu);
|
|
/* 028DB454 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DB458 */ cpu->r[4] = cpu->r[31];
|
|
/* 028DB45C */ cpu->r[5] = cpu->r[30];
|
|
/* 028DB460 */ Gambit_fn_028DB2FC(cpu);
|
|
/* 028DB464 */ _t24 = cpu->r[30] + 0x00000014u;
|
|
/* 028DB464 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 028DB468 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DB46C */ Gambit_fn_028EDB74(cpu);
|
|
/* 028DB470 */ goto L_028DB498;
|
|
L_028DB474: ; // 0x28db474
|
|
/* 028DB474 */ _t25 = cpu->r[30] + 0x00000004u;
|
|
/* 028DB474 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028DB478 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 028DB47C */ _t26 = cpu->r[1] + 0x00000024u;
|
|
/* 028DB47C */ rbrew_write32(cpu->mem, _t26, cpu->r[10]);
|
|
/* 028DB480 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DB484 */ _t27 = cpu->r[1] + 0x00000020u;
|
|
/* 028DB484 */ rbrew_write32(cpu->mem, _t27, cpu->r[0]);
|
|
/* 028DB488 */ Gambit_fn_028EDB14(cpu);
|
|
/* 028DB48C */ _t28 = cpu->r[30] + 0x00000014u;
|
|
/* 028DB48C */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 028DB490 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DB494 */ Gambit_fn_028EDB74(cpu);
|
|
L_028DB498: ; // 0x28db498
|
|
/* 028DB498 */ _t29 = cpu->r[1] + 0x00000028u;
|
|
/* 028DB498 */ cpu->r[28] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028DB49C */ _t30 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DB49C */ cpu->r[29] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028DB4A0 */ _t31 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028DB4A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028DB4A4 */ _t32 = cpu->r[1] + 0x00000030u;
|
|
/* 028DB4A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028DB4A8 */ cpu->lr = cpu->r[0];
|
|
/* 028DB4AC */ _t33 = cpu->r[1] + 0x00000034u;
|
|
/* 028DB4AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028DB4B0 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 028DB4B4 */ return;
|
|
}
|
|
|
|
// fn_028DB358 @ 0x28db358
|
|
void Gambit_fn_028DB358(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33;
|
|
|
|
L_028DB358: ; // 0x28db358
|
|
/* 028DB358 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 028DB358 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DB358 */ cpu->r[1] = _t0;
|
|
/* 028DB35C */ _t1 = cpu->r[1] + 0x00000030u;
|
|
/* 028DB35C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DB360 */ cpu->r[30] = cpu->r[5];
|
|
/* 028DB364 */ _t2 = cpu->r[1] + 0x00000028u;
|
|
/* 028DB364 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028DB368 */ _t3 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DB368 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DB36C */ _t4 = cpu->r[1] + 0x00000034u;
|
|
/* 028DB36C */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028DB370 */ _t5 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028DB370 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DB374 */ cpu->r[29] = cpu->r[4];
|
|
/* 028DB378 */ cpu->r[10] = 0x10140000u;
|
|
/* 028DB37C */ _t6 = cpu->r[30] + 0x00000000u;
|
|
/* 028DB37C */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DB380 */ cpu->r[10] = cpu->r[10] + 0xFFFFB1DCu;
|
|
/* 028DB384 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000001u);
|
|
/* 028DB388 */ cpu->r[28] = cpu->r[3];
|
|
/* 028DB38C */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DB38C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DB38C */ if (_t8) goto L_028DB3B4; else goto L_028DB390;
|
|
L_028DB390: ; // 0x28db390
|
|
/* 028DB390 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB390 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028DB390 */ if (_t10) goto L_028DB3F4; else goto L_028DB394;
|
|
L_028DB394: ; // 0x28db394
|
|
/* 028DB394 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000002u);
|
|
/* 028DB398 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB398 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028DB398 */ if (_t12) goto L_028DB434; else goto L_028DB39C;
|
|
L_028DB39C: ; // 0x28db39c
|
|
/* 028DB39C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000004u);
|
|
/* 028DB3A0 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB3A0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028DB3A0 */ if (_t14) goto L_028DB474; else goto L_028DB3A4;
|
|
L_028DB3A4: ; // 0x28db3a4
|
|
/* 028DB3A4 */ _t15 = cpu->r[30] + 0x00000014u;
|
|
/* 028DB3A4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028DB3A8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DB3AC */ Gambit_fn_028EDB74(cpu);
|
|
/* 028DB3B0 */ goto L_028DB498;
|
|
L_028DB3B4: ; // 0x28db3b4
|
|
/* 028DB3B4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DB3B8 */ cpu->r[31] = cpu->r[29] + 0x00000004u;
|
|
/* 028DB3BC */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB3BC */ rbrew_write32(cpu->mem, _t16, cpu->r[10]);
|
|
/* 028DB3C0 */ cpu->r[0] = cpu->r[0] + 0xFFFFB240u;
|
|
/* 028DB3C4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DB3C8 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028DB3CC */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB3CC */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 028DB3D0 */ Gambit_fn_028DCED8(cpu);
|
|
/* 028DB3D4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DB3D8 */ cpu->r[4] = cpu->r[31];
|
|
/* 028DB3DC */ cpu->r[5] = cpu->r[30];
|
|
/* 028DB3E0 */ Gambit_fn_028DB2FC(cpu);
|
|
/* 028DB3E4 */ _t18 = cpu->r[30] + 0x00000014u;
|
|
/* 028DB3E4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t18);
|
|
/* 028DB3E8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DB3EC */ Gambit_fn_028EDB74(cpu);
|
|
/* 028DB3F0 */ goto L_028DB498;
|
|
L_028DB3F4: ; // 0x28db3f4
|
|
/* 028DB3F4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DB3F8 */ cpu->r[31] = cpu->r[29] + 0x00000004u;
|
|
/* 028DB3FC */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB3FC */ rbrew_write32(cpu->mem, _t19, cpu->r[10]);
|
|
/* 028DB400 */ cpu->r[0] = cpu->r[0] + 0xFFFFB228u;
|
|
/* 028DB404 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DB408 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028DB40C */ _t20 = cpu->r[1] + 0x00000010u;
|
|
/* 028DB40C */ rbrew_write32(cpu->mem, _t20, cpu->r[0]);
|
|
/* 028DB410 */ Gambit_fn_028DCED8(cpu);
|
|
/* 028DB414 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DB418 */ cpu->r[4] = cpu->r[31];
|
|
/* 028DB41C */ cpu->r[5] = cpu->r[30];
|
|
/* 028DB420 */ Gambit_fn_028DB2FC(cpu);
|
|
/* 028DB424 */ _t21 = cpu->r[30] + 0x00000014u;
|
|
/* 028DB424 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028DB428 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DB42C */ Gambit_fn_028EDB74(cpu);
|
|
/* 028DB430 */ goto L_028DB498;
|
|
L_028DB434: ; // 0x28db434
|
|
/* 028DB434 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DB438 */ cpu->r[31] = cpu->r[29] + 0x00000004u;
|
|
/* 028DB43C */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DB43C */ rbrew_write32(cpu->mem, _t22, cpu->r[10]);
|
|
/* 028DB440 */ cpu->r[0] = cpu->r[0] + 0xFFFFB258u;
|
|
/* 028DB444 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DB448 */ cpu->r[4] = cpu->r[1] + 0x00000018u;
|
|
/* 028DB44C */ _t23 = cpu->r[1] + 0x00000018u;
|
|
/* 028DB44C */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 028DB450 */ Gambit_fn_028DCED8(cpu);
|
|
/* 028DB454 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DB458 */ cpu->r[4] = cpu->r[31];
|
|
/* 028DB45C */ cpu->r[5] = cpu->r[30];
|
|
/* 028DB460 */ Gambit_fn_028DB2FC(cpu);
|
|
/* 028DB464 */ _t24 = cpu->r[30] + 0x00000014u;
|
|
/* 028DB464 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 028DB468 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DB46C */ Gambit_fn_028EDB74(cpu);
|
|
/* 028DB470 */ goto L_028DB498;
|
|
L_028DB474: ; // 0x28db474
|
|
/* 028DB474 */ _t25 = cpu->r[30] + 0x00000004u;
|
|
/* 028DB474 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028DB478 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 028DB47C */ _t26 = cpu->r[1] + 0x00000024u;
|
|
/* 028DB47C */ rbrew_write32(cpu->mem, _t26, cpu->r[10]);
|
|
/* 028DB480 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DB484 */ _t27 = cpu->r[1] + 0x00000020u;
|
|
/* 028DB484 */ rbrew_write32(cpu->mem, _t27, cpu->r[0]);
|
|
/* 028DB488 */ Gambit_fn_028EDB14(cpu);
|
|
/* 028DB48C */ _t28 = cpu->r[30] + 0x00000014u;
|
|
/* 028DB48C */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 028DB490 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DB494 */ Gambit_fn_028EDB74(cpu);
|
|
L_028DB498: ; // 0x28db498
|
|
/* 028DB498 */ _t29 = cpu->r[1] + 0x00000028u;
|
|
/* 028DB498 */ cpu->r[28] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028DB49C */ _t30 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DB49C */ cpu->r[29] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028DB4A0 */ _t31 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028DB4A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028DB4A4 */ _t32 = cpu->r[1] + 0x00000030u;
|
|
/* 028DB4A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028DB4A8 */ cpu->lr = cpu->r[0];
|
|
/* 028DB4AC */ _t33 = cpu->r[1] + 0x00000034u;
|
|
/* 028DB4AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028DB4B0 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 028DB4B4 */ return;
|
|
}
|
|
|
|
// fn_028DB4B8 @ 0x28db4b8
|
|
void Gambit_fn_028DB4B8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028DB4B8: ; // 0x28db4b8
|
|
/* 028DB4B8 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028DB4B8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028DB4BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000005u);
|
|
/* 028DB4C0 */ _t1 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DB4C0 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028DB4C0 */ _t3 = _t2 ^ 0x00000001u;
|
|
/* 028DB4C0 */ if (_t3) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DB4C0 */ goto L_028DB4C4;
|
|
L_028DB4C4: ; // 0x28db4c4
|
|
/* 028DB4C4 */ cpu->r[0] = 0x00000001u;
|
|
/* 028DB4C8 */ _t4 = cpu->r[3] + 0x000001E4u;
|
|
/* 028DB4C8 */ cpu->r[10] = rbrew_read8(cpu->mem, _t4);
|
|
/* 028DB4CC */ /* nop */
|
|
/* 028DB4D0 */ cpu->r[10] = cpu->r[10] | cpu->r[12];
|
|
/* 028DB4D4 */ _t5 = cpu->r[3] + 0x000001E4u;
|
|
/* 028DB4D4 */ rbrew_write8(cpu->mem, _t5, (uint8_t)cpu->r[10]);
|
|
/* 028DB4D8 */ return;
|
|
}
|
|
|
|
// fn_028DB4DC @ 0x28db4dc
|
|
void Gambit_fn_028DB4DC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48;
|
|
|
|
L_028DB4DC: ; // 0x28db4dc
|
|
/* 028DB4DC */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 028DB4DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DB4DC */ cpu->r[1] = _t0;
|
|
/* 028DB4E0 */ /* nop */
|
|
/* 028DB4E4 */ cpu->r[9] = 0x10140000u;
|
|
/* 028DB4E8 */ _t1 = cpu->r[9] + 0xFFFFB218u;
|
|
/* 028DB4E8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t1);
|
|
/* 028DB4EC */ cpu->r[0] = cpu->lr;
|
|
/* 028DB4F0 */ _t2 = cpu->r[1] + 0x00000034u;
|
|
/* 028DB4F0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DB4F4 */ cpu->r[29] = 0x00000000u;
|
|
/* 028DB4F8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DB4FC */ _t3 = cpu->r[30] + 0x000001E4u;
|
|
/* 028DB4FC */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[29]);
|
|
/* 028DB500 */ cpu->r[31] = cpu->r[4];
|
|
/* 028DB504 */ _t4 = cpu->r[31] + 0x00000018u;
|
|
/* 028DB504 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028DB508 */ _t5 = cpu->r[30] + 0x000001E8u;
|
|
/* 028DB508 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[0]);
|
|
/* 028DB50C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[13]);
|
|
/* 028DB510 */ _t6 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028DB510 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028DB514 */ _t7 = cpu->r[30] + 0x000001ECu;
|
|
/* 028DB514 */ rbrew_write_f32(cpu->mem, _t7, cpu->f[12]);
|
|
/* 028DB518 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DB518 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028DB518 */ if (_t9) goto L_028DB52C; else goto L_028DB51C;
|
|
L_028DB51C: ; // 0x28db51c
|
|
/* 028DB51C */ cpu->r[12] = 0x10140000u;
|
|
/* 028DB520 */ _t10 = cpu->r[12] + 0xFFFFB214u;
|
|
/* 028DB520 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028DB524 */ _t11 = cpu->r[30] + 0x000001ECu;
|
|
/* 028DB524 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028DB528 */ _t12 = cpu->r[30] + 0x000001E8u;
|
|
/* 028DB528 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[0]);
|
|
L_028DB52C: ; // 0x28db52c
|
|
/* 028DB52C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[12]);
|
|
/* 028DB530 */ _t13 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DB530 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028DB530 */ if (_t14) goto L_028DB53C; else goto L_028DB534;
|
|
L_028DB534: ; // 0x28db534
|
|
/* 028DB534 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[0]);
|
|
/* 028DB538 */ _t15 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DB538 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028DB538 */ if (_t16) goto L_028DB53C; else goto L_028DB540;
|
|
L_028DB53C: ; // 0x28db53c
|
|
/* 028DB53C */ _t17 = cpu->r[30] + 0x000001ECu;
|
|
/* 028DB53C */ rbrew_write_f32(cpu->mem, _t17, cpu->f[13]);
|
|
L_028DB540: ; // 0x28db540
|
|
/* 028DB540 */ _t18 = cpu->r[31] + 0x00000020u;
|
|
/* 028DB540 */ cpu->r[10] = rbrew_read8(cpu->mem, _t18);
|
|
/* 028DB544 */ cpu->r[24] = 0x00000000u;
|
|
/* 028DB548 */ _t19 = cpu->r[30] + 0x00000204u;
|
|
/* 028DB548 */ rbrew_write8(cpu->mem, _t19, (uint8_t)cpu->r[10]);
|
|
/* 028DB54C */ _t20 = cpu->r[31] + 0x00000021u;
|
|
/* 028DB54C */ cpu->r[0] = rbrew_read8(cpu->mem, _t20);
|
|
/* 028DB550 */ cpu->r[27] = cpu->r[24];
|
|
/* 028DB554 */ cpu->r[28] = cpu->r[31];
|
|
/* 028DB558 */ cpu->r[26] = 0x00000005u;
|
|
/* 028DB55C */ _t21 = cpu->r[30] + 0x00000205u;
|
|
/* 028DB55C */ rbrew_write8(cpu->mem, _t21, (uint8_t)cpu->r[0]);
|
|
L_028DB560: ; // 0x28db560
|
|
/* 028DB560 */ _t22 = cpu->r[28] + 0x00000004u;
|
|
/* 028DB560 */ cpu->r[5] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DB560 */ cpu->r[28] = _t22;
|
|
/* 028DB564 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028DB568 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB568 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028DB568 */ if (_t24) goto L_028DB5A0; else goto L_028DB56C;
|
|
L_028DB56C: ; // 0x28db56c
|
|
/* 028DB56C */ cpu->r[12] = cpu->r[30] + 0x00000004u;
|
|
/* 028DB570 */ cpu->r[25] = cpu->r[12] + cpu->r[27];
|
|
/* 028DB574 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DB578 */ cpu->r[4] = cpu->r[25];
|
|
/* 028DB57C */ Gambit_fn_028DB354(cpu);
|
|
/* 028DB580 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028DB584 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DB588 */ _t25 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB588 */ rbrew_write32(cpu->mem, _t25, cpu->r[24]);
|
|
/* 028DB58C */ Gambit_fn_028DB4B8(cpu);
|
|
/* 028DB590 */ cpu->r[4] = cpu->r[25];
|
|
/* 028DB594 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028DB598 */ _t26 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB598 */ rbrew_write32(cpu->mem, _t26, cpu->r[24]);
|
|
/* 028DB59C */ Gambit_fn_028DB148(cpu);
|
|
L_028DB5A0: ; // 0x28db5a0
|
|
/* 028DB5A0 */ cpu->r[26] = cpu->r[26] + 0xFFFFFFFFu;
|
|
/* 028DB5A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028DB5A4 */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
/* 028DB5A8 */ cpu->r[27] = cpu->r[27] + 0x00000060u;
|
|
/* 028DB5AC */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB5AC */ _t28 = _t27 & 0x00000001u;
|
|
/* 028DB5AC */ if (_t28) goto L_028DB5B0; else goto L_028DB560;
|
|
L_028DB5B0: ; // 0x28db5b0
|
|
/* 028DB5B0 */ _t29 = cpu->r[31] + 0x00000024u;
|
|
/* 028DB5B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028DB5B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DB5B8 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB5B8 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028DB5B8 */ if (_t31) goto L_028DB5FC; else goto L_028DB5BC;
|
|
L_028DB5BC: ; // 0x28db5bc
|
|
/* 028DB5BC */ cpu->r[5] = 0x00000001u;
|
|
/* 028DB5C0 */ _t32 = cpu->r[30] + 0x000001F0u;
|
|
/* 028DB5C0 */ rbrew_write8(cpu->mem, _t32, (uint8_t)cpu->r[5]);
|
|
/* 028DB5C4 */ _t33 = cpu->r[31] + 0x00000024u;
|
|
/* 028DB5C4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028DB5C8 */ _t34 = cpu->r[6] + 0x00000000u;
|
|
/* 028DB5C8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t34);
|
|
/* 028DB5CC */ _t35 = cpu->r[30] + 0x000001F4u;
|
|
/* 028DB5CC */ rbrew_write_f32(cpu->mem, _t35, cpu->f[13]);
|
|
/* 028DB5D0 */ _t36 = cpu->r[31] + 0x00000024u;
|
|
/* 028DB5D0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028DB5D4 */ _t37 = cpu->r[7] + 0x00000004u;
|
|
/* 028DB5D4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 028DB5D8 */ _t38 = cpu->r[30] + 0x000001F8u;
|
|
/* 028DB5D8 */ rbrew_write_f32(cpu->mem, _t38, cpu->f[0]);
|
|
/* 028DB5DC */ _t39 = cpu->r[31] + 0x00000024u;
|
|
/* 028DB5DC */ cpu->r[8] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028DB5E0 */ _t40 = cpu->r[8] + 0x00000008u;
|
|
/* 028DB5E0 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t40);
|
|
/* 028DB5E4 */ _t41 = cpu->r[30] + 0x000001FCu;
|
|
/* 028DB5E4 */ rbrew_write_f32(cpu->mem, _t41, cpu->f[13]);
|
|
/* 028DB5E8 */ _t42 = cpu->r[31] + 0x00000024u;
|
|
/* 028DB5E8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028DB5EC */ _t43 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028DB5EC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t43);
|
|
/* 028DB5F0 */ _t44 = cpu->r[30] + 0x00000206u;
|
|
/* 028DB5F0 */ rbrew_write8(cpu->mem, _t44, (uint8_t)cpu->r[5]);
|
|
/* 028DB5F4 */ _t45 = cpu->r[30] + 0x00000200u;
|
|
/* 028DB5F4 */ rbrew_write_f32(cpu->mem, _t45, cpu->f[0]);
|
|
/* 028DB5F8 */ goto L_028DB608;
|
|
L_028DB5FC: ; // 0x28db5fc
|
|
/* 028DB5FC */ _t46 = cpu->r[30] + 0x000001F0u;
|
|
/* 028DB5FC */ rbrew_write8(cpu->mem, _t46, (uint8_t)cpu->r[29]);
|
|
/* 028DB600 */ cpu->r[10] = 0x00000001u;
|
|
/* 028DB604 */ _t47 = cpu->r[30] + 0x00000206u;
|
|
/* 028DB604 */ rbrew_write8(cpu->mem, _t47, (uint8_t)cpu->r[10]);
|
|
L_028DB608: ; // 0x28db608
|
|
/* 028DB608 */ /* nop */
|
|
/* 028DB60C */ _t48 = cpu->r[1] + 0x00000034u;
|
|
/* 028DB60C */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028DB610 */ cpu->lr = cpu->r[0];
|
|
/* 028DB614 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 028DB618 */ return;
|
|
}
|
|
|
|
// fn_028DB61C @ 0x28db61c
|
|
void Gambit_fn_028DB61C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028DB61C: ; // 0x28db61c
|
|
/* 028DB61C */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028DB61C */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028DB620 */ cpu->r[12] = cpu->r[3];
|
|
/* 028DB624 */ cpu->r[3] = 0x00000000u;
|
|
/* 028DB628 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000005u);
|
|
/* 028DB62C */ _t1 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DB62C */ _t2 = _t1 & 0x00000001u;
|
|
/* 028DB62C */ _t3 = _t2 ^ 0x00000001u;
|
|
/* 028DB62C */ if (_t3) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DB62C */ goto L_028DB630;
|
|
L_028DB630: ; // 0x28db630
|
|
/* 028DB630 */ cpu->r[11] = 0x00000001u;
|
|
/* 028DB634 */ /* nop */
|
|
/* 028DB638 */ _t4 = cpu->r[12] + 0x000001E4u;
|
|
/* 028DB638 */ cpu->r[12] = rbrew_read8(cpu->mem, _t4);
|
|
/* 028DB63C */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028DB640 */ cpu->r[11] = cpu->r[12] & cpu->r[0];
|
|
/* 028DB644 */ cpu->r[0] = cpu->r[11] + 0xFFFFFFFFu;
|
|
/* 028DB648 */ cpu->r[3] = cpu->r[11] - cpu->r[0];
|
|
/* 028DB64C */ return;
|
|
}
|
|
|
|
// fn_028DB650 @ 0x28db650
|
|
void Gambit_fn_028DB650(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028DB650: ; // 0x28db650
|
|
/* 028DB650 */ cpu->r[0] = cpu->lr;
|
|
/* 028DB654 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028DB654 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028DB658 */ _t1 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DB658 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028DB658 */ cpu->r[1] = _t1;
|
|
/* 028DB65C */ _t2 = cpu->r[4] + 0x00000000u;
|
|
/* 028DB65C */ cpu->r[9] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028DB660 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000005u);
|
|
/* 028DB664 */ cpu->r[10] = cpu->r[3];
|
|
/* 028DB668 */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DB668 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028DB668 */ if (_t4) goto L_028DB66C; else goto L_028DB6A4;
|
|
L_028DB66C: ; // 0x28db66c
|
|
/* 028DB66C */ _t5 = cpu->r[4] + 0x00000000u;
|
|
/* 028DB66C */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028DB670 */ cpu->r[3] = cpu->r[10];
|
|
/* 028DB674 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028DB678 */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB678 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028DB67C */ Gambit_fn_028DB61C(cpu);
|
|
/* 028DB680 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DB684 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB684 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DB684 */ if (_t8) goto L_028DB6A4; else goto L_028DB688;
|
|
L_028DB688: ; // 0x28db688
|
|
/* 028DB688 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB688 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DB68C */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x00000060u);
|
|
/* 028DB690 */ cpu->lr = cpu->r[0];
|
|
/* 028DB694 */ cpu->r[11] = cpu->r[10] + 0x00000004u;
|
|
/* 028DB698 */ cpu->r[3] = cpu->r[11] + cpu->r[12];
|
|
/* 028DB69C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DB6A0 */ return;
|
|
L_028DB6A4: ; // 0x28db6a4
|
|
/* 028DB6A4 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB6A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DB6A8 */ cpu->lr = cpu->r[0];
|
|
/* 028DB6AC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DB6B0 */ cpu->r[3] = 0x00000000u;
|
|
/* 028DB6B4 */ return;
|
|
}
|
|
|
|
// fn_028DB658 @ 0x28db658
|
|
void Gambit_fn_028DB658(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028DB658: ; // 0x28db658
|
|
/* 028DB658 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DB658 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DB658 */ cpu->r[1] = _t0;
|
|
/* 028DB65C */ _t1 = cpu->r[4] + 0x00000000u;
|
|
/* 028DB65C */ cpu->r[9] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028DB660 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000005u);
|
|
/* 028DB664 */ cpu->r[10] = cpu->r[3];
|
|
/* 028DB668 */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DB668 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028DB668 */ if (_t3) goto L_028DB66C; else goto L_028DB6A4;
|
|
L_028DB66C: ; // 0x28db66c
|
|
/* 028DB66C */ _t4 = cpu->r[4] + 0x00000000u;
|
|
/* 028DB66C */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028DB670 */ cpu->r[3] = cpu->r[10];
|
|
/* 028DB674 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028DB678 */ _t5 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB678 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DB67C */ Gambit_fn_028DB61C(cpu);
|
|
/* 028DB680 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DB684 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB684 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DB684 */ if (_t7) goto L_028DB6A4; else goto L_028DB688;
|
|
L_028DB688: ; // 0x28db688
|
|
/* 028DB688 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB688 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DB68C */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x00000060u);
|
|
/* 028DB690 */ cpu->lr = cpu->r[0];
|
|
/* 028DB694 */ cpu->r[11] = cpu->r[10] + 0x00000004u;
|
|
/* 028DB698 */ cpu->r[3] = cpu->r[11] + cpu->r[12];
|
|
/* 028DB69C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DB6A0 */ return;
|
|
L_028DB6A4: ; // 0x28db6a4
|
|
/* 028DB6A4 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB6A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DB6A8 */ cpu->lr = cpu->r[0];
|
|
/* 028DB6AC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DB6B0 */ cpu->r[3] = 0x00000000u;
|
|
/* 028DB6B4 */ return;
|
|
}
|
|
|
|
// fn_028DB6B8 @ 0x28db6b8
|
|
void Gambit_fn_028DB6B8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028DB6B8: ; // 0x28db6b8
|
|
/* 028DB6B8 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028DB6B8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028DB6BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000005u);
|
|
/* 028DB6C0 */ _t1 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DB6C0 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028DB6C0 */ _t3 = _t2 ^ 0x00000001u;
|
|
/* 028DB6C0 */ if (_t3) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DB6C0 */ goto L_028DB6C4;
|
|
L_028DB6C4: ; // 0x28db6c4
|
|
/* 028DB6C4 */ cpu->r[0] = 0x00000001u;
|
|
/* 028DB6C8 */ _t4 = cpu->r[3] + 0x000001E4u;
|
|
/* 028DB6C8 */ cpu->r[10] = rbrew_read8(cpu->mem, _t4);
|
|
/* 028DB6CC */ /* nop */
|
|
/* 028DB6D0 */ _t5 = ~cpu->r[12];
|
|
/* 028DB6D0 */ cpu->r[10] = cpu->r[10] & _t5;
|
|
/* 028DB6D4 */ _t6 = cpu->r[3] + 0x000001E4u;
|
|
/* 028DB6D4 */ rbrew_write8(cpu->mem, _t6, (uint8_t)cpu->r[10]);
|
|
/* 028DB6D8 */ return;
|
|
}
|
|
|
|
// fn_028DB6DC @ 0x28db6dc
|
|
void Gambit_fn_028DB6DC(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028DB6DC: ; // 0x28db6dc
|
|
/* 028DB6DC */ cpu->r[12] = 0x10140000u;
|
|
/* 028DB6E0 */ cpu->f[12] = -cpu->f[1];
|
|
/* 028DB6E4 */ _t0 = cpu->r[12] + 0xFFFFB214u;
|
|
/* 028DB6E4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028DB6E8 */ /* nop */
|
|
/* 028DB6EC */ _t1 = cpu->r[3] + 0x000001E8u;
|
|
/* 028DB6EC */ rbrew_write_f32(cpu->mem, _t1, cpu->f[13]);
|
|
/* 028DB6F0 */ return;
|
|
}
|
|
|
|
// fn_028DB6F4 @ 0x28db6f4
|
|
void Gambit_fn_028DB6F4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028DB6F4: ; // 0x28db6f4
|
|
/* 028DB6F4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DB6F8 */ _t0 = cpu->r[3] + 0x000001E8u;
|
|
/* 028DB6F8 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028DB6FC */ _t1 = cpu->r[12] + 0xFFFFB218u;
|
|
/* 028DB6FC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t1);
|
|
/* 028DB700 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[0]);
|
|
/* 028DB704 */ _t2 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DB704 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028DB704 */ if (_t3) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DB704 */ goto L_028DB708;
|
|
L_028DB708: ; // 0x28db708
|
|
/* 028DB708 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DB70C */ _t4 = cpu->r[12] + 0xFFFFB214u;
|
|
/* 028DB70C */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028DB710 */ return;
|
|
}
|
|
|
|
// fn_028DB714 @ 0x28db714
|
|
void Gambit_fn_028DB714(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028DB714: ; // 0x28db714
|
|
/* 028DB714 */ cpu->r[0] = cpu->lr;
|
|
/* 028DB718 */ cpu->f[10] = cpu->f[1];
|
|
/* 028DB71C */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028DB71C */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028DB720 */ cpu->r[11] = cpu->r[3];
|
|
/* 028DB724 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028DB724 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028DB724 */ cpu->r[1] = _t1;
|
|
/* 028DB728 */ Gambit_fn_028DB6F4(cpu);
|
|
/* 028DB72C */ _t2 = cpu->r[11] + 0x000001ECu;
|
|
/* 028DB72C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t2);
|
|
/* 028DB730 */ cpu->f[11] = cpu->f[1] - cpu->f[13];
|
|
/* 028DB734 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DB738 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[10], cpu->f[11]);
|
|
/* 028DB73C */ _t3 = cpu->r[12] + 0xFFFFB274u;
|
|
/* 028DB73C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t3);
|
|
/* 028DB740 */ _t4 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DB740 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DB740 */ if (_t5) goto L_028DB758; else goto L_028DB744;
|
|
L_028DB744: ; // 0x28db744
|
|
/* 028DB744 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB744 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DB748 */ cpu->lr = cpu->r[0];
|
|
/* 028DB74C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028DB750 */ cpu->f[1] = cpu->f[0];
|
|
/* 028DB754 */ return;
|
|
L_028DB758: ; // 0x28db758
|
|
/* 028DB758 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[10], cpu->f[1]);
|
|
/* 028DB75C */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DB75C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DB75C */ if (_t8) goto L_028DB778; else goto L_028DB760;
|
|
L_028DB760: ; // 0x28db760
|
|
/* 028DB760 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB760 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DB764 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DB768 */ cpu->lr = cpu->r[0];
|
|
/* 028DB76C */ _t10 = cpu->r[12] + 0xFFFFB218u;
|
|
/* 028DB76C */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028DB770 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028DB774 */ return;
|
|
L_028DB778: ; // 0x28db778
|
|
/* 028DB778 */ cpu->f[12] = cpu->f[10] - cpu->f[11];
|
|
/* 028DB77C */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB77C */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DB780 */ cpu->f[13] = cpu->f[12] / cpu->f[13];
|
|
/* 028DB784 */ cpu->lr = cpu->r[0];
|
|
/* 028DB788 */ cpu->f[12] = cpu->f[0] - cpu->f[13];
|
|
/* 028DB78C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028DB790 */ cpu->f[1] = cpu->f[12] * cpu->f[12];
|
|
/* 028DB794 */ return;
|
|
}
|
|
|
|
// fn_028DB724 @ 0x28db724
|
|
void Gambit_fn_028DB724(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028DB724: ; // 0x28db724
|
|
/* 028DB724 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028DB724 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DB724 */ cpu->r[1] = _t0;
|
|
/* 028DB728 */ Gambit_fn_028DB6F4(cpu);
|
|
/* 028DB72C */ _t1 = cpu->r[11] + 0x000001ECu;
|
|
/* 028DB72C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t1);
|
|
/* 028DB730 */ cpu->f[11] = cpu->f[1] - cpu->f[13];
|
|
/* 028DB734 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DB738 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[10], cpu->f[11]);
|
|
/* 028DB73C */ _t2 = cpu->r[12] + 0xFFFFB274u;
|
|
/* 028DB73C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t2);
|
|
/* 028DB740 */ _t3 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DB740 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028DB740 */ if (_t4) goto L_028DB758; else goto L_028DB744;
|
|
L_028DB744: ; // 0x28db744
|
|
/* 028DB744 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB744 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028DB748 */ cpu->lr = cpu->r[0];
|
|
/* 028DB74C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028DB750 */ cpu->f[1] = cpu->f[0];
|
|
/* 028DB754 */ return;
|
|
L_028DB758: ; // 0x28db758
|
|
/* 028DB758 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[10], cpu->f[1]);
|
|
/* 028DB75C */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DB75C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DB75C */ if (_t7) goto L_028DB778; else goto L_028DB760;
|
|
L_028DB760: ; // 0x28db760
|
|
/* 028DB760 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB760 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DB764 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DB768 */ cpu->lr = cpu->r[0];
|
|
/* 028DB76C */ _t9 = cpu->r[12] + 0xFFFFB218u;
|
|
/* 028DB76C */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028DB770 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028DB774 */ return;
|
|
L_028DB778: ; // 0x28db778
|
|
/* 028DB778 */ cpu->f[12] = cpu->f[10] - cpu->f[11];
|
|
/* 028DB77C */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB77C */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DB780 */ cpu->f[13] = cpu->f[12] / cpu->f[13];
|
|
/* 028DB784 */ cpu->lr = cpu->r[0];
|
|
/* 028DB788 */ cpu->f[12] = cpu->f[0] - cpu->f[13];
|
|
/* 028DB78C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028DB790 */ cpu->f[1] = cpu->f[12] * cpu->f[12];
|
|
/* 028DB794 */ return;
|
|
}
|
|
|
|
// fn_028DB798 @ 0x28db798
|
|
void Gambit_fn_028DB798(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028DB798: ; // 0x28db798
|
|
/* 028DB798 */ _t0 = cpu->r[3] + 0x00000204u;
|
|
/* 028DB798 */ cpu->r[3] = rbrew_read8(cpu->mem, _t0);
|
|
/* 028DB79C */ return;
|
|
}
|
|
|
|
// fn_028DB7A0 @ 0x28db7a0
|
|
void Gambit_fn_028DB7A0(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028DB7A0: ; // 0x28db7a0
|
|
/* 028DB7A0 */ _t0 = cpu->r[3] + 0x000001F0u;
|
|
/* 028DB7A0 */ cpu->r[3] = rbrew_read8(cpu->mem, _t0);
|
|
/* 028DB7A4 */ return;
|
|
}
|
|
|
|
// fn_028DB7A8 @ 0x28db7a8
|
|
void Gambit_fn_028DB7A8(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028DB7A8: ; // 0x28db7a8
|
|
/* 028DB7A8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DB7AC */ _t0 = cpu->r[3] + 0x000001F4u;
|
|
/* 028DB7AC */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028DB7B0 */ _t1 = cpu->r[12] + 0xFFFFB278u;
|
|
/* 028DB7B0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t1);
|
|
/* 028DB7B4 */ cpu->f[1] = cpu->f[13] * cpu->f[0];
|
|
/* 028DB7B8 */ return;
|
|
}
|
|
|
|
// fn_028DB7BC @ 0x28db7bc
|
|
void Gambit_fn_028DB7BC(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028DB7BC: ; // 0x28db7bc
|
|
/* 028DB7BC */ cpu->r[12] = 0x10140000u;
|
|
/* 028DB7C0 */ _t0 = cpu->r[3] + 0x000001F8u;
|
|
/* 028DB7C0 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028DB7C4 */ _t1 = cpu->r[12] + 0xFFFFB278u;
|
|
/* 028DB7C4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t1);
|
|
/* 028DB7C8 */ cpu->f[1] = cpu->f[13] * cpu->f[0];
|
|
/* 028DB7CC */ return;
|
|
}
|
|
|
|
// fn_028DB7D0 @ 0x28db7d0
|
|
void Gambit_fn_028DB7D0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028DB7D0: ; // 0x28db7d0
|
|
/* 028DB7D0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DB7D4 */ cpu->f[13] = cpu->f[1];
|
|
/* 028DB7D8 */ _t0 = cpu->r[12] + 0xFFFFB218u;
|
|
/* 028DB7D8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028DB7DC */ cpu->r[12] = 0x10140000u;
|
|
/* 028DB7E0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[0]);
|
|
/* 028DB7E4 */ _t1 = cpu->r[12] + 0xFFFFB274u;
|
|
/* 028DB7E4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t1);
|
|
/* 028DB7E8 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB7E8 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028DB7E8 */ if (_t3) goto L_028DB7EC; else goto L_028DB7F4;
|
|
L_028DB7EC: ; // 0x28db7ec
|
|
/* 028DB7EC */ cpu->f[1] = cpu->f[0];
|
|
/* 028DB7F0 */ return;
|
|
L_028DB7F4: ; // 0x28db7f4
|
|
/* 028DB7F4 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[0]);
|
|
/* 028DB7F8 */ _t4 = cpu->r[3] + 0x000001FCu;
|
|
/* 028DB7F8 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028DB7FC */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB7FC */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DB7FC */ if (_t6) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DB7FC */ goto L_028DB800;
|
|
L_028DB800: ; // 0x28db800
|
|
/* 028DB800 */ cpu->f[12] = cpu->f[0] - cpu->f[1];
|
|
/* 028DB804 */ cpu->f[1] = -fma(cpu->f[12], cpu->f[13], -(cpu->f[0]));
|
|
/* 028DB808 */ return;
|
|
}
|
|
|
|
// fn_028DB80C @ 0x28db80c
|
|
void Gambit_fn_028DB80C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028DB80C: ; // 0x28db80c
|
|
/* 028DB80C */ cpu->r[12] = 0x10140000u;
|
|
/* 028DB810 */ cpu->f[0] = cpu->f[1];
|
|
/* 028DB814 */ _t0 = cpu->r[12] + 0xFFFFB218u;
|
|
/* 028DB814 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028DB818 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[1]);
|
|
/* 028DB81C */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB81C */ _t2 = _t1 & 0x00000001u;
|
|
/* 028DB81C */ if (_t2) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DB81C */ goto L_028DB820;
|
|
L_028DB820: ; // 0x28db820
|
|
/* 028DB820 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DB824 */ _t3 = cpu->r[12] + 0xFFFFB274u;
|
|
/* 028DB824 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t3);
|
|
/* 028DB828 */ _t4 = cpu->r[3] + 0x00000200u;
|
|
/* 028DB828 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028DB82C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[13]);
|
|
/* 028DB830 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB830 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DB830 */ if (_t6) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DB830 */ goto L_028DB834;
|
|
L_028DB834: ; // 0x28db834
|
|
/* 028DB834 */ cpu->f[1] = cpu->f[1] * cpu->f[0];
|
|
/* 028DB838 */ return;
|
|
}
|
|
|
|
// fn_028DB83C @ 0x28db83c
|
|
void Gambit_fn_028DB83C(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028DB83C: ; // 0x28db83c
|
|
/* 028DB83C */ _t0 = cpu->r[3] + 0x00000205u;
|
|
/* 028DB83C */ cpu->r[3] = rbrew_read8(cpu->mem, _t0);
|
|
/* 028DB840 */ return;
|
|
}
|
|
|
|
// fn_028DB844 @ 0x28db844
|
|
void Gambit_fn_028DB844(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028DB844: ; // 0x28db844
|
|
/* 028DB844 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DB848 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB848 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DB848 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DB848 */ goto L_028DB84C;
|
|
L_028DB84C: ; // 0x28db84c
|
|
/* 028DB84C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DB84C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DB850 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB850 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DB850 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DB850 */ goto L_028DB854;
|
|
L_028DB854: ; // 0x28db854
|
|
/* 028DB854 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028DB858 @ 0x28db858
|
|
void Gambit_fn_028DB858(CPUState* cpu) {
|
|
L_028DB858: ; // 0x28db858
|
|
/* 028DB858 */ return;
|
|
}
|
|
|
|
// fn_028DB85C @ 0x28db85c
|
|
void Gambit_fn_028DB85C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28;
|
|
|
|
L_028DB85C: ; // 0x28db85c
|
|
/* 028DB85C */ cpu->r[0] = cpu->lr;
|
|
/* 028DB860 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DB860 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DB860 */ cpu->r[1] = _t0;
|
|
/* 028DB864 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB864 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028DB868 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB868 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DB86C */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028DB86C */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028DB870 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DB870 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DB874 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DB874 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DB878 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB878 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DB878 */ if (_t6) goto L_028DB87C; else goto L_028DB88C;
|
|
L_028DB87C: ; // 0x28db87c
|
|
/* 028DB87C */ cpu->r[3] = 0x0000007Cu;
|
|
/* 028DB880 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DB884 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DB884 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DB888 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB888 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DB888 */ if (_t8) goto L_028DB900; else goto L_028DB88C;
|
|
L_028DB88C: ; // 0x28db88c
|
|
/* 028DB88C */ cpu->r[12] = 0x10140000u;
|
|
/* 028DB890 */ cpu->r[12] = cpu->r[12] + 0xFFFFB34Cu;
|
|
/* 028DB894 */ cpu->r[30] = 0x00000000u;
|
|
/* 028DB898 */ _t9 = cpu->r[31] + 0x00000000u;
|
|
/* 028DB898 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 028DB89C */ cpu->r[29] = cpu->r[31] + 0x00000018u;
|
|
/* 028DB89C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DB8A0 */ _t10 = cpu->r[31] + 0x00000014u;
|
|
/* 028DB8A0 */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 028DB8A4 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB8A4 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028DB8A4 */ if (_t12) goto L_028DB8A8; else goto L_028DB8B8;
|
|
L_028DB8A8: ; // 0x28db8a8
|
|
/* 028DB8A8 */ cpu->r[3] = 0x00000010u;
|
|
/* 028DB8AC */ Gambit_fn_02801A78(cpu);
|
|
/* 028DB8B0 */ cpu->r[29] = cpu->r[3];
|
|
/* 028DB8B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DB8B4 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB8B4 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028DB8B4 */ if (_t14) goto L_028DB8E4; else goto L_028DB8B8;
|
|
L_028DB8B8: ; // 0x28db8b8
|
|
/* 028DB8B8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DB8B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DB8BC */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB8BC */ _t16 = _t15 & 0x00000001u;
|
|
/* 028DB8BC */ if (_t16) goto L_028DB8C0; else goto L_028DB8D0;
|
|
L_028DB8C0: ; // 0x28db8c0
|
|
/* 028DB8C0 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028DB8C4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DB8C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DB8CC */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB8CC */ _t18 = _t17 & 0x00000001u;
|
|
/* 028DB8CC */ if (_t18) goto L_028DB8DC; else goto L_028DB8D0;
|
|
L_028DB8D0: ; // 0x28db8d0
|
|
/* 028DB8D0 */ _t19 = cpu->r[3] + 0x00000004u;
|
|
/* 028DB8D0 */ rbrew_write32(cpu->mem, _t19, cpu->r[3]);
|
|
/* 028DB8D4 */ _t20 = cpu->r[3] + 0x00000008u;
|
|
/* 028DB8D4 */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
/* 028DB8D8 */ _t21 = cpu->r[3] + 0x00000000u;
|
|
/* 028DB8D8 */ rbrew_write32(cpu->mem, _t21, cpu->r[3]);
|
|
L_028DB8DC: ; // 0x28db8dc
|
|
/* 028DB8DC */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028DB8E0 */ _t22 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028DB8E0 */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
L_028DB8E4: ; // 0x28db8e4
|
|
/* 028DB8E4 */ cpu->r[3] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028DB8E8 */ _t23 = cpu->r[31] + 0x00000028u;
|
|
/* 028DB8E8 */ rbrew_write32(cpu->mem, _t23, cpu->r[30]);
|
|
/* 028DB8EC */ Gambit_fn_028DC420(cpu);
|
|
/* 028DB8F0 */ cpu->r[3] = cpu->r[31] + 0x00000030u;
|
|
/* 028DB8F4 */ Gambit_fn_028ED450(cpu);
|
|
/* 028DB8F8 */ cpu->r[0] = 0x0000000Cu;
|
|
/* 028DB8FC */ _t24 = cpu->r[31] + 0x00000024u;
|
|
/* 028DB8FC */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
L_028DB900: ; // 0x28db900
|
|
/* 028DB900 */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB900 */ cpu->r[29] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028DB904 */ _t26 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DB904 */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028DB908 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DB90C */ _t27 = cpu->r[1] + 0x00000010u;
|
|
/* 028DB90C */ cpu->r[30] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028DB910 */ cpu->lr = cpu->r[0];
|
|
/* 028DB914 */ _t28 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB914 */ cpu->r[31] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028DB918 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DB91C */ return;
|
|
}
|
|
|
|
// fn_028DB860 @ 0x28db860
|
|
void Gambit_fn_028DB860(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28;
|
|
|
|
L_028DB860: ; // 0x28db860
|
|
/* 028DB860 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DB860 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DB860 */ cpu->r[1] = _t0;
|
|
/* 028DB864 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB864 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028DB868 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB868 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DB86C */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028DB86C */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028DB870 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DB870 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DB874 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DB874 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DB878 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB878 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DB878 */ if (_t6) goto L_028DB87C; else goto L_028DB88C;
|
|
L_028DB87C: ; // 0x28db87c
|
|
/* 028DB87C */ cpu->r[3] = 0x0000007Cu;
|
|
/* 028DB880 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DB884 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DB884 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DB888 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB888 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DB888 */ if (_t8) goto L_028DB900; else goto L_028DB88C;
|
|
L_028DB88C: ; // 0x28db88c
|
|
/* 028DB88C */ cpu->r[12] = 0x10140000u;
|
|
/* 028DB890 */ cpu->r[12] = cpu->r[12] + 0xFFFFB34Cu;
|
|
/* 028DB894 */ cpu->r[30] = 0x00000000u;
|
|
/* 028DB898 */ _t9 = cpu->r[31] + 0x00000000u;
|
|
/* 028DB898 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 028DB89C */ cpu->r[29] = cpu->r[31] + 0x00000018u;
|
|
/* 028DB89C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DB8A0 */ _t10 = cpu->r[31] + 0x00000014u;
|
|
/* 028DB8A0 */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 028DB8A4 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB8A4 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028DB8A4 */ if (_t12) goto L_028DB8A8; else goto L_028DB8B8;
|
|
L_028DB8A8: ; // 0x28db8a8
|
|
/* 028DB8A8 */ cpu->r[3] = 0x00000010u;
|
|
/* 028DB8AC */ Gambit_fn_02801A78(cpu);
|
|
/* 028DB8B0 */ cpu->r[29] = cpu->r[3];
|
|
/* 028DB8B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DB8B4 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB8B4 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028DB8B4 */ if (_t14) goto L_028DB8E4; else goto L_028DB8B8;
|
|
L_028DB8B8: ; // 0x28db8b8
|
|
/* 028DB8B8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DB8B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DB8BC */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB8BC */ _t16 = _t15 & 0x00000001u;
|
|
/* 028DB8BC */ if (_t16) goto L_028DB8C0; else goto L_028DB8D0;
|
|
L_028DB8C0: ; // 0x28db8c0
|
|
/* 028DB8C0 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028DB8C4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DB8C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DB8CC */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB8CC */ _t18 = _t17 & 0x00000001u;
|
|
/* 028DB8CC */ if (_t18) goto L_028DB8DC; else goto L_028DB8D0;
|
|
L_028DB8D0: ; // 0x28db8d0
|
|
/* 028DB8D0 */ _t19 = cpu->r[3] + 0x00000004u;
|
|
/* 028DB8D0 */ rbrew_write32(cpu->mem, _t19, cpu->r[3]);
|
|
/* 028DB8D4 */ _t20 = cpu->r[3] + 0x00000008u;
|
|
/* 028DB8D4 */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
/* 028DB8D8 */ _t21 = cpu->r[3] + 0x00000000u;
|
|
/* 028DB8D8 */ rbrew_write32(cpu->mem, _t21, cpu->r[3]);
|
|
L_028DB8DC: ; // 0x28db8dc
|
|
/* 028DB8DC */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028DB8E0 */ _t22 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028DB8E0 */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
L_028DB8E4: ; // 0x28db8e4
|
|
/* 028DB8E4 */ cpu->r[3] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028DB8E8 */ _t23 = cpu->r[31] + 0x00000028u;
|
|
/* 028DB8E8 */ rbrew_write32(cpu->mem, _t23, cpu->r[30]);
|
|
/* 028DB8EC */ Gambit_fn_028DC420(cpu);
|
|
/* 028DB8F0 */ cpu->r[3] = cpu->r[31] + 0x00000030u;
|
|
/* 028DB8F4 */ Gambit_fn_028ED450(cpu);
|
|
/* 028DB8F8 */ cpu->r[0] = 0x0000000Cu;
|
|
/* 028DB8FC */ _t24 = cpu->r[31] + 0x00000024u;
|
|
/* 028DB8FC */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
L_028DB900: ; // 0x28db900
|
|
/* 028DB900 */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB900 */ cpu->r[29] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028DB904 */ _t26 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DB904 */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028DB908 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DB90C */ _t27 = cpu->r[1] + 0x00000010u;
|
|
/* 028DB90C */ cpu->r[30] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028DB910 */ cpu->lr = cpu->r[0];
|
|
/* 028DB914 */ _t28 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB914 */ cpu->r[31] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028DB918 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DB91C */ return;
|
|
}
|
|
|
|
// fn_028DB920 @ 0x28db920
|
|
void Gambit_fn_028DB920(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20;
|
|
|
|
L_028DB920: ; // 0x28db920
|
|
/* 028DB920 */ cpu->r[0] = cpu->lr;
|
|
/* 028DB924 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DB924 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DB924 */ cpu->r[1] = _t0;
|
|
/* 028DB928 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028DB928 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DB92C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB92C */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028DB930 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB930 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DB934 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB934 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028DB938 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DB938 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DB93C */ cpu->r[29] = 0x101D0000u;
|
|
/* 028DB940 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DB944 */ _t6 = cpu->r[29] + 0xFFFF9ACCu;
|
|
/* 028DB944 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DB944 */ cpu->r[29] = _t6;
|
|
/* 028DB948 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DB94C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB94C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DB94C */ if (_t8) goto L_028DB950; else goto L_028DB9A0;
|
|
L_028DB950: ; // 0x28db950
|
|
/* 028DB950 */ cpu->r[4] = cpu->r[30];
|
|
/* 028DB954 */ cpu->r[3] = 0x0000007Cu;
|
|
/* 028DB958 */ cpu->r[5] = 0x00000004u;
|
|
/* 028DB95C */ Gambit_fn_02801ADC(cpu);
|
|
/* 028DB960 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DB964 */ cpu->r[28] = cpu->r[31] + 0x00000004u;
|
|
/* 028DB964 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028DB968 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB968 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028DB968 */ if (_t10) goto L_028DB988; else goto L_028DB96C;
|
|
L_028DB96C: ; // 0x28db96c
|
|
/* 028DB96C */ cpu->r[5] = 0x00000003u;
|
|
/* 028DB970 */ cpu->r[4] = cpu->r[30];
|
|
/* 028DB974 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DB978 */ Gambit_fn_02821D88(cpu);
|
|
/* 028DB97C */ cpu->r[0] = 0x10140000u;
|
|
/* 028DB980 */ cpu->r[0] = cpu->r[0] + 0xFFFFB33Cu;
|
|
/* 028DB984 */ _t11 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028DB984 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_028DB988: ; // 0x28db988
|
|
/* 028DB988 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028DB98C */ cpu->r[3] = cpu->r[31];
|
|
/* 028DB98C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DB990 */ _t12 = cpu->r[12] + 0xFFFF9AD0u;
|
|
/* 028DB990 */ rbrew_write32(cpu->mem, _t12, cpu->r[28]);
|
|
/* 028DB994 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB994 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028DB994 */ if (_t14) goto L_028DB99C; else goto L_028DB998;
|
|
L_028DB998: ; // 0x28db998
|
|
/* 028DB998 */ Gambit_fn_028DB85C(cpu);
|
|
L_028DB99C: ; // 0x28db99c
|
|
/* 028DB99C */ _t15 = cpu->r[29] + 0x00000000u;
|
|
/* 028DB99C */ rbrew_write32(cpu->mem, _t15, cpu->r[3]);
|
|
L_028DB9A0: ; // 0x28db9a0
|
|
/* 028DB9A0 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB9A0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DB9A4 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB9A4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DB9A8 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DB9A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DB9AC */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028DB9AC */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DB9B0 */ cpu->lr = cpu->r[0];
|
|
/* 028DB9B4 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB9B4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DB9B8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DB9BC */ return;
|
|
}
|
|
|
|
// fn_028DB924 @ 0x28db924
|
|
void Gambit_fn_028DB924(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20;
|
|
|
|
L_028DB924: ; // 0x28db924
|
|
/* 028DB924 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DB924 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DB924 */ cpu->r[1] = _t0;
|
|
/* 028DB928 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028DB928 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DB92C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB92C */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028DB930 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB930 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DB934 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB934 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028DB938 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DB938 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DB93C */ cpu->r[29] = 0x101D0000u;
|
|
/* 028DB940 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DB944 */ _t6 = cpu->r[29] + 0xFFFF9ACCu;
|
|
/* 028DB944 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DB944 */ cpu->r[29] = _t6;
|
|
/* 028DB948 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DB94C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB94C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DB94C */ if (_t8) goto L_028DB950; else goto L_028DB9A0;
|
|
L_028DB950: ; // 0x28db950
|
|
/* 028DB950 */ cpu->r[4] = cpu->r[30];
|
|
/* 028DB954 */ cpu->r[3] = 0x0000007Cu;
|
|
/* 028DB958 */ cpu->r[5] = 0x00000004u;
|
|
/* 028DB95C */ Gambit_fn_02801ADC(cpu);
|
|
/* 028DB960 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DB964 */ cpu->r[28] = cpu->r[31] + 0x00000004u;
|
|
/* 028DB964 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028DB968 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB968 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028DB968 */ if (_t10) goto L_028DB988; else goto L_028DB96C;
|
|
L_028DB96C: ; // 0x28db96c
|
|
/* 028DB96C */ cpu->r[5] = 0x00000003u;
|
|
/* 028DB970 */ cpu->r[4] = cpu->r[30];
|
|
/* 028DB974 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DB978 */ Gambit_fn_02821D88(cpu);
|
|
/* 028DB97C */ cpu->r[0] = 0x10140000u;
|
|
/* 028DB980 */ cpu->r[0] = cpu->r[0] + 0xFFFFB33Cu;
|
|
/* 028DB984 */ _t11 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028DB984 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_028DB988: ; // 0x28db988
|
|
/* 028DB988 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028DB98C */ cpu->r[3] = cpu->r[31];
|
|
/* 028DB98C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DB990 */ _t12 = cpu->r[12] + 0xFFFF9AD0u;
|
|
/* 028DB990 */ rbrew_write32(cpu->mem, _t12, cpu->r[28]);
|
|
/* 028DB994 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB994 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028DB994 */ if (_t14) goto L_028DB99C; else goto L_028DB998;
|
|
L_028DB998: ; // 0x28db998
|
|
/* 028DB998 */ Gambit_fn_028DB85C(cpu);
|
|
L_028DB99C: ; // 0x28db99c
|
|
/* 028DB99C */ _t15 = cpu->r[29] + 0x00000000u;
|
|
/* 028DB99C */ rbrew_write32(cpu->mem, _t15, cpu->r[3]);
|
|
L_028DB9A0: ; // 0x28db9a0
|
|
/* 028DB9A0 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028DB9A0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DB9A4 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DB9A4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DB9A8 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DB9A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DB9AC */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028DB9AC */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DB9B0 */ cpu->lr = cpu->r[0];
|
|
/* 028DB9B4 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028DB9B4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DB9B8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DB9BC */ return;
|
|
}
|
|
|
|
// fn_028DB9C0 @ 0x28db9c0
|
|
void Gambit_fn_028DB9C0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27;
|
|
|
|
L_028DB9C0: ; // 0x28db9c0
|
|
/* 028DB9C0 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028DB9C0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DB9C0 */ cpu->r[1] = _t0;
|
|
/* 028DB9C4 */ cpu->r[0] = cpu->lr;
|
|
/* 028DB9C8 */ /* nop */
|
|
/* 028DB9CC */ cpu->r[26] = cpu->r[3];
|
|
/* 028DB9CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028DB9D0 */ cpu->r[27] = cpu->r[4];
|
|
/* 028DB9D4 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DB9D4 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028DB9D8 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB9D8 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028DB9D8 */ if (_t3) goto L_028DBA9C; else goto L_028DB9DC;
|
|
L_028DB9DC: ; // 0x28db9dc
|
|
/* 028DB9DC */ _t4 = cpu->r[26] + 0x00000020u;
|
|
/* 028DB9DC */ cpu->r[9] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028DB9E0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DB9E4 */ cpu->r[25] = cpu->r[26] + 0x00000018u;
|
|
/* 028DB9E8 */ cpu->r[0] = cpu->r[0] + 0xFFFFB34Cu;
|
|
/* 028DB9EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028DB9F0 */ _t5 = cpu->r[26] + 0x00000000u;
|
|
/* 028DB9F0 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DB9F4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DB9F4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DB9F4 */ if (_t7) goto L_028DBA74; else goto L_028DB9F8;
|
|
L_028DB9F8: ; // 0x28db9f8
|
|
/* 028DB9F8 */ _t8 = cpu->r[25] + 0x0000000Cu;
|
|
/* 028DB9F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DB9FC */ _t9 = cpu->r[25] + 0x00000004u;
|
|
/* 028DB9FC */ cpu->r[11] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DBA00 */ cpu->r[31] = cpu->r[25] - cpu->r[0];
|
|
/* 028DBA04 */ cpu->r[30] = cpu->r[11] - cpu->r[0];
|
|
/* 028DBA08 */ cpu->r[28] = cpu->r[0];
|
|
/* 028DBA0C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028DBA10 */ _t10 = cpu->r[11] + 0x00000004u;
|
|
/* 028DBA10 */ cpu->r[29] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DBA14 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBA14 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028DBA14 */ if (_t12) goto L_028DBA74; else goto L_028DBA18;
|
|
L_028DBA18: ; // 0x28dba18
|
|
/* 028DBA18 */ cpu->r[24] = 0x00000000u;
|
|
L_028DBA1C: ; // 0x28dba1c
|
|
/* 028DBA1C */ cpu->r[3] = cpu->r[30] + cpu->r[0];
|
|
/* 028DBA20 */ Gambit_fn_02801EDC(cpu);
|
|
/* 028DBA24 */ _t13 = cpu->r[25] + 0x00000008u;
|
|
/* 028DBA24 */ cpu->r[8] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DBA28 */ cpu->r[8] = cpu->r[8] + 0xFFFFFFFFu;
|
|
/* 028DBA2C */ _t14 = cpu->r[25] + 0x00000008u;
|
|
/* 028DBA2C */ rbrew_write32(cpu->mem, _t14, cpu->r[8]);
|
|
/* 028DBA30 */ _t15 = cpu->r[30] + 0x00000000u;
|
|
/* 028DBA30 */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028DBA34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DBA38 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBA38 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DBA38 */ if (_t17) goto L_028DBA54; else goto L_028DBA3C;
|
|
L_028DBA3C: ; // 0x28dba3c
|
|
/* 028DBA3C */ _t18 = cpu->r[3] + 0x00000000u;
|
|
/* 028DBA3C */ cpu->r[10] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DBA40 */ _t19 = cpu->r[10] + 0x00000014u;
|
|
/* 028DBA40 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DBA44 */ cpu->ctr = cpu->r[0];
|
|
/* 028DBA48 */ cpu->r[4] = 0x00000003u;
|
|
/* 028DBA4C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DBA50 */ _t20 = cpu->r[30] + 0x00000000u;
|
|
/* 028DBA50 */ rbrew_write32(cpu->mem, _t20, cpu->r[24]);
|
|
L_028DBA54: ; // 0x28dba54
|
|
/* 028DBA54 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DBA58 */ Gambit_fn_02801BB0(cpu);
|
|
/* 028DBA5C */ cpu->r[30] = cpu->r[29] - cpu->r[28];
|
|
/* 028DBA60 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028DBA64 */ _t21 = cpu->r[29] + 0x00000004u;
|
|
/* 028DBA64 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DBA68 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBA68 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028DBA68 */ if (_t23) goto L_028DBA74; else goto L_028DBA6C;
|
|
L_028DBA6C: ; // 0x28dba6c
|
|
/* 028DBA6C */ _t24 = cpu->r[25] + 0x0000000Cu;
|
|
/* 028DBA6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028DBA70 */ goto L_028DBA1C;
|
|
L_028DBA74: ; // 0x28dba74
|
|
/* 028DBA74 */ cpu->r[3] = cpu->r[26] + 0x00000030u;
|
|
/* 028DBA78 */ cpu->r[4] = 0x00000002u;
|
|
/* 028DBA7C */ Gambit_fn_028ED554(cpu);
|
|
/* 028DBA80 */ cpu->r[3] = cpu->r[26] + 0x0000002Cu;
|
|
/* 028DBA84 */ cpu->r[4] = 0x00000002u;
|
|
/* 028DBA88 */ Gambit_fn_028DC460(cpu);
|
|
/* 028DBA8C */ cpu->r[0] = rbrew_rlwinm(cpu->r[27], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DBA8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DBA90 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBA90 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028DBA90 */ if (_t26) goto L_028DBA9C; else goto L_028DBA94;
|
|
L_028DBA94: ; // 0x28dba94
|
|
/* 028DBA94 */ cpu->r[3] = cpu->r[26];
|
|
/* 028DBA98 */ Gambit_fn_02801BB0(cpu);
|
|
L_028DBA9C: ; // 0x28dba9c
|
|
/* 028DBA9C */ /* nop */
|
|
/* 028DBAA0 */ _t27 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DBAA0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028DBAA4 */ cpu->lr = cpu->r[0];
|
|
/* 028DBAA8 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028DBAAC */ return;
|
|
}
|
|
|
|
// fn_028DBAB0 @ 0x28dbab0
|
|
void Gambit_fn_028DBAB0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63;
|
|
|
|
L_028DBAB0: ; // 0x28dbab0
|
|
/* 028DBAB0 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 028DBAB0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DBAB0 */ cpu->r[1] = _t0;
|
|
/* 028DBAB4 */ /* nop */
|
|
/* 028DBAB8 */ cpu->r[0] = cpu->lr;
|
|
/* 028DBABC */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 028DBABC */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028DBAC0 */ _t2 = cpu->r[3] + 0x00000020u;
|
|
/* 028DBAC0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028DBAC4 */ cpu->r[28] = cpu->r[4];
|
|
/* 028DBAC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DBACC */ cpu->r[29] = cpu->r[3] + 0x00000018u;
|
|
/* 028DBAD0 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBAD0 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028DBAD0 */ if (_t4) goto L_028DBC68; else goto L_028DBAD4;
|
|
L_028DBAD4: ; // 0x28dbad4
|
|
/* 028DBAD4 */ _t5 = cpu->r[28] + 0x00000000u;
|
|
/* 028DBAD4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028DBAD8 */ cpu->r[31] = 0x10110000u;
|
|
/* 028DBADC */ _t6 = cpu->r[31] + 0x00007399u;
|
|
/* 028DBADC */ cpu->r[31] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028DBAE0 */ _t7 = cpu->r[8] + 0x00000000u;
|
|
/* 028DBAE0 */ cpu->r[9] = rbrew_read8(cpu->mem, _t7);
|
|
/* 028DBAE4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[31]);
|
|
/* 028DBAE8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBAE8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028DBAE8 */ if (_t9) goto L_028DBAEC; else goto L_028DBB04;
|
|
L_028DBAEC: ; // 0x28dbaec
|
|
/* 028DBAEC */ _t10 = cpu->r[3] + 0x00000028u;
|
|
/* 028DBAEC */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DBAF0 */ /* nop */
|
|
/* 028DBAF4 */ _t11 = cpu->r[1] + 0x00000034u;
|
|
/* 028DBAF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DBAF8 */ cpu->lr = cpu->r[0];
|
|
/* 028DBAFC */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 028DBB00 */ return;
|
|
L_028DBB04: ; // 0x28dbb04
|
|
/* 028DBB04 */ _t12 = cpu->r[28] + 0x00000004u;
|
|
/* 028DBB04 */ cpu->r[10] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DBB08 */ _t13 = cpu->r[10] + 0x00000014u;
|
|
/* 028DBB08 */ cpu->r[11] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DBB0C */ cpu->ctr = cpu->r[11];
|
|
/* 028DBB10 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DBB14 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DBB18 */ _t14 = cpu->r[28] + 0x00000004u;
|
|
/* 028DBB18 */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DBB1C */ _t15 = cpu->r[12] + 0x00000014u;
|
|
/* 028DBB1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028DBB20 */ cpu->ctr = cpu->r[0];
|
|
/* 028DBB24 */ _t16 = cpu->r[28] + 0x00000000u;
|
|
/* 028DBB24 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DBB28 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DBB2C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DBB30 */ _t17 = cpu->r[28] + 0x00000000u;
|
|
/* 028DBB30 */ cpu->r[11] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DBB34 */ _t18 = cpu->r[11] + 0x00000000u;
|
|
/* 028DBB34 */ cpu->r[5] = rbrew_read8(cpu->mem, _t18);
|
|
/* 028DBB38 */ cpu->r[4] = 0x00000000u;
|
|
/* 028DBB3C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[31]);
|
|
/* 028DBB40 */ cpu->r[0] = 0x00080000u;
|
|
/* 028DBB44 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBB44 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028DBB44 */ if (_t20) goto L_028DBB6C; else goto L_028DBB48;
|
|
L_028DBB48: ; // 0x28dbb48
|
|
/* 028DBB48 */ cpu->r[4] = cpu->r[4] + 0x00000001u;
|
|
/* 028DBB4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], cpu->r[0]);
|
|
/* 028DBB50 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 028DBB54 */ _t21 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DBB54 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028DBB54 */ if (_t22) goto L_028DBB68; else goto L_028DBB58;
|
|
L_028DBB58: ; // 0x28dbb58
|
|
/* 028DBB58 */ _t23 = cpu->r[11] + 0x00000000u;
|
|
/* 028DBB58 */ cpu->r[6] = rbrew_read8(cpu->mem, _t23);
|
|
/* 028DBB5C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[31]);
|
|
/* 028DBB60 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBB60 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028DBB60 */ if (_t25) goto L_028DBB64; else goto L_028DBB48;
|
|
L_028DBB64: ; // 0x28dbb64
|
|
/* 028DBB64 */ goto L_028DBB6C;
|
|
L_028DBB68: ; // 0x28dbb68
|
|
/* 028DBB68 */ cpu->r[4] = 0x00000000u;
|
|
L_028DBB6C: ; // 0x28dbb6c
|
|
/* 028DBB6C */ cpu->r[3] = cpu->r[30];
|
|
/* 028DBB70 */ Gambit_fn_02801E30(cpu);
|
|
/* 028DBB74 */ _t26 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028DBB74 */ cpu->r[30] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028DBB78 */ _t27 = cpu->r[29] + 0x00000004u;
|
|
/* 028DBB78 */ cpu->r[8] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028DBB7C */ cpu->r[29] = cpu->r[29] - cpu->r[30];
|
|
/* 028DBB80 */ cpu->r[24] = cpu->r[8] - cpu->r[30];
|
|
/* 028DBB84 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[29]);
|
|
/* 028DBB88 */ cpu->r[25] = cpu->r[3];
|
|
/* 028DBB8C */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBB8C */ _t29 = _t28 & 0x00000001u;
|
|
/* 028DBB8C */ if (_t29) goto L_028DBC68; else goto L_028DBB90;
|
|
L_028DBB90: ; // 0x28dbb90
|
|
/* 028DBB90 */ cpu->r[23] = 0x00080000u;
|
|
/* 028DBB94 */ cpu->r[23] = cpu->r[23] + 0x00000001u;
|
|
L_028DBB98: ; // 0x28dbb98
|
|
/* 028DBB98 */ _t30 = cpu->r[24] + 0x00000008u;
|
|
/* 028DBB98 */ cpu->r[9] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028DBB9C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[25]);
|
|
/* 028DBBA0 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBBA0 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028DBBA0 */ if (_t32) goto L_028DBBA4; else goto L_028DBC54;
|
|
L_028DBBA4: ; // 0x28dbba4
|
|
/* 028DBBA4 */ _t33 = cpu->r[24] + 0x00000004u;
|
|
/* 028DBBA4 */ cpu->r[26] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028DBBA8 */ _t34 = cpu->r[26] + 0x00000004u;
|
|
/* 028DBBA8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028DBBAC */ _t35 = cpu->r[10] + 0x00000014u;
|
|
/* 028DBBAC */ cpu->r[12] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028DBBB0 */ cpu->ctr = cpu->r[12];
|
|
/* 028DBBB4 */ cpu->r[3] = cpu->r[26];
|
|
/* 028DBBB8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DBBBC */ _t36 = cpu->r[26] + 0x00000004u;
|
|
/* 028DBBBC */ cpu->r[4] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028DBBC0 */ _t37 = cpu->r[4] + 0x00000014u;
|
|
/* 028DBBC0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028DBBC4 */ cpu->ctr = cpu->r[0];
|
|
/* 028DBBC8 */ cpu->r[3] = cpu->r[26];
|
|
/* 028DBBCC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DBBD0 */ _t38 = cpu->r[28] + 0x00000004u;
|
|
/* 028DBBD0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028DBBD4 */ _t39 = cpu->r[6] + 0x00000014u;
|
|
/* 028DBBD4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028DBBD8 */ cpu->ctr = cpu->r[7];
|
|
/* 028DBBDC */ _t40 = cpu->r[26] + 0x00000000u;
|
|
/* 028DBBDC */ cpu->r[27] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028DBBE0 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DBBE4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DBBE8 */ _t41 = cpu->r[28] + 0x00000000u;
|
|
/* 028DBBE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028DBBEC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[0]);
|
|
/* 028DBBF0 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBBF0 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028DBBF0 */ if (_t43) goto L_028DBC3C; else goto L_028DBBF4;
|
|
L_028DBBF4: ; // 0x28dbbf4
|
|
/* 028DBBF4 */ _t44 = cpu->r[28] + 0x00000000u;
|
|
/* 028DBBF4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028DBBF8 */ cpu->ctr = cpu->r[23];
|
|
/* 028DBBFC */ _t45 = cpu->r[26] + 0x00000000u;
|
|
/* 028DBBFC */ cpu->r[4] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028DBC00 */ cpu->r[7] = cpu->r[7] + 0xFFFFFFFFu;
|
|
L_028DBC04: ; // 0x28dbc04
|
|
/* 028DBC04 */ _t46 = cpu->r[4] + 0x00000000u;
|
|
/* 028DBC04 */ cpu->r[0] = rbrew_read8(cpu->mem, _t46);
|
|
/* 028DBC08 */ _t47 = cpu->r[7] + 0x00000001u;
|
|
/* 028DBC08 */ cpu->r[9] = rbrew_read8(cpu->mem, _t47);
|
|
/* 028DBC08 */ cpu->r[7] = _t47;
|
|
/* 028DBC0C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[9]);
|
|
/* 028DBC10 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBC10 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028DBC10 */ if (_t49) goto L_028DBC14; else goto L_028DBC54;
|
|
L_028DBC14: ; // 0x28dbc14
|
|
/* 028DBC14 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[31]);
|
|
/* 028DBC18 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBC18 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028DBC18 */ if (_t51) goto L_028DBC3C; else goto L_028DBC1C;
|
|
L_028DBC1C: ; // 0x28dbc1c
|
|
/* 028DBC1C */ cpu->r[4] = cpu->r[4] + 0x00000001u;
|
|
/* 028DBC20 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028DBC20 */ _t52 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028DBC20 */ _t53 = _t52 >> (0x00000002u & 31u);
|
|
/* 028DBC20 */ _t54 = _t53 & 0x00000001u;
|
|
/* 028DBC20 */ if (_t54) goto L_028DBC04; else goto L_028DBC24;
|
|
L_028DBC24: ; // 0x28dbc24
|
|
/* 028DBC24 */ cpu->r[12] = cpu->r[24] + cpu->r[30];
|
|
/* 028DBC28 */ _t55 = cpu->r[12] + 0x00000004u;
|
|
/* 028DBC28 */ cpu->r[10] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028DBC2C */ cpu->r[24] = cpu->r[10] - cpu->r[30];
|
|
/* 028DBC30 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[29]);
|
|
/* 028DBC34 */ _t56 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBC34 */ _t57 = _t56 & 0x00000001u;
|
|
/* 028DBC34 */ if (_t57) goto L_028DBC38; else goto L_028DBB98;
|
|
L_028DBC38: ; // 0x28dbc38
|
|
/* 028DBC38 */ goto L_028DBC68;
|
|
L_028DBC3C: ; // 0x28dbc3c
|
|
/* 028DBC3C */ _t58 = cpu->r[24] + 0x00000000u;
|
|
/* 028DBC3C */ cpu->r[3] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028DBC40 */ /* nop */
|
|
/* 028DBC44 */ _t59 = cpu->r[1] + 0x00000034u;
|
|
/* 028DBC44 */ cpu->r[0] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028DBC48 */ cpu->lr = cpu->r[0];
|
|
/* 028DBC4C */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 028DBC50 */ return;
|
|
L_028DBC54: ; // 0x28dbc54
|
|
/* 028DBC54 */ cpu->r[12] = cpu->r[24] + cpu->r[30];
|
|
/* 028DBC58 */ _t60 = cpu->r[12] + 0x00000004u;
|
|
/* 028DBC58 */ cpu->r[10] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028DBC5C */ cpu->r[24] = cpu->r[10] - cpu->r[30];
|
|
/* 028DBC60 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[29]);
|
|
/* 028DBC64 */ _t61 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBC64 */ _t62 = _t61 & 0x00000001u;
|
|
/* 028DBC64 */ if (_t62) goto L_028DBC68; else goto L_028DBB98;
|
|
L_028DBC68: ; // 0x28dbc68
|
|
/* 028DBC68 */ /* nop */
|
|
/* 028DBC6C */ _t63 = cpu->r[1] + 0x00000034u;
|
|
/* 028DBC6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028DBC70 */ cpu->lr = cpu->r[0];
|
|
/* 028DBC74 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 028DBC78 */ cpu->r[3] = 0x00000000u;
|
|
/* 028DBC7C */ return;
|
|
}
|
|
|
|
// fn_028DBC80 @ 0x28dbc80
|
|
void Gambit_fn_028DBC80(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112, _t113, _t114, _t115, _t116, _t117, _t118, _t119, _t120, _t121, _t122, _t123, _t124, _t125, _t126, _t127, _t128, _t129, _t130, _t131, _t132, _t133, _t134, _t135;
|
|
|
|
L_028DBC80: ; // 0x28dbc80
|
|
/* 028DBC80 */ _t0 = cpu->r[1] + 0xFFFFFFC0u;
|
|
/* 028DBC80 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DBC80 */ cpu->r[1] = _t0;
|
|
/* 028DBC84 */ /* nop */
|
|
/* 028DBC88 */ cpu->r[0] = cpu->lr;
|
|
/* 028DBC8C */ _t1 = cpu->r[1] + 0x00000044u;
|
|
/* 028DBC8C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028DBC90 */ cpu->r[27] = cpu->r[4];
|
|
/* 028DBC94 */ _t2 = cpu->r[27] + 0x00000000u;
|
|
/* 028DBC94 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028DBC98 */ cpu->r[26] = cpu->r[3];
|
|
/* 028DBC9C */ cpu->r[30] = cpu->r[5];
|
|
/* 028DBCA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DBCA4 */ cpu->r[23] = 0x00000000u;
|
|
/* 028DBCA8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBCA8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028DBCA8 */ if (_t4) goto L_028DBFB4; else goto L_028DBCAC;
|
|
L_028DBCAC: ; // 0x28dbcac
|
|
/* 028DBCAC */ cpu->r[28] = 0x10140000u;
|
|
/* 028DBCB0 */ cpu->r[3] = cpu->r[26];
|
|
/* 028DBCB4 */ _t5 = cpu->r[1] + 0x00000010u;
|
|
/* 028DBCB4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DBCB8 */ cpu->r[28] = cpu->r[28] + 0xFFFFB294u;
|
|
/* 028DBCBC */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028DBCC0 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028DBCC0 */ rbrew_write32(cpu->mem, _t6, cpu->r[28]);
|
|
/* 028DBCC4 */ Gambit_fn_028DBAB0(cpu);
|
|
/* 028DBCC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DBCCC */ cpu->r[31] = cpu->r[3];
|
|
/* 028DBCD0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBCD0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DBCD0 */ if (_t8) goto L_028DBCF8; else goto L_028DBCD4;
|
|
L_028DBCD4: ; // 0x28dbcd4
|
|
/* 028DBCD4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DBCD8 */ cpu->r[4] = cpu->r[27];
|
|
/* 028DBCDC */ Gambit_fn_028DB4DC(cpu);
|
|
/* 028DBCE0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DBCE4 */ /* nop */
|
|
/* 028DBCE8 */ _t9 = cpu->r[1] + 0x00000044u;
|
|
/* 028DBCE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DBCEC */ cpu->lr = cpu->r[0];
|
|
/* 028DBCF0 */ cpu->r[1] = cpu->r[1] + 0x00000040u;
|
|
/* 028DBCF4 */ return;
|
|
L_028DBCF8: ; // 0x28dbcf8
|
|
/* 028DBCF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028DBCFC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBCFC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DBCFC */ if (_t11) goto L_028DBD00; else goto L_028DBD04;
|
|
L_028DBD00: ; // 0x28dbd00
|
|
/* 028DBD00 */ _t12 = cpu->r[26] + 0x00000014u;
|
|
/* 028DBD00 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
L_028DBD04: ; // 0x28dbd04
|
|
/* 028DBD04 */ cpu->r[4] = cpu->r[30];
|
|
/* 028DBD08 */ cpu->r[3] = 0x00000014u;
|
|
/* 028DBD0C */ cpu->r[5] = 0x00000004u;
|
|
/* 028DBD10 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028DBD14 */ cpu->r[25] = cpu->r[3];
|
|
/* 028DBD14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], 0x00000000u);
|
|
/* 028DBD18 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBD18 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028DBD18 */ if (_t14) goto L_028DBFB4; else goto L_028DBD1C;
|
|
L_028DBD1C: ; // 0x28dbd1c
|
|
/* 028DBD1C */ _t15 = cpu->r[25] + 0x00000004u;
|
|
/* 028DBD1C */ rbrew_write32(cpu->mem, _t15, cpu->r[23]);
|
|
/* 028DBD20 */ cpu->r[5] = 0x00000004u;
|
|
/* 028DBD24 */ _t16 = cpu->r[25] + 0x00000000u;
|
|
/* 028DBD24 */ rbrew_write32(cpu->mem, _t16, cpu->r[23]);
|
|
/* 028DBD28 */ cpu->r[4] = cpu->r[30];
|
|
/* 028DBD2C */ _t17 = cpu->r[25] + 0x00000008u;
|
|
/* 028DBD2C */ rbrew_write32(cpu->mem, _t17, cpu->r[23]);
|
|
/* 028DBD30 */ cpu->r[3] = 0x00000208u;
|
|
/* 028DBD34 */ _t18 = cpu->r[25] + 0x00000010u;
|
|
/* 028DBD34 */ rbrew_write32(cpu->mem, _t18, cpu->r[23]);
|
|
/* 028DBD38 */ _t19 = cpu->r[25] + 0x0000000Cu;
|
|
/* 028DBD38 */ rbrew_write32(cpu->mem, _t19, cpu->r[23]);
|
|
/* 028DBD3C */ Gambit_fn_02801AC8(cpu);
|
|
/* 028DBD40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DBD44 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBD44 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028DBD44 */ if (_t21) goto L_028DBD4C; else goto L_028DBD48;
|
|
L_028DBD48: ; // 0x28dbd48
|
|
/* 028DBD48 */ Gambit_fn_028DB174(cpu);
|
|
L_028DBD4C: ; // 0x28dbd4c
|
|
/* 028DBD4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DBD50 */ _t22 = cpu->r[25] + 0x00000000u;
|
|
/* 028DBD50 */ rbrew_write32(cpu->mem, _t22, cpu->r[3]);
|
|
/* 028DBD54 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBD54 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028DBD54 */ if (_t24) goto L_028DBFB4; else goto L_028DBD58;
|
|
L_028DBD58: ; // 0x28dbd58
|
|
/* 028DBD58 */ cpu->r[5] = 0x00000004u;
|
|
/* 028DBD5C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028DBD60 */ cpu->r[4] = cpu->r[30];
|
|
/* 028DBD64 */ cpu->r[12] = 0x00000000u;
|
|
/* 028DBD68 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028DBD6C */ cpu->r[29] = cpu->r[3];
|
|
/* 028DBD6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DBD70 */ cpu->r[24] = 0x10110000u;
|
|
/* 028DBD74 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBD74 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028DBD74 */ if (_t26) goto L_028DBFAC; else goto L_028DBD78;
|
|
L_028DBD78: ; // 0x28dbd78
|
|
/* 028DBD78 */ _t27 = cpu->r[27] + 0x00000000u;
|
|
/* 028DBD78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028DBD7C */ cpu->r[12] = 0x00000001u;
|
|
/* 028DBD80 */ _t28 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DBD80 */ rbrew_write32(cpu->mem, _t28, cpu->r[28]);
|
|
/* 028DBD84 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028DBD88 */ _t29 = cpu->r[1] + 0x00000008u;
|
|
/* 028DBD88 */ rbrew_write32(cpu->mem, _t29, cpu->r[0]);
|
|
/* 028DBD8C */ Gambit_fn_028DC388(cpu);
|
|
/* 028DBD90 */ _t30 = cpu->r[1] + 0x00000008u;
|
|
/* 028DBD90 */ cpu->r[11] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028DBD94 */ _t31 = cpu->r[24] + 0x00007399u;
|
|
/* 028DBD94 */ cpu->r[28] = rbrew_read8(cpu->mem, _t31);
|
|
/* 028DBD98 */ _t32 = cpu->r[11] + 0x00000000u;
|
|
/* 028DBD98 */ cpu->r[5] = rbrew_read8(cpu->mem, _t32);
|
|
/* 028DBD9C */ cpu->r[12] = 0x00000000u;
|
|
/* 028DBDA0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[28]);
|
|
/* 028DBDA4 */ cpu->r[7] = 0x00080000u;
|
|
/* 028DBDA8 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBDA8 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028DBDA8 */ if (_t34) goto L_028DBDEC; else goto L_028DBDAC;
|
|
L_028DBDAC: ; // 0x28dbdac
|
|
/* 028DBDAC */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028DBDB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], cpu->r[7]);
|
|
/* 028DBDB4 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 028DBDB8 */ _t35 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DBDB8 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028DBDB8 */ if (_t36) goto L_028DBDE8; else goto L_028DBDBC;
|
|
L_028DBDBC: ; // 0x28dbdbc
|
|
/* 028DBDBC */ _t37 = cpu->r[11] + 0x00000000u;
|
|
/* 028DBDBC */ cpu->r[6] = rbrew_read8(cpu->mem, _t37);
|
|
/* 028DBDC0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[28]);
|
|
/* 028DBDC4 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBDC4 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028DBDC4 */ if (_t39) goto L_028DBDC8; else goto L_028DBDAC;
|
|
L_028DBDC8: ; // 0x28dbdc8
|
|
/* 028DBDC8 */ cpu->r[3] = cpu->r[12] + 0x00000001u;
|
|
/* 028DBDCC */ cpu->r[4] = cpu->r[30];
|
|
/* 028DBDD0 */ cpu->r[5] = 0x00000004u;
|
|
/* 028DBDD4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DBDD8 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028DBDDC */ cpu->r[30] = cpu->r[3];
|
|
/* 028DBDDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028DBDE0 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBDE0 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028DBDE0 */ if (_t41) goto L_028DBDE4; else goto L_028DBE08;
|
|
L_028DBDE4: ; // 0x28dbde4
|
|
/* 028DBDE4 */ goto L_028DBE14;
|
|
L_028DBDE8: ; // 0x28dbde8
|
|
/* 028DBDE8 */ cpu->r[12] = 0x00000000u;
|
|
L_028DBDEC: ; // 0x28dbdec
|
|
/* 028DBDEC */ cpu->r[3] = cpu->r[12] + 0x00000001u;
|
|
/* 028DBDF0 */ cpu->r[4] = cpu->r[30];
|
|
/* 028DBDF4 */ cpu->r[5] = 0x00000004u;
|
|
/* 028DBDF8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DBDFC */ Gambit_fn_02801ADC(cpu);
|
|
/* 028DBE00 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DBE00 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028DBE04 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBE04 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028DBE04 */ if (_t43) goto L_028DBE14; else goto L_028DBE08;
|
|
L_028DBE08: ; // 0x28dbe08
|
|
/* 028DBE08 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DBE0C */ cpu->r[4] = cpu->r[31];
|
|
/* 028DBE10 */ Gambit_fn_02C89380(cpu);
|
|
L_028DBE14: ; // 0x28dbe14
|
|
/* 028DBE14 */ _t44 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DBE14 */ cpu->r[7] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028DBE18 */ _t45 = cpu->r[7] + 0x00000014u;
|
|
/* 028DBE18 */ cpu->r[8] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028DBE1C */ cpu->ctr = cpu->r[8];
|
|
/* 028DBE20 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028DBE24 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DBE28 */ _t46 = cpu->r[1] + 0x00000008u;
|
|
/* 028DBE28 */ cpu->r[8] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028DBE2C */ _t47 = cpu->r[8] + 0x00000000u;
|
|
/* 028DBE2C */ cpu->r[9] = rbrew_read8(cpu->mem, _t47);
|
|
/* 028DBE30 */ cpu->r[31] = 0x00000000u;
|
|
/* 028DBE34 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[28]);
|
|
/* 028DBE38 */ cpu->r[0] = 0x00080000u;
|
|
/* 028DBE3C */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBE3C */ _t49 = _t48 & 0x00000001u;
|
|
/* 028DBE3C */ if (_t49) goto L_028DBE6C; else goto L_028DBE40;
|
|
L_028DBE40: ; // 0x28dbe40
|
|
/* 028DBE40 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028DBE44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[0]);
|
|
/* 028DBE48 */ cpu->r[8] = cpu->r[8] + 0x00000001u;
|
|
/* 028DBE4C */ _t50 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DBE4C */ _t51 = _t50 & 0x00000001u;
|
|
/* 028DBE4C */ if (_t51) goto L_028DBE68; else goto L_028DBE50;
|
|
L_028DBE50: ; // 0x28dbe50
|
|
/* 028DBE50 */ _t52 = cpu->r[8] + 0x00000000u;
|
|
/* 028DBE50 */ cpu->r[10] = rbrew_read8(cpu->mem, _t52);
|
|
/* 028DBE54 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[28]);
|
|
/* 028DBE58 */ _t53 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBE58 */ _t54 = _t53 & 0x00000001u;
|
|
/* 028DBE58 */ if (_t54) goto L_028DBE5C; else goto L_028DBE40;
|
|
L_028DBE5C: ; // 0x28dbe5c
|
|
/* 028DBE5C */ cpu->r[3] = cpu->r[29];
|
|
/* 028DBE5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DBE60 */ _t55 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBE60 */ _t56 = _t55 & 0x00000001u;
|
|
/* 028DBE60 */ if (_t56) goto L_028DBE74; else goto L_028DBE64;
|
|
L_028DBE64: ; // 0x28dbe64
|
|
/* 028DBE64 */ goto L_028DBE84;
|
|
L_028DBE68: ; // 0x28dbe68
|
|
/* 028DBE68 */ cpu->r[31] = 0x00000000u;
|
|
L_028DBE6C: ; // 0x28dbe6c
|
|
/* 028DBE6C */ cpu->r[3] = cpu->r[29];
|
|
/* 028DBE6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DBE70 */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBE70 */ _t58 = _t57 & 0x00000001u;
|
|
/* 028DBE70 */ if (_t58) goto L_028DBE74; else goto L_028DBE84;
|
|
L_028DBE74: ; // 0x28dbe74
|
|
/* 028DBE74 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028DBE78 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DBE7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DBE80 */ _t59 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBE80 */ _t60 = _t59 & 0x00000001u;
|
|
/* 028DBE80 */ if (_t60) goto L_028DBEF4; else goto L_028DBE84;
|
|
L_028DBE84: ; // 0x28dbe84
|
|
/* 028DBE84 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DBE88 */ _t61 = cpu->r[3] + 0x00000000u;
|
|
/* 028DBE88 */ rbrew_write32(cpu->mem, _t61, cpu->r[30]);
|
|
/* 028DBE8C */ cpu->r[0] = cpu->r[0] + 0xFFFFB2ACu;
|
|
/* 028DBE90 */ cpu->r[9] = cpu->r[31] + 0x00000001u;
|
|
/* 028DBE90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028DBE94 */ _t62 = cpu->r[3] + 0x00000004u;
|
|
/* 028DBE94 */ rbrew_write32(cpu->mem, _t62, cpu->r[0]);
|
|
/* 028DBE98 */ _t63 = cpu->r[3] + 0x00000008u;
|
|
/* 028DBE98 */ rbrew_write32(cpu->mem, _t63, cpu->r[9]);
|
|
/* 028DBE9C */ _t64 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DBE9C */ _t65 = _t64 & 0x00000001u;
|
|
/* 028DBE9C */ if (_t65) goto L_028DBEE8; else goto L_028DBEA0;
|
|
L_028DBEA0: ; // 0x28dbea0
|
|
/* 028DBEA0 */ cpu->r[5] = 0x10140000u;
|
|
/* 028DBEA4 */ _t66 = cpu->r[3] + 0x00000008u;
|
|
/* 028DBEA4 */ rbrew_write32(cpu->mem, _t66, cpu->r[23]);
|
|
/* 028DBEA8 */ cpu->r[5] = cpu->r[5] + 0xFFFFB2C4u;
|
|
/* 028DBEAC */ _t67 = cpu->r[3] + 0x00000000u;
|
|
/* 028DBEAC */ rbrew_write32(cpu->mem, _t67, cpu->r[23]);
|
|
/* 028DBEB0 */ _t68 = cpu->r[29] + 0x00000004u;
|
|
/* 028DBEB0 */ rbrew_write32(cpu->mem, _t68, cpu->r[5]);
|
|
/* 028DBEB4 */ _t69 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DBEB4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028DBEB8 */ _t70 = cpu->r[6] + 0x00000014u;
|
|
/* 028DBEB8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028DBEBC */ cpu->ctr = cpu->r[7];
|
|
/* 028DBEC0 */ _t71 = cpu->r[29] + 0x00000000u;
|
|
/* 028DBEC0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028DBEC4 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028DBEC8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DBECC */ _t72 = cpu->r[1] + 0x00000008u;
|
|
/* 028DBECC */ cpu->r[6] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028DBED0 */ _t73 = cpu->r[6] + 0x00000000u;
|
|
/* 028DBED0 */ cpu->r[0] = rbrew_read8(cpu->mem, _t73);
|
|
/* 028DBED4 */ cpu->r[31] = 0x00000000u;
|
|
/* 028DBED8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[28]);
|
|
/* 028DBEDC */ cpu->r[7] = 0x00080000u;
|
|
/* 028DBEE0 */ _t74 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBEE0 */ _t75 = _t74 & 0x00000001u;
|
|
/* 028DBEE0 */ if (_t75) goto L_028DBEE4; else goto L_028DBF30;
|
|
L_028DBEE4: ; // 0x28dbee4
|
|
/* 028DBEE4 */ goto L_028DBF60;
|
|
L_028DBEE8: ; // 0x28dbee8
|
|
/* 028DBEE8 */ _t76 = cpu->r[3] + 0x00000000u;
|
|
/* 028DBEE8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028DBEEC */ cpu->r[12] = cpu->r[12] + cpu->r[9];
|
|
/* 028DBEF0 */ _t77 = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028DBEF0 */ rbrew_write8(cpu->mem, _t77, (uint8_t)cpu->r[28]);
|
|
L_028DBEF4: ; // 0x28dbef4
|
|
/* 028DBEF4 */ cpu->r[5] = 0x10140000u;
|
|
/* 028DBEF8 */ cpu->r[5] = cpu->r[5] + 0xFFFFB2C4u;
|
|
/* 028DBEFC */ _t78 = cpu->r[29] + 0x00000004u;
|
|
/* 028DBEFC */ rbrew_write32(cpu->mem, _t78, cpu->r[5]);
|
|
/* 028DBF00 */ _t79 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DBF00 */ cpu->r[6] = rbrew_read32(cpu->mem, _t79);
|
|
/* 028DBF04 */ _t80 = cpu->r[6] + 0x00000014u;
|
|
/* 028DBF04 */ cpu->r[7] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028DBF08 */ cpu->ctr = cpu->r[7];
|
|
/* 028DBF0C */ _t81 = cpu->r[29] + 0x00000000u;
|
|
/* 028DBF0C */ cpu->r[30] = rbrew_read32(cpu->mem, _t81);
|
|
/* 028DBF10 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028DBF14 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DBF18 */ _t82 = cpu->r[1] + 0x00000008u;
|
|
/* 028DBF18 */ cpu->r[6] = rbrew_read32(cpu->mem, _t82);
|
|
/* 028DBF1C */ _t83 = cpu->r[6] + 0x00000000u;
|
|
/* 028DBF1C */ cpu->r[0] = rbrew_read8(cpu->mem, _t83);
|
|
/* 028DBF20 */ cpu->r[31] = 0x00000000u;
|
|
/* 028DBF24 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[28]);
|
|
/* 028DBF28 */ cpu->r[7] = 0x00080000u;
|
|
/* 028DBF2C */ _t84 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBF2C */ _t85 = _t84 & 0x00000001u;
|
|
/* 028DBF2C */ if (_t85) goto L_028DBF60; else goto L_028DBF30;
|
|
L_028DBF30: ; // 0x28dbf30
|
|
/* 028DBF30 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028DBF34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[7]);
|
|
/* 028DBF38 */ cpu->r[6] = cpu->r[6] + 0x00000001u;
|
|
/* 028DBF3C */ _t86 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DBF3C */ _t87 = _t86 & 0x00000001u;
|
|
/* 028DBF3C */ if (_t87) goto L_028DBF5C; else goto L_028DBF40;
|
|
L_028DBF40: ; // 0x28dbf40
|
|
/* 028DBF40 */ _t88 = cpu->r[6] + 0x00000000u;
|
|
/* 028DBF40 */ cpu->r[0] = rbrew_read8(cpu->mem, _t88);
|
|
/* 028DBF44 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[28]);
|
|
/* 028DBF48 */ _t89 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBF48 */ _t90 = _t89 & 0x00000001u;
|
|
/* 028DBF48 */ if (_t90) goto L_028DBF4C; else goto L_028DBF30;
|
|
L_028DBF4C: ; // 0x28dbf4c
|
|
/* 028DBF4C */ _t91 = cpu->r[29] + 0x00000008u;
|
|
/* 028DBF4C */ cpu->r[10] = rbrew_read32(cpu->mem, _t91);
|
|
/* 028DBF50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[10]);
|
|
/* 028DBF54 */ _t92 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DBF54 */ _t93 = _t92 & 0x00000001u;
|
|
/* 028DBF54 */ if (_t93) goto L_028DBF70; else goto L_028DBF58;
|
|
L_028DBF58: ; // 0x28dbf58
|
|
/* 028DBF58 */ goto L_028DBF6C;
|
|
L_028DBF5C: ; // 0x28dbf5c
|
|
/* 028DBF5C */ cpu->r[31] = 0x00000000u;
|
|
L_028DBF60: ; // 0x28dbf60
|
|
/* 028DBF60 */ _t94 = cpu->r[29] + 0x00000008u;
|
|
/* 028DBF60 */ cpu->r[10] = rbrew_read32(cpu->mem, _t94);
|
|
/* 028DBF64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[10]);
|
|
/* 028DBF68 */ _t95 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DBF68 */ _t96 = _t95 & 0x00000001u;
|
|
/* 028DBF68 */ if (_t96) goto L_028DBF70; else goto L_028DBF6C;
|
|
L_028DBF6C: ; // 0x28dbf6c
|
|
/* 028DBF6C */ cpu->r[31] = cpu->r[10] + 0xFFFFFFFFu;
|
|
L_028DBF70: ; // 0x28dbf70
|
|
/* 028DBF70 */ _t97 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DBF70 */ cpu->r[10] = rbrew_read32(cpu->mem, _t97);
|
|
/* 028DBF74 */ _t98 = cpu->r[10] + 0x00000014u;
|
|
/* 028DBF74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t98);
|
|
/* 028DBF78 */ cpu->ctr = cpu->r[0];
|
|
/* 028DBF7C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028DBF80 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DBF84 */ _t99 = cpu->r[1] + 0x00000008u;
|
|
/* 028DBF84 */ cpu->r[4] = rbrew_read32(cpu->mem, _t99);
|
|
/* 028DBF88 */ cpu->r[6] = 0x00000000u;
|
|
/* 028DBF8C */ cpu->r[5] = cpu->r[31];
|
|
/* 028DBF90 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DBF94 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028DBF98 */ _t100 = cpu->r[30] + cpu->r[31];
|
|
/* 028DBF98 */ rbrew_write8(cpu->mem, _t100, (uint8_t)cpu->r[28]);
|
|
/* 028DBF9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DBFA0 */ _t101 = cpu->r[25] + 0x00000004u;
|
|
/* 028DBFA0 */ rbrew_write32(cpu->mem, _t101, cpu->r[29]);
|
|
/* 028DBFA4 */ _t102 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DBFA4 */ _t103 = _t102 & 0x00000001u;
|
|
/* 028DBFA4 */ if (_t103) goto L_028DBFA8; else goto L_028DBFCC;
|
|
L_028DBFA8: ; // 0x28dbfa8
|
|
/* 028DBFA8 */ goto L_028DBFB4;
|
|
L_028DBFAC: ; // 0x28dbfac
|
|
/* 028DBFAC */ cpu->r[29] = 0x00000000u;
|
|
/* 028DBFB0 */ _t104 = cpu->r[25] + 0x00000004u;
|
|
/* 028DBFB0 */ rbrew_write32(cpu->mem, _t104, cpu->r[29]);
|
|
L_028DBFB4: ; // 0x28dbfb4
|
|
/* 028DBFB4 */ /* nop */
|
|
/* 028DBFB8 */ _t105 = cpu->r[1] + 0x00000044u;
|
|
/* 028DBFB8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t105);
|
|
/* 028DBFBC */ cpu->lr = cpu->r[0];
|
|
/* 028DBFC0 */ cpu->r[1] = cpu->r[1] + 0x00000040u;
|
|
/* 028DBFC4 */ cpu->r[3] = 0x00000000u;
|
|
/* 028DBFC8 */ return;
|
|
L_028DBFCC: ; // 0x28dbfcc
|
|
/* 028DBFCC */ _t106 = cpu->r[29] + 0x00000004u;
|
|
/* 028DBFCC */ cpu->r[12] = rbrew_read32(cpu->mem, _t106);
|
|
/* 028DBFD0 */ _t107 = cpu->r[12] + 0x00000014u;
|
|
/* 028DBFD0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t107);
|
|
/* 028DBFD4 */ cpu->ctr = cpu->r[5];
|
|
/* 028DBFD8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DBFDC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DBFE0 */ _t108 = cpu->r[25] + 0x00000004u;
|
|
/* 028DBFE0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t108);
|
|
/* 028DBFE4 */ _t109 = cpu->r[31] + 0x00000004u;
|
|
/* 028DBFE4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t109);
|
|
/* 028DBFE8 */ _t110 = cpu->r[6] + 0x00000014u;
|
|
/* 028DBFE8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t110);
|
|
/* 028DBFEC */ cpu->ctr = cpu->r[7];
|
|
/* 028DBFF0 */ _t111 = cpu->r[29] + 0x00000000u;
|
|
/* 028DBFF0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t111);
|
|
/* 028DBFF4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DBFF8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DBFFC */ _t112 = cpu->r[31] + 0x00000000u;
|
|
/* 028DBFFC */ cpu->r[10] = rbrew_read32(cpu->mem, _t112);
|
|
/* 028DC000 */ _t113 = cpu->r[24] + 0x00007399u;
|
|
/* 028DC000 */ cpu->r[7] = rbrew_read8(cpu->mem, _t113);
|
|
/* 028DC004 */ _t114 = cpu->r[10] + 0x00000000u;
|
|
/* 028DC004 */ cpu->r[8] = rbrew_read8(cpu->mem, _t114);
|
|
/* 028DC008 */ cpu->r[4] = 0x00000000u;
|
|
/* 028DC00C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[7]);
|
|
/* 028DC010 */ cpu->r[0] = 0x00080000u;
|
|
/* 028DC014 */ _t115 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC014 */ _t116 = _t115 & 0x00000001u;
|
|
/* 028DC014 */ if (_t116) goto L_028DC084; else goto L_028DC018;
|
|
L_028DC018: ; // 0x28dc018
|
|
/* 028DC018 */ cpu->r[4] = cpu->r[4] + 0x00000001u;
|
|
/* 028DC01C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], cpu->r[0]);
|
|
/* 028DC020 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028DC024 */ _t117 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DC024 */ _t118 = _t117 & 0x00000001u;
|
|
/* 028DC024 */ if (_t118) goto L_028DC080; else goto L_028DC028;
|
|
L_028DC028: ; // 0x28dc028
|
|
/* 028DC028 */ _t119 = cpu->r[10] + 0x00000000u;
|
|
/* 028DC028 */ cpu->r[9] = rbrew_read8(cpu->mem, _t119);
|
|
/* 028DC02C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[7]);
|
|
/* 028DC030 */ _t120 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC030 */ _t121 = _t120 & 0x00000001u;
|
|
/* 028DC030 */ if (_t121) goto L_028DC034; else goto L_028DC018;
|
|
L_028DC034: ; // 0x28dc034
|
|
/* 028DC034 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DC038 */ Gambit_fn_02801E30(cpu);
|
|
/* 028DC03C */ _t122 = cpu->r[25] + 0x00000008u;
|
|
/* 028DC03C */ rbrew_write32(cpu->mem, _t122, cpu->r[3]);
|
|
/* 028DC040 */ _t123 = cpu->r[25] + 0x00000000u;
|
|
/* 028DC040 */ cpu->r[3] = rbrew_read32(cpu->mem, _t123);
|
|
/* 028DC044 */ cpu->r[4] = cpu->r[27];
|
|
/* 028DC048 */ Gambit_fn_028DB4DC(cpu);
|
|
/* 028DC04C */ _t124 = cpu->r[26] + 0x00000024u;
|
|
/* 028DC04C */ cpu->r[0] = rbrew_read32(cpu->mem, _t124);
|
|
/* 028DC050 */ cpu->r[3] = cpu->r[26] + 0x00000018u;
|
|
/* 028DC054 */ cpu->r[4] = cpu->r[25] + cpu->r[0];
|
|
/* 028DC058 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028DC05C */ _t125 = cpu->r[26] + 0x00000020u;
|
|
/* 028DC05C */ cpu->r[11] = rbrew_read32(cpu->mem, _t125);
|
|
/* 028DC060 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 028DC064 */ _t126 = cpu->r[26] + 0x00000020u;
|
|
/* 028DC064 */ rbrew_write32(cpu->mem, _t126, cpu->r[11]);
|
|
/* 028DC068 */ _t127 = cpu->r[25] + 0x00000000u;
|
|
/* 028DC068 */ cpu->r[3] = rbrew_read32(cpu->mem, _t127);
|
|
/* 028DC06C */ /* nop */
|
|
/* 028DC070 */ _t128 = cpu->r[1] + 0x00000044u;
|
|
/* 028DC070 */ cpu->r[0] = rbrew_read32(cpu->mem, _t128);
|
|
/* 028DC074 */ cpu->lr = cpu->r[0];
|
|
/* 028DC078 */ cpu->r[1] = cpu->r[1] + 0x00000040u;
|
|
/* 028DC07C */ return;
|
|
L_028DC080: ; // 0x28dc080
|
|
/* 028DC080 */ cpu->r[4] = 0x00000000u;
|
|
L_028DC084: ; // 0x28dc084
|
|
/* 028DC084 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DC088 */ Gambit_fn_02801E30(cpu);
|
|
/* 028DC08C */ _t129 = cpu->r[25] + 0x00000008u;
|
|
/* 028DC08C */ rbrew_write32(cpu->mem, _t129, cpu->r[3]);
|
|
/* 028DC090 */ _t130 = cpu->r[25] + 0x00000000u;
|
|
/* 028DC090 */ cpu->r[3] = rbrew_read32(cpu->mem, _t130);
|
|
/* 028DC094 */ cpu->r[4] = cpu->r[27];
|
|
/* 028DC098 */ Gambit_fn_028DB4DC(cpu);
|
|
/* 028DC09C */ _t131 = cpu->r[26] + 0x00000024u;
|
|
/* 028DC09C */ cpu->r[0] = rbrew_read32(cpu->mem, _t131);
|
|
/* 028DC0A0 */ cpu->r[3] = cpu->r[26] + 0x00000018u;
|
|
/* 028DC0A4 */ cpu->r[4] = cpu->r[25] + cpu->r[0];
|
|
/* 028DC0A8 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028DC0AC */ _t132 = cpu->r[26] + 0x00000020u;
|
|
/* 028DC0AC */ cpu->r[11] = rbrew_read32(cpu->mem, _t132);
|
|
/* 028DC0B0 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 028DC0B4 */ _t133 = cpu->r[26] + 0x00000020u;
|
|
/* 028DC0B4 */ rbrew_write32(cpu->mem, _t133, cpu->r[11]);
|
|
/* 028DC0B8 */ _t134 = cpu->r[25] + 0x00000000u;
|
|
/* 028DC0B8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t134);
|
|
/* 028DC0BC */ /* nop */
|
|
/* 028DC0C0 */ _t135 = cpu->r[1] + 0x00000044u;
|
|
/* 028DC0C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t135);
|
|
/* 028DC0C4 */ cpu->lr = cpu->r[0];
|
|
/* 028DC0C8 */ cpu->r[1] = cpu->r[1] + 0x00000040u;
|
|
/* 028DC0CC */ return;
|
|
}
|
|
|
|
// fn_028DC0D0 @ 0x28dc0d0
|
|
void Gambit_fn_028DC0D0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54;
|
|
|
|
L_028DC0D0: ; // 0x28dc0d0
|
|
/* 028DC0D0 */ _t0 = cpu->r[1] + 0xFFFFFF68u;
|
|
/* 028DC0D0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DC0D0 */ cpu->r[1] = _t0;
|
|
/* 028DC0D4 */ cpu->r[9] = 0x10140000u;
|
|
/* 028DC0D8 */ _t1 = cpu->r[1] + 0x00000094u;
|
|
/* 028DC0D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DC0DC */ cpu->r[6] = 0x10140000u;
|
|
/* 028DC0E0 */ _t2 = cpu->r[9] + 0xFFFFB300u;
|
|
/* 028DC0E0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t2);
|
|
/* 028DC0E4 */ cpu->r[0] = cpu->lr;
|
|
/* 028DC0E8 */ _t3 = cpu->r[6] + 0xFFFFB2FCu;
|
|
/* 028DC0E8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t3);
|
|
/* 028DC0EC */ cpu->r[8] = 0x00000001u;
|
|
/* 028DC0F0 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028DC0F0 */ rbrew_write_f32(cpu->mem, _t4, cpu->f[0]);
|
|
/* 028DC0F4 */ _t5 = cpu->r[1] + 0x00000048u;
|
|
/* 028DC0F4 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[12]);
|
|
/* 028DC0F8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DC0FC */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 028DC0FC */ rbrew_write32(cpu->mem, _t6, cpu->r[8]);
|
|
/* 028DC100 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028DC100 */ cpu->r[9] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DC104 */ _t8 = cpu->r[12] + 0xFFFFB304u;
|
|
/* 028DC104 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028DC108 */ _t9 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028DC108 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028DC10C */ _t10 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028DC10C */ rbrew_write_f32(cpu->mem, _t10, cpu->f[12]);
|
|
/* 028DC110 */ _t11 = cpu->r[1] + 0x00000040u;
|
|
/* 028DC110 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[0]);
|
|
/* 028DC114 */ _t12 = cpu->r[1] + 0x00000020u;
|
|
/* 028DC114 */ rbrew_write32(cpu->mem, _t12, cpu->r[8]);
|
|
/* 028DC118 */ _t13 = cpu->r[1] + 0x00000020u;
|
|
/* 028DC118 */ cpu->r[11] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DC11C */ cpu->r[0] = 0x00000000u;
|
|
/* 028DC120 */ _t14 = cpu->r[1] + 0x00000038u;
|
|
/* 028DC120 */ rbrew_write32(cpu->mem, _t14, cpu->r[8]);
|
|
/* 028DC124 */ _t15 = cpu->r[1] + 0x00000050u;
|
|
/* 028DC124 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028DC128 */ cpu->r[10] = 0x10140000u;
|
|
/* 028DC12C */ _t16 = cpu->r[1] + 0x00000088u;
|
|
/* 028DC12C */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[0]);
|
|
/* 028DC130 */ cpu->r[7] = 0x10140000u;
|
|
/* 028DC134 */ _t17 = cpu->r[10] + 0xFFFFB30Cu;
|
|
/* 028DC134 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028DC138 */ _t18 = cpu->r[1] + 0x00000038u;
|
|
/* 028DC138 */ cpu->r[9] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DC13C */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DC13C */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 028DC140 */ cpu->r[11] = 0x10140000u;
|
|
/* 028DC144 */ _t20 = cpu->r[1] + 0x00000028u;
|
|
/* 028DC144 */ rbrew_write_f32(cpu->mem, _t20, cpu->f[10]);
|
|
/* 028DC148 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DC14C */ _t21 = cpu->r[11] + 0xFFFFB308u;
|
|
/* 028DC14C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028DC150 */ _t22 = cpu->r[7] + 0xFFFFB318u;
|
|
/* 028DC150 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 028DC154 */ _t23 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028DC154 */ rbrew_write_f32(cpu->mem, _t23, cpu->f[13]);
|
|
/* 028DC158 */ _t24 = cpu->r[12] + 0xFFFFB314u;
|
|
/* 028DC158 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 028DC15C */ _t25 = cpu->r[1] + 0x00000058u;
|
|
/* 028DC15C */ rbrew_write_f32(cpu->mem, _t25, cpu->f[11]);
|
|
/* 028DC160 */ _t26 = cpu->r[1] + 0x00000064u;
|
|
/* 028DC160 */ rbrew_write_f32(cpu->mem, _t26, cpu->f[12]);
|
|
/* 028DC164 */ cpu->r[6] = 0x10140000u;
|
|
/* 028DC168 */ _t27 = cpu->r[1] + 0x00000024u;
|
|
/* 028DC168 */ rbrew_write32(cpu->mem, _t27, cpu->r[0]);
|
|
/* 028DC16C */ _t28 = cpu->r[6] + 0xFFFFB310u;
|
|
/* 028DC16C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 028DC170 */ _t29 = cpu->r[1] + 0x00000030u;
|
|
/* 028DC170 */ rbrew_write_f32(cpu->mem, _t29, cpu->f[10]);
|
|
/* 028DC174 */ _t30 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DC174 */ rbrew_write_f32(cpu->mem, _t30, cpu->f[11]);
|
|
/* 028DC178 */ _t31 = cpu->r[1] + 0x00000014u;
|
|
/* 028DC178 */ rbrew_write_f32(cpu->mem, _t31, cpu->f[13]);
|
|
/* 028DC17C */ cpu->r[7] = cpu->r[1] + 0x00000068u;
|
|
/* 028DC180 */ _t32 = cpu->r[1] + 0x00000044u;
|
|
/* 028DC180 */ rbrew_write_f32(cpu->mem, _t32, cpu->f[13]);
|
|
/* 028DC184 */ cpu->r[6] = 0x00000005u;
|
|
/* 028DC188 */ _t33 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028DC188 */ rbrew_write32(cpu->mem, _t33, cpu->r[0]);
|
|
/* 028DC18C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DC190 */ _t34 = cpu->r[1] + 0x00000054u;
|
|
/* 028DC190 */ rbrew_write32(cpu->mem, _t34, cpu->r[0]);
|
|
/* 028DC194 */ _t35 = cpu->r[1] + 0x00000060u;
|
|
/* 028DC194 */ rbrew_write_f32(cpu->mem, _t35, cpu->f[12]);
|
|
/* 028DC198 */ _t36 = cpu->r[1] + 0x00000089u;
|
|
/* 028DC198 */ rbrew_write8(cpu->mem, _t36, (uint8_t)cpu->r[0]);
|
|
/* 028DC19C */ _t37 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DC19C */ rbrew_write_f32(cpu->mem, _t37, cpu->f[12]);
|
|
/* 028DC1A0 */ _t38 = cpu->r[1] + 0x00000084u;
|
|
/* 028DC1A0 */ rbrew_write_f32(cpu->mem, _t38, cpu->f[0]);
|
|
/* 028DC1A4 */ _t39 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028DC1A4 */ rbrew_write32(cpu->mem, _t39, cpu->r[0]);
|
|
/* 028DC1A8 */ _t40 = cpu->r[1] + 0x00000018u;
|
|
/* 028DC1A8 */ rbrew_write_f32(cpu->mem, _t40, cpu->f[12]);
|
|
/* 028DC1AC */ cpu->ctr = cpu->r[6];
|
|
/* 028DC1B0 */ _t41 = cpu->r[1] + 0x00000034u;
|
|
/* 028DC1B0 */ rbrew_write_f32(cpu->mem, _t41, cpu->f[12]);
|
|
L_028DC1B4: ; // 0x28dc1b4
|
|
/* 028DC1B4 */ _t42 = cpu->r[7] + 0x00000004u;
|
|
/* 028DC1B4 */ rbrew_write32(cpu->mem, _t42, cpu->r[0]);
|
|
/* 028DC1B4 */ cpu->r[7] = _t42;
|
|
/* 028DC1B8 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028DC1B8 */ _t43 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028DC1B8 */ _t44 = _t43 >> (0x00000002u & 31u);
|
|
/* 028DC1B8 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028DC1B8 */ if (_t45) goto L_028DC1B4; else goto L_028DC1BC;
|
|
L_028DC1BC: ; // 0x28dc1bc
|
|
/* 028DC1BC */ cpu->r[7] = 0x10140000u;
|
|
/* 028DC1C0 */ _t46 = cpu->r[1] + 0x00000080u;
|
|
/* 028DC1C0 */ rbrew_write_f32(cpu->mem, _t46, cpu->f[13]);
|
|
/* 028DC1C4 */ cpu->r[7] = cpu->r[7] + 0xFFFFB31Cu;
|
|
/* 028DC1C8 */ cpu->r[12] = cpu->r[1] + 0x00000038u;
|
|
/* 028DC1CC */ _t47 = cpu->r[1] + 0x00000068u;
|
|
/* 028DC1CC */ rbrew_write32(cpu->mem, _t47, cpu->r[7]);
|
|
/* 028DC1D0 */ cpu->r[11] = cpu->r[1] + 0x00000020u;
|
|
/* 028DC1D4 */ _t48 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028DC1D4 */ rbrew_write32(cpu->mem, _t48, cpu->r[12]);
|
|
/* 028DC1D8 */ cpu->r[8] = cpu->r[1] + 0x00000050u;
|
|
/* 028DC1DC */ _t49 = cpu->r[1] + 0x00000074u;
|
|
/* 028DC1DC */ rbrew_write32(cpu->mem, _t49, cpu->r[11]);
|
|
/* 028DC1E0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DC1E4 */ cpu->r[10] = cpu->r[1] + 0x00000008u;
|
|
/* 028DC1E8 */ _t50 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028DC1E8 */ rbrew_write32(cpu->mem, _t50, cpu->r[8]);
|
|
/* 028DC1EC */ cpu->r[4] = cpu->r[1] + 0x00000068u;
|
|
/* 028DC1F0 */ cpu->r[5] = 0x00000000u;
|
|
/* 028DC1F4 */ _t51 = cpu->r[1] + 0x00000070u;
|
|
/* 028DC1F4 */ rbrew_write32(cpu->mem, _t51, cpu->r[10]);
|
|
/* 028DC1F8 */ Gambit_fn_028DBC80(cpu);
|
|
/* 028DC1FC */ _t52 = cpu->r[31] + 0x00000028u;
|
|
/* 028DC1FC */ rbrew_write32(cpu->mem, _t52, cpu->r[3]);
|
|
/* 028DC200 */ _t53 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028DC200 */ cpu->r[0] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028DC204 */ cpu->lr = cpu->r[0];
|
|
/* 028DC208 */ _t54 = cpu->r[1] + 0x00000094u;
|
|
/* 028DC208 */ cpu->r[31] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028DC20C */ cpu->r[1] = cpu->r[1] + 0x00000098u;
|
|
/* 028DC210 */ return;
|
|
}
|
|
|
|
// fn_028DC214 @ 0x28dc214
|
|
void Gambit_fn_028DC214(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55;
|
|
|
|
L_028DC0D0: ; // 0x28dc0d0
|
|
/* 028DC0D0 */ _t0 = cpu->r[1] + 0xFFFFFF68u;
|
|
/* 028DC0D0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DC0D0 */ cpu->r[1] = _t0;
|
|
/* 028DC0D4 */ cpu->r[9] = 0x10140000u;
|
|
/* 028DC0D8 */ _t1 = cpu->r[1] + 0x00000094u;
|
|
/* 028DC0D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DC0DC */ cpu->r[6] = 0x10140000u;
|
|
/* 028DC0E0 */ _t2 = cpu->r[9] + 0xFFFFB300u;
|
|
/* 028DC0E0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t2);
|
|
/* 028DC0E4 */ cpu->r[0] = cpu->lr;
|
|
/* 028DC0E8 */ _t3 = cpu->r[6] + 0xFFFFB2FCu;
|
|
/* 028DC0E8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t3);
|
|
/* 028DC0EC */ cpu->r[8] = 0x00000001u;
|
|
/* 028DC0F0 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028DC0F0 */ rbrew_write_f32(cpu->mem, _t4, cpu->f[0]);
|
|
/* 028DC0F4 */ _t5 = cpu->r[1] + 0x00000048u;
|
|
/* 028DC0F4 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[12]);
|
|
/* 028DC0F8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DC0FC */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 028DC0FC */ rbrew_write32(cpu->mem, _t6, cpu->r[8]);
|
|
/* 028DC100 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028DC100 */ cpu->r[9] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DC104 */ _t8 = cpu->r[12] + 0xFFFFB304u;
|
|
/* 028DC104 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028DC108 */ _t9 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028DC108 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028DC10C */ _t10 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028DC10C */ rbrew_write_f32(cpu->mem, _t10, cpu->f[12]);
|
|
/* 028DC110 */ _t11 = cpu->r[1] + 0x00000040u;
|
|
/* 028DC110 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[0]);
|
|
/* 028DC114 */ _t12 = cpu->r[1] + 0x00000020u;
|
|
/* 028DC114 */ rbrew_write32(cpu->mem, _t12, cpu->r[8]);
|
|
/* 028DC118 */ _t13 = cpu->r[1] + 0x00000020u;
|
|
/* 028DC118 */ cpu->r[11] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DC11C */ cpu->r[0] = 0x00000000u;
|
|
/* 028DC120 */ _t14 = cpu->r[1] + 0x00000038u;
|
|
/* 028DC120 */ rbrew_write32(cpu->mem, _t14, cpu->r[8]);
|
|
/* 028DC124 */ _t15 = cpu->r[1] + 0x00000050u;
|
|
/* 028DC124 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028DC128 */ cpu->r[10] = 0x10140000u;
|
|
/* 028DC12C */ _t16 = cpu->r[1] + 0x00000088u;
|
|
/* 028DC12C */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[0]);
|
|
/* 028DC130 */ cpu->r[7] = 0x10140000u;
|
|
/* 028DC134 */ _t17 = cpu->r[10] + 0xFFFFB30Cu;
|
|
/* 028DC134 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028DC138 */ _t18 = cpu->r[1] + 0x00000038u;
|
|
/* 028DC138 */ cpu->r[9] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DC13C */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DC13C */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 028DC140 */ cpu->r[11] = 0x10140000u;
|
|
/* 028DC144 */ _t20 = cpu->r[1] + 0x00000028u;
|
|
/* 028DC144 */ rbrew_write_f32(cpu->mem, _t20, cpu->f[10]);
|
|
/* 028DC148 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DC14C */ _t21 = cpu->r[11] + 0xFFFFB308u;
|
|
/* 028DC14C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028DC150 */ _t22 = cpu->r[7] + 0xFFFFB318u;
|
|
/* 028DC150 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 028DC154 */ _t23 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028DC154 */ rbrew_write_f32(cpu->mem, _t23, cpu->f[13]);
|
|
/* 028DC158 */ _t24 = cpu->r[12] + 0xFFFFB314u;
|
|
/* 028DC158 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 028DC15C */ _t25 = cpu->r[1] + 0x00000058u;
|
|
/* 028DC15C */ rbrew_write_f32(cpu->mem, _t25, cpu->f[11]);
|
|
/* 028DC160 */ _t26 = cpu->r[1] + 0x00000064u;
|
|
/* 028DC160 */ rbrew_write_f32(cpu->mem, _t26, cpu->f[12]);
|
|
/* 028DC164 */ cpu->r[6] = 0x10140000u;
|
|
/* 028DC168 */ _t27 = cpu->r[1] + 0x00000024u;
|
|
/* 028DC168 */ rbrew_write32(cpu->mem, _t27, cpu->r[0]);
|
|
/* 028DC16C */ _t28 = cpu->r[6] + 0xFFFFB310u;
|
|
/* 028DC16C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 028DC170 */ _t29 = cpu->r[1] + 0x00000030u;
|
|
/* 028DC170 */ rbrew_write_f32(cpu->mem, _t29, cpu->f[10]);
|
|
/* 028DC174 */ _t30 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DC174 */ rbrew_write_f32(cpu->mem, _t30, cpu->f[11]);
|
|
/* 028DC178 */ _t31 = cpu->r[1] + 0x00000014u;
|
|
/* 028DC178 */ rbrew_write_f32(cpu->mem, _t31, cpu->f[13]);
|
|
/* 028DC17C */ cpu->r[7] = cpu->r[1] + 0x00000068u;
|
|
/* 028DC180 */ _t32 = cpu->r[1] + 0x00000044u;
|
|
/* 028DC180 */ rbrew_write_f32(cpu->mem, _t32, cpu->f[13]);
|
|
/* 028DC184 */ cpu->r[6] = 0x00000005u;
|
|
/* 028DC188 */ _t33 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028DC188 */ rbrew_write32(cpu->mem, _t33, cpu->r[0]);
|
|
/* 028DC18C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DC190 */ _t34 = cpu->r[1] + 0x00000054u;
|
|
/* 028DC190 */ rbrew_write32(cpu->mem, _t34, cpu->r[0]);
|
|
/* 028DC194 */ _t35 = cpu->r[1] + 0x00000060u;
|
|
/* 028DC194 */ rbrew_write_f32(cpu->mem, _t35, cpu->f[12]);
|
|
/* 028DC198 */ _t36 = cpu->r[1] + 0x00000089u;
|
|
/* 028DC198 */ rbrew_write8(cpu->mem, _t36, (uint8_t)cpu->r[0]);
|
|
/* 028DC19C */ _t37 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DC19C */ rbrew_write_f32(cpu->mem, _t37, cpu->f[12]);
|
|
/* 028DC1A0 */ _t38 = cpu->r[1] + 0x00000084u;
|
|
/* 028DC1A0 */ rbrew_write_f32(cpu->mem, _t38, cpu->f[0]);
|
|
/* 028DC1A4 */ _t39 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028DC1A4 */ rbrew_write32(cpu->mem, _t39, cpu->r[0]);
|
|
/* 028DC1A8 */ _t40 = cpu->r[1] + 0x00000018u;
|
|
/* 028DC1A8 */ rbrew_write_f32(cpu->mem, _t40, cpu->f[12]);
|
|
/* 028DC1AC */ cpu->ctr = cpu->r[6];
|
|
/* 028DC1B0 */ _t41 = cpu->r[1] + 0x00000034u;
|
|
/* 028DC1B0 */ rbrew_write_f32(cpu->mem, _t41, cpu->f[12]);
|
|
L_028DC1B4: ; // 0x28dc1b4
|
|
/* 028DC1B4 */ _t42 = cpu->r[7] + 0x00000004u;
|
|
/* 028DC1B4 */ rbrew_write32(cpu->mem, _t42, cpu->r[0]);
|
|
/* 028DC1B4 */ cpu->r[7] = _t42;
|
|
/* 028DC1B8 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028DC1B8 */ _t43 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028DC1B8 */ _t44 = _t43 >> (0x00000002u & 31u);
|
|
/* 028DC1B8 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028DC1B8 */ if (_t45) goto L_028DC1B4; else goto L_028DC1BC;
|
|
L_028DC1BC: ; // 0x28dc1bc
|
|
/* 028DC1BC */ cpu->r[7] = 0x10140000u;
|
|
/* 028DC1C0 */ _t46 = cpu->r[1] + 0x00000080u;
|
|
/* 028DC1C0 */ rbrew_write_f32(cpu->mem, _t46, cpu->f[13]);
|
|
/* 028DC1C4 */ cpu->r[7] = cpu->r[7] + 0xFFFFB31Cu;
|
|
/* 028DC1C8 */ cpu->r[12] = cpu->r[1] + 0x00000038u;
|
|
/* 028DC1CC */ _t47 = cpu->r[1] + 0x00000068u;
|
|
/* 028DC1CC */ rbrew_write32(cpu->mem, _t47, cpu->r[7]);
|
|
/* 028DC1D0 */ cpu->r[11] = cpu->r[1] + 0x00000020u;
|
|
/* 028DC1D4 */ _t48 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028DC1D4 */ rbrew_write32(cpu->mem, _t48, cpu->r[12]);
|
|
/* 028DC1D8 */ cpu->r[8] = cpu->r[1] + 0x00000050u;
|
|
/* 028DC1DC */ _t49 = cpu->r[1] + 0x00000074u;
|
|
/* 028DC1DC */ rbrew_write32(cpu->mem, _t49, cpu->r[11]);
|
|
/* 028DC1E0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DC1E4 */ cpu->r[10] = cpu->r[1] + 0x00000008u;
|
|
/* 028DC1E8 */ _t50 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028DC1E8 */ rbrew_write32(cpu->mem, _t50, cpu->r[8]);
|
|
/* 028DC1EC */ cpu->r[4] = cpu->r[1] + 0x00000068u;
|
|
/* 028DC1F0 */ cpu->r[5] = 0x00000000u;
|
|
/* 028DC1F4 */ _t51 = cpu->r[1] + 0x00000070u;
|
|
/* 028DC1F4 */ rbrew_write32(cpu->mem, _t51, cpu->r[10]);
|
|
/* 028DC1F8 */ Gambit_fn_028DBC80(cpu);
|
|
/* 028DC1FC */ _t52 = cpu->r[31] + 0x00000028u;
|
|
/* 028DC1FC */ rbrew_write32(cpu->mem, _t52, cpu->r[3]);
|
|
/* 028DC200 */ _t53 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028DC200 */ cpu->r[0] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028DC204 */ cpu->lr = cpu->r[0];
|
|
/* 028DC208 */ _t54 = cpu->r[1] + 0x00000094u;
|
|
/* 028DC208 */ cpu->r[31] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028DC20C */ cpu->r[1] = cpu->r[1] + 0x00000098u;
|
|
/* 028DC210 */ return;
|
|
L_028DC214: ; // 0x28dc214
|
|
/* 028DC214 */ _t55 = cpu->r[3] + 0x00000014u;
|
|
/* 028DC214 */ rbrew_write32(cpu->mem, _t55, cpu->r[4]);
|
|
/* 028DC218 */ goto L_028DC0D0;
|
|
}
|
|
|
|
// fn_028DC21C @ 0x28dc21c
|
|
void Gambit_fn_028DC21C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_028DC21C: ; // 0x28dc21c
|
|
/* 028DC21C */ cpu->r[3] = cpu->r[3] + 0x00000030u;
|
|
/* 028DC220 */ goto L_028ED630;
|
|
L_028ED630: ; // 0x28ed630
|
|
/* 028ED630 */ cpu->r[0] = cpu->lr;
|
|
/* 028ED634 */ _t0 = cpu->r[1] + 0xFFFFFFC0u;
|
|
/* 028ED634 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028ED634 */ cpu->r[1] = _t0;
|
|
/* 028ED638 */ _t1 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028ED638 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028ED63C */ _t2 = cpu->r[1] + 0x00000044u;
|
|
/* 028ED63C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028ED640 */ _t3 = cpu->r[3] + 0x00000034u;
|
|
/* 028ED640 */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028ED644 */ cpu->r[31] = cpu->r[3];
|
|
/* 028ED648 */ Gambit_fn_028ED568(cpu);
|
|
/* 028ED64C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ED650 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED650 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028ED650 */ if (_t5) goto L_028ED6B8; else goto L_028ED654;
|
|
L_028ED654: ; // 0x28ed654
|
|
/* 028ED654 */ cpu->r[4] = cpu->r[3] + 0x00000110u;
|
|
/* 028ED658 */ cpu->r[3] = cpu->r[1] + 0x00000014u;
|
|
/* 028ED65C */ Gambit_fn_0200D450(cpu);
|
|
/* 028ED660 */ cpu->r[4] = cpu->r[31] + 0x00000038u;
|
|
/* 028ED664 */ cpu->r[3] = cpu->r[1] + 0x00000020u;
|
|
/* 028ED668 */ Gambit_fn_028ED2A0(cpu);
|
|
/* 028ED66C */ /* nop */
|
|
/* 028ED670 */ /* nop */
|
|
/* 028ED674 */ _t6 = cpu->r[1] + 0x00000028u;
|
|
/* 028ED674 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028ED678 */ /* nop */
|
|
/* 028ED67C */ _t7 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028ED67C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028ED680 */ /* nop */
|
|
/* 028ED684 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028ED684 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028ED688 */ cpu->f[0] = cpu->f[12] + cpu->f[13];
|
|
/* 028ED68C */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028ED68C */ cpu->r[9] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028ED690 */ cpu->r[4] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028ED694 */ _t10 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028ED694 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028ED698 */ cpu->r[3] = cpu->r[31];
|
|
/* 028ED69C */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028ED69C */ rbrew_write_f32(cpu->mem, _t11, cpu->f[0]);
|
|
/* 028ED6A0 */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 028ED6A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028ED6A4 */ cpu->r[5] = 0x101F0000u;
|
|
/* 028ED6A8 */ _t13 = cpu->r[1] + 0x00000030u;
|
|
/* 028ED6A8 */ rbrew_write32(cpu->mem, _t13, cpu->r[9]);
|
|
/* 028ED6AC */ cpu->r[5] = cpu->r[5] + 0x00006368u;
|
|
/* 028ED6B0 */ _t14 = cpu->r[1] + 0x00000034u;
|
|
/* 028ED6B0 */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
/* 028ED6B4 */ Gambit_fn_028ED59C(cpu);
|
|
L_028ED6B8: ; // 0x28ed6b8
|
|
/* 028ED6B8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028ED6BC */ Gambit_fn_028ED5B0(cpu);
|
|
/* 028ED6C0 */ _t15 = cpu->r[1] + 0x00000044u;
|
|
/* 028ED6C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028ED6C4 */ _t16 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028ED6C4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028ED6C8 */ cpu->lr = cpu->r[0];
|
|
/* 028ED6CC */ cpu->r[1] = cpu->r[1] + 0x00000040u;
|
|
/* 028ED6D0 */ return;
|
|
}
|
|
|
|
// fn_028DC224 @ 0x28dc224
|
|
void Gambit_fn_028DC224(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26;
|
|
|
|
L_028DC224: ; // 0x28dc224
|
|
/* 028DC224 */ cpu->r[0] = cpu->lr;
|
|
/* 028DC228 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DC228 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DC228 */ cpu->r[1] = _t0;
|
|
/* 028DC22C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DC22C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DC230 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028DC234 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DC234 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DC238 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC238 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028DC238 */ if (_t4) goto L_028DC2B4; else goto L_028DC23C;
|
|
L_028DC23C: ; // 0x28dc23c
|
|
/* 028DC23C */ _t5 = cpu->r[3] + 0x00000020u;
|
|
/* 028DC23C */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028DC240 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DC244 */ cpu->r[11] = cpu->r[3] + 0x00000018u;
|
|
/* 028DC248 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC248 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DC248 */ if (_t7) goto L_028DC2B4; else goto L_028DC24C;
|
|
L_028DC24C: ; // 0x28dc24c
|
|
/* 028DC24C */ _t8 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028DC24C */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DC250 */ _t9 = cpu->r[11] + 0x00000004u;
|
|
/* 028DC250 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DC254 */ cpu->r[12] = cpu->r[11] - cpu->r[0];
|
|
/* 028DC258 */ cpu->r[9] = cpu->r[10] - cpu->r[0];
|
|
/* 028DC25C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[12]);
|
|
/* 028DC260 */ _t10 = cpu->r[10] + 0x00000004u;
|
|
/* 028DC260 */ cpu->r[8] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DC264 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC264 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028DC264 */ if (_t12) goto L_028DC2B4; else goto L_028DC268;
|
|
L_028DC268: ; // 0x28dc268
|
|
/* 028DC268 */ _t13 = cpu->r[9] + 0x00000000u;
|
|
/* 028DC268 */ cpu->r[11] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DC26C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[4]);
|
|
/* 028DC270 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC270 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028DC270 */ if (_t15) goto L_028DC274; else goto L_028DC2A4;
|
|
L_028DC274: ; // 0x28dc274
|
|
/* 028DC274 */ _t16 = cpu->r[9] + 0x00000004u;
|
|
/* 028DC274 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DC278 */ _t17 = cpu->r[31] + 0x00000004u;
|
|
/* 028DC278 */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DC27C */ _t18 = cpu->r[12] + 0x00000014u;
|
|
/* 028DC27C */ cpu->r[9] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DC280 */ cpu->ctr = cpu->r[9];
|
|
/* 028DC284 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DC288 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC28C */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 028DC28C */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DC290 */ _t20 = cpu->r[31] + 0x00000000u;
|
|
/* 028DC290 */ cpu->r[3] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DC294 */ cpu->lr = cpu->r[0];
|
|
/* 028DC298 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DC298 */ cpu->r[31] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DC29C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DC2A0 */ return;
|
|
L_028DC2A4: ; // 0x28dc2a4
|
|
/* 028DC2A4 */ cpu->r[9] = cpu->r[8] - cpu->r[0];
|
|
/* 028DC2A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[12]);
|
|
/* 028DC2AC */ _t22 = cpu->r[8] + 0x00000004u;
|
|
/* 028DC2AC */ cpu->r[8] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DC2B0 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC2B0 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028DC2B0 */ if (_t24) goto L_028DC2B4; else goto L_028DC268;
|
|
L_028DC2B4: ; // 0x28dc2b4
|
|
/* 028DC2B4 */ _t25 = cpu->r[1] + 0x00000014u;
|
|
/* 028DC2B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028DC2B8 */ _t26 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DC2B8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028DC2BC */ cpu->lr = cpu->r[0];
|
|
/* 028DC2C0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DC2C4 */ cpu->r[3] = 0x00000000u;
|
|
/* 028DC2C8 */ return;
|
|
}
|
|
|
|
// fn_028DC228 @ 0x28dc228
|
|
void Gambit_fn_028DC228(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26;
|
|
|
|
L_028DC228: ; // 0x28dc228
|
|
/* 028DC228 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DC228 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DC228 */ cpu->r[1] = _t0;
|
|
/* 028DC22C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DC22C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DC230 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028DC234 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DC234 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DC238 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC238 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028DC238 */ if (_t4) goto L_028DC2B4; else goto L_028DC23C;
|
|
L_028DC23C: ; // 0x28dc23c
|
|
/* 028DC23C */ _t5 = cpu->r[3] + 0x00000020u;
|
|
/* 028DC23C */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028DC240 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DC244 */ cpu->r[11] = cpu->r[3] + 0x00000018u;
|
|
/* 028DC248 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC248 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DC248 */ if (_t7) goto L_028DC2B4; else goto L_028DC24C;
|
|
L_028DC24C: ; // 0x28dc24c
|
|
/* 028DC24C */ _t8 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028DC24C */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DC250 */ _t9 = cpu->r[11] + 0x00000004u;
|
|
/* 028DC250 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DC254 */ cpu->r[12] = cpu->r[11] - cpu->r[0];
|
|
/* 028DC258 */ cpu->r[9] = cpu->r[10] - cpu->r[0];
|
|
/* 028DC25C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[12]);
|
|
/* 028DC260 */ _t10 = cpu->r[10] + 0x00000004u;
|
|
/* 028DC260 */ cpu->r[8] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DC264 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC264 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028DC264 */ if (_t12) goto L_028DC2B4; else goto L_028DC268;
|
|
L_028DC268: ; // 0x28dc268
|
|
/* 028DC268 */ _t13 = cpu->r[9] + 0x00000000u;
|
|
/* 028DC268 */ cpu->r[11] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DC26C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[4]);
|
|
/* 028DC270 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC270 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028DC270 */ if (_t15) goto L_028DC274; else goto L_028DC2A4;
|
|
L_028DC274: ; // 0x28dc274
|
|
/* 028DC274 */ _t16 = cpu->r[9] + 0x00000004u;
|
|
/* 028DC274 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DC278 */ _t17 = cpu->r[31] + 0x00000004u;
|
|
/* 028DC278 */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DC27C */ _t18 = cpu->r[12] + 0x00000014u;
|
|
/* 028DC27C */ cpu->r[9] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DC280 */ cpu->ctr = cpu->r[9];
|
|
/* 028DC284 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DC288 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC28C */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 028DC28C */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DC290 */ _t20 = cpu->r[31] + 0x00000000u;
|
|
/* 028DC290 */ cpu->r[3] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DC294 */ cpu->lr = cpu->r[0];
|
|
/* 028DC298 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DC298 */ cpu->r[31] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DC29C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DC2A0 */ return;
|
|
L_028DC2A4: ; // 0x28dc2a4
|
|
/* 028DC2A4 */ cpu->r[9] = cpu->r[8] - cpu->r[0];
|
|
/* 028DC2A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[12]);
|
|
/* 028DC2AC */ _t22 = cpu->r[8] + 0x00000004u;
|
|
/* 028DC2AC */ cpu->r[8] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DC2B0 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC2B0 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028DC2B0 */ if (_t24) goto L_028DC2B4; else goto L_028DC268;
|
|
L_028DC2B4: ; // 0x28dc2b4
|
|
/* 028DC2B4 */ _t25 = cpu->r[1] + 0x00000014u;
|
|
/* 028DC2B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028DC2B8 */ _t26 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DC2B8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028DC2BC */ cpu->lr = cpu->r[0];
|
|
/* 028DC2C0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DC2C4 */ cpu->r[3] = 0x00000000u;
|
|
/* 028DC2C8 */ return;
|
|
}
|
|
|
|
// fn_028DC2CC @ 0x28dc2cc
|
|
void Gambit_fn_028DC2CC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23;
|
|
|
|
L_028DC2CC: ; // 0x28dc2cc
|
|
/* 028DC2CC */ cpu->r[0] = cpu->lr;
|
|
/* 028DC2D0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DC2D0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DC2D0 */ cpu->r[1] = _t0;
|
|
/* 028DC2D4 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028DC2D4 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 028DC2D8 */ cpu->r[28] = cpu->r[4];
|
|
/* 028DC2DC */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DC2DC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DC2E0 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DC2E0 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DC2E4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DC2E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DC2E8 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028DC2E8 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028DC2EC */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DC2EC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DC2F0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC2F0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DC2F0 */ if (_t7) goto L_028DC354; else goto L_028DC2F4;
|
|
L_028DC2F4: ; // 0x28dc2f4
|
|
/* 028DC2F4 */ cpu->r[6] = 0x10140000u;
|
|
/* 028DC2F8 */ cpu->r[6] = cpu->r[6] + 0xFFFFB33Cu;
|
|
/* 028DC2FC */ cpu->r[12] = 0x101D0000u;
|
|
/* 028DC300 */ _t8 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DC300 */ rbrew_write32(cpu->mem, _t8, cpu->r[6]);
|
|
/* 028DC304 */ _t9 = cpu->r[12] + 0xFFFF9AD0u;
|
|
/* 028DC304 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DC304 */ cpu->r[12] = _t9;
|
|
/* 028DC308 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[0]);
|
|
/* 028DC30C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC30C */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DC30C */ if (_t11) goto L_028DC310; else goto L_028DC338;
|
|
L_028DC310: ; // 0x28dc310
|
|
/* 028DC310 */ cpu->r[30] = 0x101D0000u;
|
|
/* 028DC314 */ cpu->r[29] = 0x00000000u;
|
|
/* 028DC318 */ _t12 = cpu->r[30] + 0xFFFF9ACCu;
|
|
/* 028DC318 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DC31C */ _t13 = cpu->r[12] + 0x00000000u;
|
|
/* 028DC31C */ rbrew_write32(cpu->mem, _t13, cpu->r[29]);
|
|
/* 028DC320 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028DC320 */ cpu->r[8] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DC324 */ _t15 = cpu->r[8] + 0x00000014u;
|
|
/* 028DC324 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028DC328 */ cpu->ctr = cpu->r[10];
|
|
/* 028DC32C */ cpu->r[4] = 0x00000002u;
|
|
/* 028DC330 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC334 */ _t16 = cpu->r[30] + 0xFFFF9ACCu;
|
|
/* 028DC334 */ rbrew_write32(cpu->mem, _t16, cpu->r[29]);
|
|
L_028DC338: ; // 0x28dc338
|
|
/* 028DC338 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DC33C */ cpu->r[4] = 0x00000000u;
|
|
/* 028DC340 */ Gambit_fn_02821E68(cpu);
|
|
/* 028DC344 */ cpu->r[0] = rbrew_rlwinm(cpu->r[28], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DC344 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DC348 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC348 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028DC348 */ if (_t18) goto L_028DC354; else goto L_028DC34C;
|
|
L_028DC34C: ; // 0x28dc34c
|
|
/* 028DC34C */ cpu->r[3] = cpu->r[31];
|
|
/* 028DC350 */ Gambit_fn_02801BB0(cpu);
|
|
L_028DC354: ; // 0x28dc354
|
|
/* 028DC354 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028DC354 */ cpu->r[28] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DC358 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DC358 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DC35C */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DC35C */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DC360 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028DC360 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DC364 */ cpu->lr = cpu->r[0];
|
|
/* 028DC368 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028DC368 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028DC36C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DC370 */ return;
|
|
}
|
|
|
|
// fn_028DC2D0 @ 0x28dc2d0
|
|
void Gambit_fn_028DC2D0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23;
|
|
|
|
L_028DC2D0: ; // 0x28dc2d0
|
|
/* 028DC2D0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DC2D0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DC2D0 */ cpu->r[1] = _t0;
|
|
/* 028DC2D4 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028DC2D4 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 028DC2D8 */ cpu->r[28] = cpu->r[4];
|
|
/* 028DC2DC */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DC2DC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DC2E0 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DC2E0 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DC2E4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DC2E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DC2E8 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028DC2E8 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028DC2EC */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DC2EC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DC2F0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC2F0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DC2F0 */ if (_t7) goto L_028DC354; else goto L_028DC2F4;
|
|
L_028DC2F4: ; // 0x28dc2f4
|
|
/* 028DC2F4 */ cpu->r[6] = 0x10140000u;
|
|
/* 028DC2F8 */ cpu->r[6] = cpu->r[6] + 0xFFFFB33Cu;
|
|
/* 028DC2FC */ cpu->r[12] = 0x101D0000u;
|
|
/* 028DC300 */ _t8 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DC300 */ rbrew_write32(cpu->mem, _t8, cpu->r[6]);
|
|
/* 028DC304 */ _t9 = cpu->r[12] + 0xFFFF9AD0u;
|
|
/* 028DC304 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DC304 */ cpu->r[12] = _t9;
|
|
/* 028DC308 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[0]);
|
|
/* 028DC30C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC30C */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DC30C */ if (_t11) goto L_028DC310; else goto L_028DC338;
|
|
L_028DC310: ; // 0x28dc310
|
|
/* 028DC310 */ cpu->r[30] = 0x101D0000u;
|
|
/* 028DC314 */ cpu->r[29] = 0x00000000u;
|
|
/* 028DC318 */ _t12 = cpu->r[30] + 0xFFFF9ACCu;
|
|
/* 028DC318 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DC31C */ _t13 = cpu->r[12] + 0x00000000u;
|
|
/* 028DC31C */ rbrew_write32(cpu->mem, _t13, cpu->r[29]);
|
|
/* 028DC320 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028DC320 */ cpu->r[8] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DC324 */ _t15 = cpu->r[8] + 0x00000014u;
|
|
/* 028DC324 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028DC328 */ cpu->ctr = cpu->r[10];
|
|
/* 028DC32C */ cpu->r[4] = 0x00000002u;
|
|
/* 028DC330 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC334 */ _t16 = cpu->r[30] + 0xFFFF9ACCu;
|
|
/* 028DC334 */ rbrew_write32(cpu->mem, _t16, cpu->r[29]);
|
|
L_028DC338: ; // 0x28dc338
|
|
/* 028DC338 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DC33C */ cpu->r[4] = 0x00000000u;
|
|
/* 028DC340 */ Gambit_fn_02821E68(cpu);
|
|
/* 028DC344 */ cpu->r[0] = rbrew_rlwinm(cpu->r[28], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DC344 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DC348 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC348 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028DC348 */ if (_t18) goto L_028DC354; else goto L_028DC34C;
|
|
L_028DC34C: ; // 0x28dc34c
|
|
/* 028DC34C */ cpu->r[3] = cpu->r[31];
|
|
/* 028DC350 */ Gambit_fn_02801BB0(cpu);
|
|
L_028DC354: ; // 0x28dc354
|
|
/* 028DC354 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028DC354 */ cpu->r[28] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DC358 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DC358 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DC35C */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DC35C */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DC360 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028DC360 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DC364 */ cpu->lr = cpu->r[0];
|
|
/* 028DC368 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028DC368 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028DC36C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DC370 */ return;
|
|
}
|
|
|
|
// fn_028DC374 @ 0x28dc374
|
|
void Gambit_fn_028DC374(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028DC374: ; // 0x28dc374
|
|
/* 028DC374 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DC378 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC378 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DC378 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DC378 */ goto L_028DC37C;
|
|
L_028DC37C: ; // 0x28dc37c
|
|
/* 028DC37C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DC37C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DC380 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC380 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DC380 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DC380 */ goto L_028DC384;
|
|
L_028DC384: ; // 0x28dc384
|
|
/* 028DC384 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028DC388 @ 0x28dc388
|
|
void Gambit_fn_028DC388(CPUState* cpu) {
|
|
L_028DC388: ; // 0x28dc388
|
|
/* 028DC388 */ return;
|
|
}
|
|
|
|
// fn_028DC38C @ 0x28dc38c
|
|
void Gambit_fn_028DC38C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028DC38C: ; // 0x28dc38c
|
|
/* 028DC38C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DC390 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC390 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DC390 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DC390 */ goto L_028DC394;
|
|
L_028DC394: ; // 0x28dc394
|
|
/* 028DC394 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DC394 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DC398 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC398 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DC398 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DC398 */ goto L_028DC39C;
|
|
L_028DC39C: ; // 0x28dc39c
|
|
/* 028DC39C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028DC3A0 @ 0x28dc3a0
|
|
void Gambit_fn_028DC3A0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028DC3A0: ; // 0x28dc3a0
|
|
/* 028DC3A0 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028DC3A0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028DC3A4 */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 028DC3A4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028DC3A8 */ cpu->r[12] = cpu->r[11] + cpu->r[12];
|
|
/* 028DC3AC */ cpu->r[11] = 0x10110000u;
|
|
/* 028DC3B0 */ _t2 = cpu->r[11] + 0x00007399u;
|
|
/* 028DC3B0 */ cpu->r[0] = rbrew_read8(cpu->mem, _t2);
|
|
/* 028DC3B4 */ _t3 = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028DC3B4 */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[0]);
|
|
/* 028DC3B8 */ return;
|
|
}
|
|
|
|
// fn_028DC3BC @ 0x28dc3bc
|
|
void Gambit_fn_028DC3BC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028DC3BC: ; // 0x28dc3bc
|
|
/* 028DC3BC */ cpu->r[0] = cpu->lr;
|
|
/* 028DC3C0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DC3C0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DC3C0 */ cpu->r[1] = _t0;
|
|
/* 028DC3C4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DC3C4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DC3C8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028DC3C8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028DC3CC */ cpu->r[30] = cpu->r[3];
|
|
/* 028DC3CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028DC3D0 */ cpu->r[31] = cpu->r[4];
|
|
/* 028DC3D4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DC3D4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DC3D8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC3D8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DC3D8 */ if (_t5) goto L_028DC408; else goto L_028DC3DC;
|
|
L_028DC3DC: ; // 0x28dc3dc
|
|
/* 028DC3DC */ _t6 = cpu->r[30] + 0x00000000u;
|
|
/* 028DC3DC */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DC3E0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DC3E4 */ cpu->r[0] = cpu->r[0] + 0xFFFFB2C4u;
|
|
/* 028DC3E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DC3EC */ _t7 = cpu->r[30] + 0x00000004u;
|
|
/* 028DC3EC */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028DC3F0 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC3F0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028DC3F0 */ if (_t9) goto L_028DC3F8; else goto L_028DC3F4;
|
|
L_028DC3F4: ; // 0x28dc3f4
|
|
/* 028DC3F4 */ Gambit_fn_02801BB4(cpu);
|
|
L_028DC3F8: ; // 0x28dc3f8
|
|
/* 028DC3F8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DC3F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DC3FC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC3FC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DC3FC */ if (_t11) goto L_028DC408; else goto L_028DC400;
|
|
L_028DC400: ; // 0x28dc400
|
|
/* 028DC400 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DC404 */ Gambit_fn_02801BB0(cpu);
|
|
L_028DC408: ; // 0x28dc408
|
|
/* 028DC408 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028DC408 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DC40C */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028DC40C */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DC410 */ cpu->lr = cpu->r[0];
|
|
/* 028DC414 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DC414 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DC418 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DC41C */ return;
|
|
}
|
|
|
|
// fn_028DC3C0 @ 0x28dc3c0
|
|
void Gambit_fn_028DC3C0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028DC3C0: ; // 0x28dc3c0
|
|
/* 028DC3C0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DC3C0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DC3C0 */ cpu->r[1] = _t0;
|
|
/* 028DC3C4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DC3C4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DC3C8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028DC3C8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028DC3CC */ cpu->r[30] = cpu->r[3];
|
|
/* 028DC3CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028DC3D0 */ cpu->r[31] = cpu->r[4];
|
|
/* 028DC3D4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DC3D4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DC3D8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC3D8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DC3D8 */ if (_t5) goto L_028DC408; else goto L_028DC3DC;
|
|
L_028DC3DC: ; // 0x28dc3dc
|
|
/* 028DC3DC */ _t6 = cpu->r[30] + 0x00000000u;
|
|
/* 028DC3DC */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DC3E0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DC3E4 */ cpu->r[0] = cpu->r[0] + 0xFFFFB2C4u;
|
|
/* 028DC3E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DC3EC */ _t7 = cpu->r[30] + 0x00000004u;
|
|
/* 028DC3EC */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028DC3F0 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC3F0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028DC3F0 */ if (_t9) goto L_028DC3F8; else goto L_028DC3F4;
|
|
L_028DC3F4: ; // 0x28dc3f4
|
|
/* 028DC3F4 */ Gambit_fn_02801BB4(cpu);
|
|
L_028DC3F8: ; // 0x28dc3f8
|
|
/* 028DC3F8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DC3F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DC3FC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC3FC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DC3FC */ if (_t11) goto L_028DC408; else goto L_028DC400;
|
|
L_028DC400: ; // 0x28dc400
|
|
/* 028DC400 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DC404 */ Gambit_fn_02801BB0(cpu);
|
|
L_028DC408: ; // 0x28dc408
|
|
/* 028DC408 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028DC408 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DC40C */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028DC40C */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DC410 */ cpu->lr = cpu->r[0];
|
|
/* 028DC414 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DC414 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DC418 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DC41C */ return;
|
|
}
|
|
|
|
// fn_028DC420 @ 0x28dc420
|
|
void Gambit_fn_028DC420(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_028DC420: ; // 0x28dc420
|
|
/* 028DC420 */ cpu->r[0] = cpu->lr;
|
|
/* 028DC424 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028DC424 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028DC428 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DC42C */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028DC42C */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028DC42C */ cpu->r[1] = _t1;
|
|
/* 028DC430 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC430 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028DC430 */ if (_t3) goto L_028DC434; else goto L_028DC444;
|
|
L_028DC434: ; // 0x28dc434
|
|
/* 028DC434 */ cpu->r[3] = 0x00000004u;
|
|
/* 028DC438 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DC43C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DC440 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC440 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DC440 */ if (_t5) goto L_028DC450; else goto L_028DC444;
|
|
L_028DC444: ; // 0x28dc444
|
|
/* 028DC444 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DC448 */ cpu->r[0] = cpu->r[0] + 0xFFFFB384u;
|
|
/* 028DC44C */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 028DC44C */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
L_028DC450: ; // 0x28dc450
|
|
/* 028DC450 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DC450 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DC454 */ cpu->lr = cpu->r[0];
|
|
/* 028DC458 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028DC45C */ return;
|
|
}
|
|
|
|
// fn_028DC42C @ 0x28dc42c
|
|
void Gambit_fn_028DC42C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028DC42C: ; // 0x28dc42c
|
|
/* 028DC42C */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028DC42C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DC42C */ cpu->r[1] = _t0;
|
|
/* 028DC430 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC430 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028DC430 */ if (_t2) goto L_028DC434; else goto L_028DC444;
|
|
L_028DC434: ; // 0x28dc434
|
|
/* 028DC434 */ cpu->r[3] = 0x00000004u;
|
|
/* 028DC438 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DC43C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DC440 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC440 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028DC440 */ if (_t4) goto L_028DC450; else goto L_028DC444;
|
|
L_028DC444: ; // 0x28dc444
|
|
/* 028DC444 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DC448 */ cpu->r[0] = cpu->r[0] + 0xFFFFB384u;
|
|
/* 028DC44C */ _t5 = cpu->r[3] + 0x00000000u;
|
|
/* 028DC44C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
L_028DC450: ; // 0x28dc450
|
|
/* 028DC450 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DC450 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DC454 */ cpu->lr = cpu->r[0];
|
|
/* 028DC458 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028DC45C */ return;
|
|
}
|
|
|
|
// fn_028DC460 @ 0x28dc460
|
|
void Gambit_fn_028DC460(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028DC460: ; // 0x28dc460
|
|
/* 028DC460 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DC464 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC464 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DC464 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DC464 */ goto L_028DC468;
|
|
L_028DC468: ; // 0x28dc468
|
|
/* 028DC468 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DC468 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DC46C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC46C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DC46C */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DC46C */ goto L_028DC470;
|
|
L_028DC470: ; // 0x28dc470
|
|
/* 028DC470 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028DC474 @ 0x28dc474
|
|
void Gambit_fn_028DC474(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112, _t113, _t114, _t115, _t116, _t117, _t118, _t119, _t120, _t121, _t122, _t123, _t124, _t125, _t126, _t127, _t128, _t129, _t130, _t131, _t132, _t133, _t134, _t135, _t136, _t137, _t138, _t139, _t140, _t141, _t142, _t143, _t144, _t145, _t146, _t147, _t148, _t149, _t150, _t151, _t152, _t153, _t154, _t155, _t156, _t157, _t158, _t159, _t160, _t161;
|
|
|
|
L_028DC474: ; // 0x28dc474
|
|
/* 028DC474 */ _t0 = cpu->r[1] + 0xFFFFFE70u;
|
|
/* 028DC474 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DC474 */ cpu->r[1] = _t0;
|
|
/* 028DC478 */ /* nop */
|
|
/* 028DC47C */ _t1 = cpu->r[1] + 0x00000150u;
|
|
/* 028DC47C */ rbrew_write_f64(cpu->mem, _t1, cpu->f[28]);
|
|
/* 028DC480 */ _t2 = cpu->r[1] + 0x00000160u;
|
|
/* 028DC480 */ rbrew_write_f64(cpu->mem, _t2, cpu->f[29]);
|
|
/* 028DC484 */ /* nop */
|
|
/* 028DC488 */ _t3 = cpu->r[1] + 0x00000158u;
|
|
/* 028DC488 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[28]);
|
|
/* 028DC48C */ /* nop */
|
|
/* 028DC490 */ cpu->r[0] = cpu->lr;
|
|
/* 028DC494 */ _t4 = cpu->r[1] + 0x00000194u;
|
|
/* 028DC494 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DC498 */ _t5 = cpu->r[1] + 0x00000180u;
|
|
/* 028DC498 */ rbrew_write_f64(cpu->mem, _t5, cpu->f[31]);
|
|
/* 028DC49C */ _t6 = cpu->r[1] + 0x00000170u;
|
|
/* 028DC49C */ rbrew_write_f64(cpu->mem, _t6, cpu->f[30]);
|
|
/* 028DC4A0 */ /* nop */
|
|
/* 028DC4A4 */ _t7 = cpu->r[1] + 0x00000188u;
|
|
/* 028DC4A4 */ rbrew_write_f32(cpu->mem, _t7, cpu->f[31]);
|
|
/* 028DC4A8 */ /* nop */
|
|
/* 028DC4AC */ _t8 = cpu->r[1] + 0x00000178u;
|
|
/* 028DC4AC */ rbrew_write_f32(cpu->mem, _t8, cpu->f[30]);
|
|
/* 028DC4B0 */ _t9 = cpu->r[1] + 0x00000140u;
|
|
/* 028DC4B0 */ rbrew_write_f64(cpu->mem, _t9, cpu->f[27]);
|
|
/* 028DC4B4 */ _t10 = cpu->r[1] + 0x00000168u;
|
|
/* 028DC4B4 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[29]);
|
|
/* 028DC4B8 */ /* nop */
|
|
/* 028DC4BC */ _t11 = cpu->r[1] + 0x00000148u;
|
|
/* 028DC4BC */ rbrew_write_f32(cpu->mem, _t11, cpu->f[27]);
|
|
/* 028DC4C0 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028DC4C4 */ _t12 = cpu->r[12] + 0xFFFF9A84u;
|
|
/* 028DC4C4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DC4C8 */ _t13 = cpu->r[12] + 0x00000028u;
|
|
/* 028DC4C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DC4CC */ cpu->r[31] = cpu->r[4];
|
|
/* 028DC4D0 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 028DC4D0 */ rbrew_write32(cpu->mem, _t14, cpu->r[5]);
|
|
/* 028DC4D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DC4D8 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DC4D8 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028DC4DC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC4DC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DC4DC */ if (_t17) goto L_028DC4E0; else goto L_028DC524;
|
|
L_028DC4E0: ; // 0x28dc4e0
|
|
/* 028DC4E0 */ /* nop */
|
|
/* 028DC4E4 */ _t18 = cpu->r[1] + 0x00000178u;
|
|
/* 028DC4E4 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t18);
|
|
/* 028DC4E8 */ _t19 = cpu->r[1] + 0x00000168u;
|
|
/* 028DC4E8 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t19);
|
|
/* 028DC4EC */ _t20 = cpu->r[1] + 0x00000170u;
|
|
/* 028DC4EC */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t20);
|
|
/* 028DC4F0 */ _t21 = cpu->r[1] + 0x00000188u;
|
|
/* 028DC4F0 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028DC4F4 */ _t22 = cpu->r[1] + 0x00000160u;
|
|
/* 028DC4F4 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t22);
|
|
/* 028DC4F8 */ _t23 = cpu->r[1] + 0x00000180u;
|
|
/* 028DC4F8 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t23);
|
|
/* 028DC4FC */ _t24 = cpu->r[1] + 0x00000148u;
|
|
/* 028DC4FC */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 028DC500 */ _t25 = cpu->r[1] + 0x00000158u;
|
|
/* 028DC500 */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 028DC504 */ _t26 = cpu->r[1] + 0x00000140u;
|
|
/* 028DC504 */ cpu->f[27] = rbrew_read_f64(cpu->mem, _t26);
|
|
/* 028DC508 */ _t27 = cpu->r[1] + 0x00000150u;
|
|
/* 028DC508 */ cpu->f[28] = rbrew_read_f64(cpu->mem, _t27);
|
|
/* 028DC50C */ cpu->r[3] = 0x00000000u;
|
|
/* 028DC510 */ _t28 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DC510 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028DC510 */ if (_t29) goto L_028DC514; // else: addr-0 trap, fall-through
|
|
L_028DC514: ; // 0x28dc514
|
|
/* 028DC514 */ _t30 = cpu->r[1] + 0x00000194u;
|
|
/* 028DC514 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028DC518 */ cpu->lr = cpu->r[0];
|
|
/* 028DC51C */ cpu->r[1] = cpu->r[1] + 0x00000190u;
|
|
/* 028DC520 */ return;
|
|
L_028DC524: ; // 0x28dc524
|
|
/* 028DC524 */ _t31 = cpu->r[31] + 0x00000004u;
|
|
/* 028DC524 */ cpu->r[0] = rbrew_read16(cpu->mem, _t31);
|
|
/* 028DC528 */ _t32 = cpu->r[1] + 0x00000078u;
|
|
/* 028DC528 */ rbrew_write16(cpu->mem, _t32, (uint16_t)cpu->r[0]);
|
|
/* 028DC52C */ _t33 = cpu->r[1] + 0x00000078u;
|
|
/* 028DC52C */ cpu->r[6] = rbrew_read8(cpu->mem, _t33);
|
|
/* 028DC530 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x000000FFu);
|
|
/* 028DC534 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC534 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028DC534 */ if (_t35) goto L_028DC598; else goto L_028DC538;
|
|
L_028DC538: ; // 0x28dc538
|
|
/* 028DC538 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x000000FEu);
|
|
/* 028DC53C */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC53C */ _t37 = _t36 & 0x00000001u;
|
|
/* 028DC53C */ if (_t37) goto L_028DC540; else goto L_028DC598;
|
|
L_028DC540: ; // 0x28dc540
|
|
/* 028DC540 */ _t38 = cpu->r[1] + 0x00000079u;
|
|
/* 028DC540 */ cpu->r[11] = rbrew_read8(cpu->mem, _t38);
|
|
/* 028DC544 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x000000FFu);
|
|
/* 028DC548 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC548 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028DC548 */ if (_t40) goto L_028DC54C; else goto L_028DC598;
|
|
L_028DC54C: ; // 0x28dc54c
|
|
/* 028DC54C */ cpu->r[10] = 0x101F0000u;
|
|
/* 028DC550 */ _t41 = cpu->r[10] + 0x000066E4u;
|
|
/* 028DC550 */ cpu->r[6] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028DC554 */ cpu->r[10] = 0x10110000u;
|
|
/* 028DC558 */ cpu->r[10] = cpu->r[10] + 0x00007354u;
|
|
/* 028DC55C */ cpu->r[0] = rbrew_rlwinm(cpu->r[6], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028DC560 */ _t42 = cpu->r[10] + cpu->r[0];
|
|
/* 028DC560 */ cpu->r[29] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028DC564 */ cpu->ctr = cpu->r[29];
|
|
/* 028DC568 */ _t43 = cpu->r[31] + 0x00000008u;
|
|
/* 028DC568 */ cpu->r[3] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028DC56C */ cpu->r[30] = cpu->r[10] + cpu->r[0];
|
|
/* 028DC570 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC574 */ _t44 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DC574 */ cpu->r[5] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028DC578 */ cpu->ctr = cpu->r[29];
|
|
/* 028DC57C */ cpu->r[24] = cpu->r[3];
|
|
/* 028DC580 */ cpu->r[3] = cpu->r[5];
|
|
/* 028DC584 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC588 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], 0x00000000u);
|
|
/* 028DC58C */ cpu->r[25] = cpu->r[31] + cpu->r[3];
|
|
/* 028DC590 */ _t45 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DC590 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028DC590 */ if (_t46) goto L_028DC594; else goto L_028DC8C4;
|
|
L_028DC594: ; // 0x28dc594
|
|
/* 028DC594 */ goto L_028DC5E4;
|
|
L_028DC598: ; // 0x28dc598
|
|
/* 028DC598 */ cpu->r[10] = 0x101F0000u;
|
|
/* 028DC59C */ _t47 = cpu->r[10] + 0x000066E4u;
|
|
/* 028DC59C */ cpu->r[10] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028DC5A0 */ cpu->r[6] = cpu->r[10] ^ 0x00000001u;
|
|
/* 028DC5A4 */ cpu->r[10] = 0x10110000u;
|
|
/* 028DC5A8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[6], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028DC5AC */ cpu->r[10] = cpu->r[10] + 0x00007354u;
|
|
/* 028DC5B0 */ _t48 = cpu->r[10] + cpu->r[0];
|
|
/* 028DC5B0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028DC5B4 */ cpu->ctr = cpu->r[29];
|
|
/* 028DC5B8 */ _t49 = cpu->r[31] + 0x00000008u;
|
|
/* 028DC5B8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028DC5BC */ cpu->r[30] = cpu->r[10] + cpu->r[0];
|
|
/* 028DC5C0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC5C4 */ _t50 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DC5C4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028DC5C8 */ cpu->ctr = cpu->r[29];
|
|
/* 028DC5CC */ cpu->r[24] = cpu->r[3];
|
|
/* 028DC5D0 */ cpu->r[3] = cpu->r[5];
|
|
/* 028DC5D4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC5D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], 0x00000000u);
|
|
/* 028DC5DC */ cpu->r[25] = cpu->r[31] + cpu->r[3];
|
|
/* 028DC5E0 */ _t51 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DC5E0 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028DC5E0 */ if (_t52) goto L_028DC5E4; else goto L_028DC8C4;
|
|
L_028DC5E4: ; // 0x28dc5e4
|
|
/* 028DC5E4 */ cpu->r[5] = 0x10140000u;
|
|
/* 028DC5E8 */ cpu->r[4] = 0x10140000u;
|
|
/* 028DC5EC */ _t53 = cpu->r[5] + 0xFFFFB368u;
|
|
/* 028DC5EC */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t53);
|
|
/* 028DC5F0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DC5F4 */ _t54 = cpu->r[4] + 0xFFFFB364u;
|
|
/* 028DC5F4 */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t54);
|
|
/* 028DC5F8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028DC5FC */ _t55 = cpu->r[12] + 0xFFFFB374u;
|
|
/* 028DC5FC */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t55);
|
|
/* 028DC600 */ _t56 = cpu->r[30] + 0x00000000u;
|
|
/* 028DC600 */ cpu->r[29] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028DC604 */ cpu->r[26] = 0x00000000u;
|
|
/* 028DC608 */ cpu->r[10] = 0x10140000u;
|
|
/* 028DC60C */ cpu->r[27] = 0x028E0000u;
|
|
/* 028DC610 */ _t57 = cpu->r[11] + 0xFFFFB36Cu;
|
|
/* 028DC610 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t57);
|
|
/* 028DC614 */ cpu->r[28] = cpu->r[1] + 0x0000007Cu;
|
|
/* 028DC618 */ cpu->r[23] = cpu->r[1] + 0x00000038u;
|
|
/* 028DC61C */ _t58 = cpu->r[10] + 0xFFFFB370u;
|
|
/* 028DC61C */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t58);
|
|
/* 028DC620 */ cpu->r[31] = cpu->r[31] + 0x00000010u;
|
|
L_028DC624: ; // 0x28dc624
|
|
/* 028DC624 */ _t59 = cpu->r[1] + 0x00000034u;
|
|
/* 028DC624 */ rbrew_write32(cpu->mem, _t59, cpu->r[26]);
|
|
/* 028DC628 */ cpu->r[0] = 0x00000000u;
|
|
/* 028DC62C */ _t60 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028DC62C */ rbrew_write_f32(cpu->mem, _t60, cpu->f[30]);
|
|
/* 028DC630 */ _t61 = cpu->r[1] + 0x00000054u;
|
|
/* 028DC630 */ rbrew_write8(cpu->mem, _t61, (uint8_t)cpu->r[0]);
|
|
/* 028DC634 */ cpu->r[7] = cpu->r[23] + 0xFFFFFFFCu;
|
|
/* 028DC638 */ cpu->r[9] = 0x00000000u;
|
|
/* 028DC63C */ _t62 = cpu->r[1] + 0x00000058u;
|
|
/* 028DC63C */ rbrew_write32(cpu->mem, _t62, cpu->r[26]);
|
|
/* 028DC640 */ cpu->r[0] = 0x00000005u;
|
|
/* 028DC644 */ _t63 = cpu->r[1] + 0x00000055u;
|
|
/* 028DC644 */ rbrew_write8(cpu->mem, _t63, (uint8_t)cpu->r[9]);
|
|
/* 028DC648 */ cpu->ctr = cpu->r[0];
|
|
/* 028DC64C */ _t64 = cpu->r[1] + 0x00000050u;
|
|
/* 028DC64C */ rbrew_write_f32(cpu->mem, _t64, cpu->f[29]);
|
|
L_028DC650: ; // 0x28dc650
|
|
/* 028DC650 */ _t65 = cpu->r[7] + 0x00000004u;
|
|
/* 028DC650 */ rbrew_write32(cpu->mem, _t65, cpu->r[9]);
|
|
/* 028DC650 */ cpu->r[7] = _t65;
|
|
/* 028DC654 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028DC654 */ _t66 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028DC654 */ _t67 = _t66 >> (0x00000002u & 31u);
|
|
/* 028DC654 */ _t68 = _t67 & 0x00000001u;
|
|
/* 028DC654 */ if (_t68) goto L_028DC650; else goto L_028DC658;
|
|
L_028DC658: ; // 0x28dc658
|
|
/* 028DC658 */ cpu->ctr = cpu->r[29];
|
|
/* 028DC65C */ _t69 = cpu->r[31] + 0x00000000u;
|
|
/* 028DC65C */ cpu->r[3] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028DC660 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC664 */ cpu->ctr = cpu->r[29];
|
|
/* 028DC668 */ cpu->r[0] = cpu->r[25] + cpu->r[3];
|
|
/* 028DC66C */ _t70 = cpu->r[1] + 0x00000034u;
|
|
/* 028DC66C */ rbrew_write32(cpu->mem, _t70, cpu->r[0]);
|
|
/* 028DC670 */ _t71 = cpu->r[31] + 0x00000004u;
|
|
/* 028DC670 */ cpu->r[3] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028DC674 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC678 */ _t72 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028DC678 */ rbrew_write32(cpu->mem, _t72, cpu->r[3]);
|
|
/* 028DC67C */ cpu->ctr = cpu->r[29];
|
|
/* 028DC680 */ _t73 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028DC680 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t73);
|
|
/* 028DC684 */ _t74 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028DC684 */ rbrew_write_f32(cpu->mem, _t74, cpu->f[0]);
|
|
/* 028DC688 */ _t75 = cpu->r[31] + 0x00000008u;
|
|
/* 028DC688 */ cpu->r[3] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028DC68C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC690 */ cpu->r[4] = cpu->r[3] + 0xFFFFFFFFu;
|
|
/* 028DC694 */ cpu->ctr = cpu->r[29];
|
|
/* 028DC698 */ cpu->r[8] = cpu->r[3] - cpu->r[4];
|
|
/* 028DC69C */ _t76 = cpu->r[1] + 0x00000054u;
|
|
/* 028DC69C */ rbrew_write8(cpu->mem, _t76, (uint8_t)cpu->r[8]);
|
|
/* 028DC6A0 */ _t77 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DC6A0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028DC6A4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC6A8 */ cpu->r[7] = cpu->r[3] + 0xFFFFFFFFu;
|
|
/* 028DC6AC */ cpu->ctr = cpu->r[29];
|
|
/* 028DC6B0 */ cpu->r[9] = cpu->r[3] - cpu->r[7];
|
|
/* 028DC6B4 */ _t78 = cpu->r[1] + 0x00000055u;
|
|
/* 028DC6B4 */ rbrew_write8(cpu->mem, _t78, (uint8_t)cpu->r[9]);
|
|
/* 028DC6B8 */ _t79 = cpu->r[31] + 0x00000010u;
|
|
/* 028DC6B8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t79);
|
|
/* 028DC6BC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC6C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DC6C4 */ _t80 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC6C4 */ _t81 = _t80 & 0x00000001u;
|
|
/* 028DC6C4 */ if (_t81) goto L_028DC6C8; else goto L_028DC708;
|
|
L_028DC6C8: ; // 0x28dc6c8
|
|
/* 028DC6C8 */ cpu->r[0] = 0x00000000u;
|
|
/* 028DC6CC */ cpu->r[5] = 0x00000018u;
|
|
/* 028DC6D0 */ cpu->r[6] = cpu->r[27] + 0xFFFFCE1Cu;
|
|
/* 028DC6D4 */ cpu->r[3] = cpu->r[1] + 0x0000007Cu;
|
|
/* 028DC6D8 */ cpu->r[4] = 0x00000005u;
|
|
/* 028DC6DC */ _t82 = cpu->r[1] + 0x00000058u;
|
|
/* 028DC6DC */ rbrew_write32(cpu->mem, _t82, cpu->r[0]);
|
|
/* 028DC6E0 */ Gambit_fn_02C82E00(cpu);
|
|
/* 028DC6E4 */ cpu->r[17] = 0x00000005u;
|
|
/* 028DC6E8 */ cpu->r[18] = 0x00000000u;
|
|
/* 028DC6EC */ cpu->r[21] = cpu->r[1] + 0x0000006Fu;
|
|
/* 028DC6F0 */ cpu->r[20] = cpu->r[23] + 0xFFFFFFFCu;
|
|
/* 028DC6F4 */ cpu->r[22] = cpu->r[18];
|
|
/* 028DC6F8 */ _t83 = cpu->r[30] + 0x00000000u;
|
|
/* 028DC6F8 */ cpu->r[16] = rbrew_read32(cpu->mem, _t83);
|
|
/* 028DC6FC */ cpu->r[15] = cpu->r[31] + 0x00000024u;
|
|
/* 028DC700 */ cpu->r[19] = cpu->r[28] + 0xFFFFFFE8u;
|
|
/* 028DC704 */ goto L_028DC7B4;
|
|
L_028DC708: ; // 0x28dc708
|
|
/* 028DC708 */ _t84 = cpu->r[1] + 0x00000024u;
|
|
/* 028DC708 */ rbrew_write_f32(cpu->mem, _t84, cpu->f[31]);
|
|
/* 028DC70C */ cpu->ctr = cpu->r[29];
|
|
/* 028DC710 */ _t85 = cpu->r[1] + 0x00000030u;
|
|
/* 028DC710 */ rbrew_write_f32(cpu->mem, _t85, cpu->f[27]);
|
|
/* 028DC714 */ _t86 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DC714 */ rbrew_write_f32(cpu->mem, _t86, cpu->f[27]);
|
|
/* 028DC718 */ _t87 = cpu->r[1] + 0x00000028u;
|
|
/* 028DC718 */ rbrew_write_f32(cpu->mem, _t87, cpu->f[28]);
|
|
/* 028DC71C */ _t88 = cpu->r[31] + 0x00000014u;
|
|
/* 028DC71C */ cpu->r[3] = rbrew_read32(cpu->mem, _t88);
|
|
/* 028DC720 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC724 */ _t89 = cpu->r[1] + 0x00000060u;
|
|
/* 028DC724 */ rbrew_write32(cpu->mem, _t89, cpu->r[3]);
|
|
/* 028DC728 */ cpu->ctr = cpu->r[29];
|
|
/* 028DC72C */ _t90 = cpu->r[1] + 0x00000060u;
|
|
/* 028DC72C */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t90);
|
|
/* 028DC730 */ _t91 = cpu->r[1] + 0x00000024u;
|
|
/* 028DC730 */ rbrew_write_f32(cpu->mem, _t91, cpu->f[8]);
|
|
/* 028DC734 */ _t92 = cpu->r[31] + 0x00000018u;
|
|
/* 028DC734 */ cpu->r[3] = rbrew_read32(cpu->mem, _t92);
|
|
/* 028DC738 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC73C */ _t93 = cpu->r[1] + 0x00000064u;
|
|
/* 028DC73C */ rbrew_write32(cpu->mem, _t93, cpu->r[3]);
|
|
/* 028DC740 */ cpu->ctr = cpu->r[29];
|
|
/* 028DC744 */ _t94 = cpu->r[1] + 0x00000064u;
|
|
/* 028DC744 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t94);
|
|
/* 028DC748 */ _t95 = cpu->r[1] + 0x00000028u;
|
|
/* 028DC748 */ rbrew_write_f32(cpu->mem, _t95, cpu->f[10]);
|
|
/* 028DC74C */ _t96 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028DC74C */ cpu->r[3] = rbrew_read32(cpu->mem, _t96);
|
|
/* 028DC750 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC754 */ _t97 = cpu->r[1] + 0x00000068u;
|
|
/* 028DC754 */ rbrew_write32(cpu->mem, _t97, cpu->r[3]);
|
|
/* 028DC758 */ cpu->ctr = cpu->r[29];
|
|
/* 028DC75C */ _t98 = cpu->r[1] + 0x00000068u;
|
|
/* 028DC75C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t98);
|
|
/* 028DC760 */ _t99 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DC760 */ rbrew_write_f32(cpu->mem, _t99, cpu->f[12]);
|
|
/* 028DC764 */ _t100 = cpu->r[31] + 0x00000020u;
|
|
/* 028DC764 */ cpu->r[3] = rbrew_read32(cpu->mem, _t100);
|
|
/* 028DC768 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC76C */ cpu->r[0] = cpu->r[1] + 0x00000024u;
|
|
/* 028DC770 */ _t101 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028DC770 */ rbrew_write32(cpu->mem, _t101, cpu->r[3]);
|
|
/* 028DC774 */ cpu->r[3] = cpu->r[1] + 0x0000007Cu;
|
|
/* 028DC778 */ _t102 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028DC778 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t102);
|
|
/* 028DC77C */ cpu->r[6] = cpu->r[27] + 0xFFFFCE1Cu;
|
|
/* 028DC780 */ cpu->r[5] = 0x00000018u;
|
|
/* 028DC784 */ _t103 = cpu->r[1] + 0x00000058u;
|
|
/* 028DC784 */ rbrew_write32(cpu->mem, _t103, cpu->r[0]);
|
|
/* 028DC788 */ cpu->r[4] = 0x00000005u;
|
|
/* 028DC78C */ _t104 = cpu->r[1] + 0x00000030u;
|
|
/* 028DC78C */ rbrew_write_f32(cpu->mem, _t104, cpu->f[13]);
|
|
/* 028DC790 */ Gambit_fn_02C82E00(cpu);
|
|
/* 028DC794 */ cpu->r[17] = 0x00000005u;
|
|
/* 028DC798 */ cpu->r[18] = 0x00000000u;
|
|
/* 028DC79C */ _t105 = cpu->r[30] + 0x00000000u;
|
|
/* 028DC79C */ cpu->r[16] = rbrew_read32(cpu->mem, _t105);
|
|
/* 028DC7A0 */ cpu->r[21] = cpu->r[1] + 0x0000006Fu;
|
|
/* 028DC7A4 */ cpu->r[20] = cpu->r[23] + 0xFFFFFFFCu;
|
|
/* 028DC7A8 */ cpu->r[22] = cpu->r[18];
|
|
/* 028DC7AC */ cpu->r[15] = cpu->r[31] + 0x00000024u;
|
|
/* 028DC7B0 */ cpu->r[19] = cpu->r[28] + 0xFFFFFFE8u;
|
|
L_028DC7B4: ; // 0x28dc7b4
|
|
/* 028DC7B4 */ cpu->r[14] = cpu->r[15] + cpu->r[18];
|
|
/* 028DC7B8 */ cpu->ctr = cpu->r[16];
|
|
/* 028DC7BC */ _t106 = cpu->r[14] + 0x00000015u;
|
|
/* 028DC7BC */ cpu->r[5] = rbrew_read8(cpu->mem, _t106);
|
|
/* 028DC7C0 */ _t107 = cpu->r[19] + 0x00000018u;
|
|
/* 028DC7C0 */ rbrew_write32(cpu->mem, _t107, cpu->r[5]);
|
|
/* 028DC7C0 */ cpu->r[19] = _t107;
|
|
/* 028DC7C4 */ _t108 = cpu->r[14] + 0x00000000u;
|
|
/* 028DC7C4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t108);
|
|
/* 028DC7C8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC7CC */ cpu->ctr = cpu->r[16];
|
|
/* 028DC7D0 */ cpu->r[8] = cpu->r[25] + cpu->r[3];
|
|
/* 028DC7D4 */ _t109 = cpu->r[19] + 0x00000004u;
|
|
/* 028DC7D4 */ rbrew_write32(cpu->mem, _t109, cpu->r[8]);
|
|
/* 028DC7D8 */ _t110 = cpu->r[14] + 0x00000004u;
|
|
/* 028DC7D8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t110);
|
|
/* 028DC7DC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC7E0 */ _t111 = cpu->r[1] + 0x00000010u;
|
|
/* 028DC7E0 */ rbrew_write32(cpu->mem, _t111, cpu->r[3]);
|
|
/* 028DC7E4 */ cpu->ctr = cpu->r[16];
|
|
/* 028DC7E8 */ _t112 = cpu->r[1] + 0x00000010u;
|
|
/* 028DC7E8 */ cpu->f[6] = rbrew_read_f32(cpu->mem, _t112);
|
|
/* 028DC7EC */ _t113 = cpu->r[19] + 0x00000008u;
|
|
/* 028DC7EC */ rbrew_write_f32(cpu->mem, _t113, cpu->f[6]);
|
|
/* 028DC7F0 */ _t114 = cpu->r[14] + 0x00000008u;
|
|
/* 028DC7F0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t114);
|
|
/* 028DC7F4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC7F8 */ _t115 = cpu->r[1] + 0x00000014u;
|
|
/* 028DC7F8 */ rbrew_write32(cpu->mem, _t115, cpu->r[3]);
|
|
/* 028DC7FC */ cpu->ctr = cpu->r[16];
|
|
/* 028DC800 */ _t116 = cpu->r[1] + 0x00000014u;
|
|
/* 028DC800 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t116);
|
|
/* 028DC804 */ _t117 = cpu->r[19] + 0x0000000Cu;
|
|
/* 028DC804 */ rbrew_write_f32(cpu->mem, _t117, cpu->f[7]);
|
|
/* 028DC808 */ _t118 = cpu->r[14] + 0x0000000Cu;
|
|
/* 028DC808 */ cpu->r[3] = rbrew_read32(cpu->mem, _t118);
|
|
/* 028DC80C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC810 */ _t119 = cpu->r[1] + 0x00000018u;
|
|
/* 028DC810 */ rbrew_write32(cpu->mem, _t119, cpu->r[3]);
|
|
/* 028DC814 */ cpu->ctr = cpu->r[16];
|
|
/* 028DC818 */ _t120 = cpu->r[1] + 0x00000018u;
|
|
/* 028DC818 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t120);
|
|
/* 028DC81C */ _t121 = cpu->r[19] + 0x00000010u;
|
|
/* 028DC81C */ rbrew_write_f32(cpu->mem, _t121, cpu->f[9]);
|
|
/* 028DC820 */ _t122 = cpu->r[14] + 0x00000010u;
|
|
/* 028DC820 */ cpu->r[3] = rbrew_read32(cpu->mem, _t122);
|
|
/* 028DC824 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC828 */ _t123 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DC828 */ rbrew_write32(cpu->mem, _t123, cpu->r[3]);
|
|
/* 028DC82C */ _t124 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DC82C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t124);
|
|
/* 028DC830 */ _t125 = cpu->r[19] + 0x00000014u;
|
|
/* 028DC830 */ rbrew_write_f32(cpu->mem, _t125, cpu->f[11]);
|
|
/* 028DC834 */ _t126 = cpu->r[14] + 0x00000014u;
|
|
/* 028DC834 */ cpu->r[4] = rbrew_read8(cpu->mem, _t126);
|
|
/* 028DC838 */ cpu->r[0] = cpu->r[4] + 0xFFFFFFFFu;
|
|
/* 028DC83C */ cpu->r[12] = cpu->r[4] - cpu->r[0];
|
|
/* 028DC840 */ _t127 = cpu->r[21] + 0x00000001u;
|
|
/* 028DC840 */ rbrew_write8(cpu->mem, _t127, (uint8_t)cpu->r[12]);
|
|
/* 028DC840 */ cpu->r[21] = _t127;
|
|
/* 028DC844 */ _t128 = cpu->r[19] + 0x00000000u;
|
|
/* 028DC844 */ cpu->r[6] = rbrew_read32(cpu->mem, _t128);
|
|
/* 028DC848 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000003u);
|
|
/* 028DC84C */ _t129 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC84C */ _t130 = _t129 & 0x00000001u;
|
|
/* 028DC84C */ if (_t130) goto L_028DC850; else goto L_028DC85C;
|
|
L_028DC850: ; // 0x28dc850
|
|
/* 028DC850 */ _t131 = cpu->r[19] + 0x00000000u;
|
|
/* 028DC850 */ rbrew_write32(cpu->mem, _t131, cpu->r[22]);
|
|
/* 028DC854 */ _t132 = cpu->r[19] + 0x00000000u;
|
|
/* 028DC854 */ cpu->r[7] = rbrew_read32(cpu->mem, _t132);
|
|
/* 028DC858 */ _t133 = cpu->r[21] + 0x00000000u;
|
|
/* 028DC858 */ rbrew_write8(cpu->mem, _t133, (uint8_t)cpu->r[22]);
|
|
L_028DC85C: ; // 0x28dc85c
|
|
/* 028DC85C */ cpu->r[17] = cpu->r[17] + 0xFFFFFFFFu;
|
|
/* 028DC85C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[17], 0x00000000u);
|
|
/* 028DC860 */ cpu->r[18] = cpu->r[18] + 0x00000018u;
|
|
/* 028DC864 */ _t134 = cpu->r[20] + 0x00000004u;
|
|
/* 028DC864 */ rbrew_write32(cpu->mem, _t134, cpu->r[19]);
|
|
/* 028DC864 */ cpu->r[20] = _t134;
|
|
/* 028DC868 */ _t135 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC868 */ _t136 = _t135 & 0x00000001u;
|
|
/* 028DC868 */ if (_t136) goto L_028DC86C; else goto L_028DC7B4;
|
|
L_028DC86C: ; // 0x28dc86c
|
|
/* 028DC86C */ _t137 = cpu->r[1] + 0x00000008u;
|
|
/* 028DC86C */ cpu->r[5] = rbrew_read32(cpu->mem, _t137);
|
|
/* 028DC870 */ cpu->r[4] = cpu->r[1] + 0x00000034u;
|
|
/* 028DC874 */ _t138 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DC874 */ cpu->r[3] = rbrew_read32(cpu->mem, _t138);
|
|
/* 028DC878 */ Gambit_fn_028DBC80(cpu);
|
|
/* 028DC87C */ cpu->r[22] = cpu->r[3];
|
|
/* 028DC87C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], 0x00000000u);
|
|
/* 028DC880 */ _t139 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC880 */ _t140 = _t139 & 0x00000001u;
|
|
/* 028DC880 */ if (_t140) goto L_028DC8B8; else goto L_028DC884;
|
|
L_028DC884: ; // 0x28dc884
|
|
/* 028DC884 */ cpu->r[20] = cpu->r[1] + 0x0000006Fu;
|
|
/* 028DC888 */ cpu->r[19] = 0x00000005u;
|
|
/* 028DC88C */ cpu->r[21] = 0x00000000u;
|
|
L_028DC890: ; // 0x28dc890
|
|
/* 028DC890 */ _t141 = cpu->r[20] + 0x00000001u;
|
|
/* 028DC890 */ cpu->r[0] = rbrew_read8(cpu->mem, _t141);
|
|
/* 028DC890 */ cpu->r[20] = _t141;
|
|
/* 028DC894 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DC898 */ _t142 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC898 */ _t143 = _t142 & 0x00000001u;
|
|
/* 028DC898 */ if (_t143) goto L_028DC89C; else goto L_028DC8AC;
|
|
L_028DC89C: ; // 0x28dc89c
|
|
/* 028DC89C */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 028DC8A0 */ cpu->r[3] = cpu->r[22];
|
|
/* 028DC8A4 */ _t144 = cpu->r[1] + 0x00000020u;
|
|
/* 028DC8A4 */ rbrew_write32(cpu->mem, _t144, cpu->r[21]);
|
|
/* 028DC8A8 */ Gambit_fn_028DB6B8(cpu);
|
|
L_028DC8AC: ; // 0x28dc8ac
|
|
/* 028DC8AC */ cpu->r[19] = cpu->r[19] + 0xFFFFFFFFu;
|
|
/* 028DC8AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[19], 0x00000000u);
|
|
/* 028DC8B0 */ cpu->r[21] = cpu->r[21] + 0x00000001u;
|
|
/* 028DC8B4 */ _t145 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC8B4 */ _t146 = _t145 & 0x00000001u;
|
|
/* 028DC8B4 */ if (_t146) goto L_028DC8B8; else goto L_028DC890;
|
|
L_028DC8B8: ; // 0x28dc8b8
|
|
/* 028DC8B8 */ cpu->r[24] = cpu->r[24] + 0xFFFFFFFFu;
|
|
/* 028DC8B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], 0x00000000u);
|
|
/* 028DC8BC */ cpu->r[31] = cpu->r[31] + 0x0000009Cu;
|
|
/* 028DC8C0 */ _t147 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC8C0 */ _t148 = _t147 & 0x00000001u;
|
|
/* 028DC8C0 */ if (_t148) goto L_028DC8C4; else goto L_028DC624;
|
|
L_028DC8C4: ; // 0x28dc8c4
|
|
/* 028DC8C4 */ /* nop */
|
|
/* 028DC8C8 */ _t149 = cpu->r[1] + 0x00000178u;
|
|
/* 028DC8C8 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t149);
|
|
/* 028DC8CC */ _t150 = cpu->r[1] + 0x00000168u;
|
|
/* 028DC8CC */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t150);
|
|
/* 028DC8D0 */ _t151 = cpu->r[1] + 0x00000170u;
|
|
/* 028DC8D0 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t151);
|
|
/* 028DC8D4 */ _t152 = cpu->r[1] + 0x00000188u;
|
|
/* 028DC8D4 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t152);
|
|
/* 028DC8D8 */ _t153 = cpu->r[1] + 0x00000160u;
|
|
/* 028DC8D8 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t153);
|
|
/* 028DC8DC */ _t154 = cpu->r[1] + 0x00000180u;
|
|
/* 028DC8DC */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t154);
|
|
/* 028DC8E0 */ _t155 = cpu->r[1] + 0x00000148u;
|
|
/* 028DC8E0 */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t155);
|
|
/* 028DC8E4 */ _t156 = cpu->r[1] + 0x00000158u;
|
|
/* 028DC8E4 */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t156);
|
|
/* 028DC8E8 */ _t157 = cpu->r[1] + 0x00000140u;
|
|
/* 028DC8E8 */ cpu->f[27] = rbrew_read_f64(cpu->mem, _t157);
|
|
/* 028DC8EC */ _t158 = cpu->r[1] + 0x00000150u;
|
|
/* 028DC8EC */ cpu->f[28] = rbrew_read_f64(cpu->mem, _t158);
|
|
/* 028DC8F0 */ cpu->r[3] = 0x00000001u;
|
|
/* 028DC8F4 */ _t159 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DC8F4 */ _t160 = _t159 & 0x00000001u;
|
|
/* 028DC8F4 */ if (_t160) goto L_028DC8F8; // else: addr-0 trap, fall-through
|
|
L_028DC8F8: ; // 0x28dc8f8
|
|
/* 028DC8F8 */ _t161 = cpu->r[1] + 0x00000194u;
|
|
/* 028DC8F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t161);
|
|
/* 028DC8FC */ cpu->lr = cpu->r[0];
|
|
/* 028DC900 */ cpu->r[1] = cpu->r[1] + 0x00000190u;
|
|
/* 028DC904 */ return;
|
|
}
|
|
|
|
// fn_028DC908 @ 0x28dc908
|
|
void Gambit_fn_028DC908(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112, _t113, _t114, _t115, _t116, _t117, _t118, _t119, _t120, _t121, _t122, _t123, _t124, _t125, _t126, _t127, _t128, _t129, _t130, _t131, _t132, _t133, _t134, _t135, _t136, _t137, _t138, _t139, _t140, _t141, _t142, _t143, _t144, _t145, _t146, _t147, _t148, _t149, _t150, _t151, _t152, _t153, _t154, _t155, _t156, _t157, _t158, _t159, _t160, _t161, _t162, _t163, _t164, _t165, _t166, _t167, _t168, _t169, _t170, _t171, _t172, _t173, _t174, _t175, _t176, _t177, _t178, _t179, _t180, _t181, _t182, _t183, _t184, _t185, _t186, _t187, _t188, _t189, _t190;
|
|
|
|
L_028DC908: ; // 0x28dc908
|
|
/* 028DC908 */ _t0 = cpu->r[1] + 0xFFFFFE70u;
|
|
/* 028DC908 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DC908 */ cpu->r[1] = _t0;
|
|
/* 028DC90C */ /* nop */
|
|
/* 028DC910 */ _t1 = cpu->r[1] + 0x00000160u;
|
|
/* 028DC910 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[29]);
|
|
/* 028DC914 */ /* nop */
|
|
/* 028DC918 */ _t2 = cpu->r[1] + 0x00000168u;
|
|
/* 028DC918 */ rbrew_write_f32(cpu->mem, _t2, cpu->f[29]);
|
|
/* 028DC91C */ _t3 = cpu->r[1] + 0x00000170u;
|
|
/* 028DC91C */ rbrew_write_f64(cpu->mem, _t3, cpu->f[30]);
|
|
/* 028DC920 */ _t4 = cpu->r[1] + 0x00000150u;
|
|
/* 028DC920 */ rbrew_write_f64(cpu->mem, _t4, cpu->f[28]);
|
|
/* 028DC924 */ /* nop */
|
|
/* 028DC928 */ _t5 = cpu->r[1] + 0x00000178u;
|
|
/* 028DC928 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[30]);
|
|
/* 028DC92C */ /* nop */
|
|
/* 028DC930 */ _t6 = cpu->r[1] + 0x00000140u;
|
|
/* 028DC930 */ rbrew_write_f64(cpu->mem, _t6, cpu->f[27]);
|
|
/* 028DC934 */ cpu->r[0] = cpu->lr;
|
|
/* 028DC938 */ _t7 = cpu->r[1] + 0x00000194u;
|
|
/* 028DC938 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028DC93C */ /* nop */
|
|
/* 028DC940 */ _t8 = cpu->r[1] + 0x00000148u;
|
|
/* 028DC940 */ rbrew_write_f32(cpu->mem, _t8, cpu->f[27]);
|
|
/* 028DC944 */ _t9 = cpu->r[1] + 0x00000180u;
|
|
/* 028DC944 */ rbrew_write_f64(cpu->mem, _t9, cpu->f[31]);
|
|
/* 028DC948 */ _t10 = cpu->r[1] + 0x00000158u;
|
|
/* 028DC948 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[28]);
|
|
/* 028DC94C */ /* nop */
|
|
/* 028DC950 */ _t11 = cpu->r[1] + 0x00000188u;
|
|
/* 028DC950 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[31]);
|
|
/* 028DC954 */ cpu->r[11] = 0x101D0000u;
|
|
/* 028DC958 */ _t12 = cpu->r[11] + 0xFFFF9A84u;
|
|
/* 028DC958 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DC95C */ _t13 = cpu->r[11] + 0x00000028u;
|
|
/* 028DC95C */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DC960 */ cpu->r[28] = cpu->r[4];
|
|
/* 028DC964 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DC968 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DC96C */ cpu->r[30] = cpu->r[5];
|
|
/* 028DC970 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC970 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028DC970 */ if (_t15) goto L_028DCA00; else goto L_028DC974;
|
|
L_028DC974: ; // 0x28dc974
|
|
/* 028DC974 */ _t16 = cpu->r[28] + 0x00000000u;
|
|
/* 028DC974 */ cpu->r[8] = rbrew_read8(cpu->mem, _t16);
|
|
/* 028DC978 */ _t17 = cpu->r[28] + 0x00000001u;
|
|
/* 028DC978 */ cpu->r[9] = rbrew_read8(cpu->mem, _t17);
|
|
/* 028DC97C */ cpu->r[10] = rbrew_rlwinm(cpu->r[8], 0x00000018u, 0x00000000u, 0x00000007u);
|
|
/* 028DC980 */ _t18 = cpu->r[28] + 0x00000002u;
|
|
/* 028DC980 */ cpu->r[0] = rbrew_read8(cpu->mem, _t18);
|
|
/* 028DC984 */ _t19 = rbrew_rlwinm(cpu->r[9], 0x00000010u, 0x00000008u, 0x0000000Fu);
|
|
/* 028DC984 */ _t20 = cpu->r[10] & 0xFF00FFFFu;
|
|
/* 028DC984 */ cpu->r[10] = _t20 | _t19;
|
|
/* 028DC988 */ _t21 = cpu->r[28] + 0x00000003u;
|
|
/* 028DC988 */ cpu->r[4] = rbrew_read8(cpu->mem, _t21);
|
|
/* 028DC98C */ _t22 = rbrew_rlwinm(cpu->r[0], 0x00000008u, 0x00000010u, 0x00000017u);
|
|
/* 028DC98C */ _t23 = cpu->r[10] & 0xFFFF00FFu;
|
|
/* 028DC98C */ cpu->r[10] = _t23 | _t22;
|
|
/* 028DC990 */ cpu->r[0] = 0x44520000u;
|
|
/* 028DC994 */ cpu->r[12] = cpu->r[10] | cpu->r[4];
|
|
/* 028DC998 */ cpu->r[0] = cpu->r[0] | 0x00004353u;
|
|
/* 028DC99C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028DC9A0 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC9A0 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028DC9A0 */ if (_t25) goto L_028DC9A4; else goto L_028DCA00;
|
|
L_028DC9A4: ; // 0x28dc9a4
|
|
/* 028DC9A4 */ _t26 = cpu->r[28] + 0x00000004u;
|
|
/* 028DC9A4 */ cpu->r[0] = rbrew_read16(cpu->mem, _t26);
|
|
/* 028DC9A8 */ _t27 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028DC9A8 */ rbrew_write16(cpu->mem, _t27, (uint16_t)cpu->r[0]);
|
|
/* 028DC9AC */ _t28 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028DC9AC */ cpu->r[0] = rbrew_read8(cpu->mem, _t28);
|
|
/* 028DC9B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x000000FFu);
|
|
/* 028DC9B4 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC9B4 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028DC9B4 */ if (_t30) goto L_028DCA00; else goto L_028DC9B8;
|
|
L_028DC9B8: ; // 0x28dc9b8
|
|
/* 028DC9B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x000000FEu);
|
|
/* 028DC9BC */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC9BC */ _t32 = _t31 & 0x00000001u;
|
|
/* 028DC9BC */ if (_t32) goto L_028DC9C0; else goto L_028DCA00;
|
|
L_028DC9C0: ; // 0x28dc9c0
|
|
/* 028DC9C0 */ _t33 = cpu->r[1] + 0x0000007Du;
|
|
/* 028DC9C0 */ cpu->r[0] = rbrew_read8(cpu->mem, _t33);
|
|
/* 028DC9C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x000000FFu);
|
|
/* 028DC9C8 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DC9C8 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028DC9C8 */ if (_t35) goto L_028DC9CC; else goto L_028DCA00;
|
|
L_028DC9CC: ; // 0x28dc9cc
|
|
/* 028DC9CC */ cpu->r[12] = 0x101F0000u;
|
|
/* 028DC9D0 */ cpu->r[27] = 0x10110000u;
|
|
/* 028DC9D4 */ _t36 = cpu->r[12] + 0x000066E4u;
|
|
/* 028DC9D4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028DC9D8 */ cpu->r[27] = cpu->r[27] + 0x00007344u;
|
|
/* 028DC9DC */ cpu->r[26] = rbrew_rlwinm(cpu->r[12], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028DC9E0 */ cpu->r[8] = cpu->r[27] + cpu->r[26];
|
|
/* 028DC9E4 */ _t37 = cpu->r[8] + 0x00000008u;
|
|
/* 028DC9E4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028DC9E8 */ cpu->ctr = cpu->r[11];
|
|
/* 028DC9EC */ _t38 = cpu->r[28] + 0x00000006u;
|
|
/* 028DC9EC */ cpu->r[3] = rbrew_read16(cpu->mem, _t38);
|
|
/* 028DC9F0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DC9F4 */ cpu->r[10] = cpu->r[3] + 0xFFFFFFFBu;
|
|
/* 028DC9F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], 0x00000002u);
|
|
/* 028DC9FC */ _t39 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DC9FC */ _t40 = _t39 & 0x00000001u;
|
|
/* 028DC9FC */ if (_t40) goto L_028DCA44; else goto L_028DCA00;
|
|
L_028DCA00: ; // 0x28dca00
|
|
/* 028DCA00 */ /* nop */
|
|
/* 028DCA04 */ _t41 = cpu->r[1] + 0x00000178u;
|
|
/* 028DCA04 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t41);
|
|
/* 028DCA08 */ _t42 = cpu->r[1] + 0x00000168u;
|
|
/* 028DCA08 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t42);
|
|
/* 028DCA0C */ _t43 = cpu->r[1] + 0x00000170u;
|
|
/* 028DCA0C */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t43);
|
|
/* 028DCA10 */ _t44 = cpu->r[1] + 0x00000188u;
|
|
/* 028DCA10 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t44);
|
|
/* 028DCA14 */ _t45 = cpu->r[1] + 0x00000160u;
|
|
/* 028DCA14 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t45);
|
|
/* 028DCA18 */ _t46 = cpu->r[1] + 0x00000180u;
|
|
/* 028DCA18 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t46);
|
|
/* 028DCA1C */ _t47 = cpu->r[1] + 0x00000148u;
|
|
/* 028DCA1C */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t47);
|
|
/* 028DCA20 */ _t48 = cpu->r[1] + 0x00000158u;
|
|
/* 028DCA20 */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t48);
|
|
/* 028DCA24 */ _t49 = cpu->r[1] + 0x00000140u;
|
|
/* 028DCA24 */ cpu->f[27] = rbrew_read_f64(cpu->mem, _t49);
|
|
/* 028DCA28 */ _t50 = cpu->r[1] + 0x00000150u;
|
|
/* 028DCA28 */ cpu->f[28] = rbrew_read_f64(cpu->mem, _t50);
|
|
/* 028DCA2C */ cpu->r[3] = 0x00000000u;
|
|
/* 028DCA30 */ _t51 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DCA30 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028DCA30 */ if (_t52) goto L_028DCA34; // else: addr-0 trap, fall-through
|
|
L_028DCA34: ; // 0x28dca34
|
|
/* 028DCA34 */ _t53 = cpu->r[1] + 0x00000194u;
|
|
/* 028DCA34 */ cpu->r[0] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028DCA38 */ cpu->lr = cpu->r[0];
|
|
/* 028DCA3C */ cpu->r[1] = cpu->r[1] + 0x00000190u;
|
|
/* 028DCA40 */ return;
|
|
L_028DCA44: ; // 0x28dca44
|
|
/* 028DCA44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000006u);
|
|
/* 028DCA48 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCA48 */ _t55 = _t54 & 0x00000001u;
|
|
/* 028DCA48 */ if (_t55) goto L_028DCA9C; else goto L_028DCA4C;
|
|
L_028DCA4C: ; // 0x28dca4c
|
|
/* 028DCA4C */ cpu->r[5] = cpu->r[30];
|
|
/* 028DCA50 */ cpu->r[4] = cpu->r[28];
|
|
/* 028DCA54 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DCA58 */ Gambit_fn_028DC474(cpu);
|
|
/* 028DCA5C */ /* nop */
|
|
/* 028DCA60 */ _t56 = cpu->r[1] + 0x00000158u;
|
|
/* 028DCA60 */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t56);
|
|
/* 028DCA64 */ _t57 = cpu->r[1] + 0x00000178u;
|
|
/* 028DCA64 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t57);
|
|
/* 028DCA68 */ _t58 = cpu->r[1] + 0x00000150u;
|
|
/* 028DCA68 */ cpu->f[28] = rbrew_read_f64(cpu->mem, _t58);
|
|
/* 028DCA6C */ _t59 = cpu->r[1] + 0x00000168u;
|
|
/* 028DCA6C */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t59);
|
|
/* 028DCA70 */ _t60 = cpu->r[1] + 0x00000170u;
|
|
/* 028DCA70 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t60);
|
|
/* 028DCA74 */ _t61 = cpu->r[1] + 0x00000160u;
|
|
/* 028DCA74 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t61);
|
|
/* 028DCA78 */ _t62 = cpu->r[1] + 0x00000148u;
|
|
/* 028DCA78 */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t62);
|
|
/* 028DCA7C */ _t63 = cpu->r[1] + 0x00000188u;
|
|
/* 028DCA7C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t63);
|
|
/* 028DCA80 */ _t64 = cpu->r[1] + 0x00000140u;
|
|
/* 028DCA80 */ cpu->f[27] = rbrew_read_f64(cpu->mem, _t64);
|
|
/* 028DCA84 */ _t65 = cpu->r[1] + 0x00000180u;
|
|
/* 028DCA84 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t65);
|
|
/* 028DCA88 */ _t66 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DCA88 */ _t67 = _t66 & 0x00000001u;
|
|
/* 028DCA88 */ if (_t67) goto L_028DCA8C; // else: addr-0 trap, fall-through
|
|
L_028DCA8C: ; // 0x28dca8c
|
|
/* 028DCA8C */ _t68 = cpu->r[1] + 0x00000194u;
|
|
/* 028DCA8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028DCA90 */ cpu->lr = cpu->r[0];
|
|
/* 028DCA94 */ cpu->r[1] = cpu->r[1] + 0x00000190u;
|
|
/* 028DCA98 */ return;
|
|
L_028DCA9C: ; // 0x28dca9c
|
|
/* 028DCA9C */ cpu->r[31] = cpu->r[27] + cpu->r[26];
|
|
/* 028DCAA0 */ _t69 = cpu->r[31] + 0x00000010u;
|
|
/* 028DCAA0 */ cpu->r[27] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028DCAA0 */ cpu->r[31] = _t69;
|
|
/* 028DCAA4 */ _t70 = cpu->r[28] + 0x00000008u;
|
|
/* 028DCAA4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028DCAA8 */ cpu->ctr = cpu->r[27];
|
|
/* 028DCAAC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DCAB0 */ cpu->ctr = cpu->r[27];
|
|
/* 028DCAB4 */ cpu->r[26] = cpu->r[3];
|
|
/* 028DCAB8 */ _t71 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028DCAB8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028DCABC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DCAC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028DCAC4 */ cpu->r[25] = cpu->r[28] + cpu->r[3];
|
|
/* 028DCAC8 */ _t72 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DCAC8 */ _t73 = _t72 & 0x00000001u;
|
|
/* 028DCAC8 */ if (_t73) goto L_028DCACC; else goto L_028DCDD8;
|
|
L_028DCACC: ; // 0x28dcacc
|
|
/* 028DCACC */ cpu->r[12] = 0x10140000u;
|
|
/* 028DCAD0 */ cpu->r[0] = 0x028E0000u;
|
|
/* 028DCAD4 */ cpu->r[9] = 0x10140000u;
|
|
/* 028DCAD8 */ _t74 = cpu->r[12] + 0xFFFFB368u;
|
|
/* 028DCAD8 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t74);
|
|
/* 028DCADC */ cpu->r[0] = cpu->r[0] + 0xFFFFCE1Cu;
|
|
/* 028DCAE0 */ _t75 = cpu->r[9] + 0xFFFFB364u;
|
|
/* 028DCAE0 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t75);
|
|
/* 028DCAE4 */ cpu->r[7] = 0x10140000u;
|
|
/* 028DCAE8 */ _t76 = cpu->r[1] + 0x00000008u;
|
|
/* 028DCAE8 */ rbrew_write32(cpu->mem, _t76, cpu->r[0]);
|
|
/* 028DCAEC */ cpu->r[24] = cpu->r[1] + 0x00000038u;
|
|
/* 028DCAF0 */ _t77 = cpu->r[31] + 0x00000000u;
|
|
/* 028DCAF0 */ cpu->r[23] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028DCAF4 */ cpu->r[5] = 0x10140000u;
|
|
/* 028DCAF8 */ _t78 = cpu->r[7] + 0xFFFFB374u;
|
|
/* 028DCAF8 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t78);
|
|
/* 028DCAFC */ cpu->r[6] = 0x10140000u;
|
|
/* 028DCB00 */ _t79 = cpu->r[5] + 0xFFFFB370u;
|
|
/* 028DCB00 */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t79);
|
|
/* 028DCB04 */ cpu->r[0] = cpu->r[1] + 0x00000080u;
|
|
/* 028DCB08 */ _t80 = cpu->r[6] + 0xFFFFB36Cu;
|
|
/* 028DCB08 */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t80);
|
|
/* 028DCB0C */ cpu->r[28] = cpu->r[28] + 0x00000010u;
|
|
/* 028DCB10 */ cpu->r[27] = 0x00000000u;
|
|
/* 028DCB14 */ _t81 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DCB14 */ rbrew_write32(cpu->mem, _t81, cpu->r[0]);
|
|
L_028DCB18: ; // 0x28dcb18
|
|
/* 028DCB18 */ _t82 = cpu->r[1] + 0x00000034u;
|
|
/* 028DCB18 */ rbrew_write32(cpu->mem, _t82, cpu->r[27]);
|
|
/* 028DCB1C */ cpu->r[0] = 0x00000000u;
|
|
/* 028DCB20 */ _t83 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028DCB20 */ rbrew_write_f32(cpu->mem, _t83, cpu->f[27]);
|
|
/* 028DCB24 */ _t84 = cpu->r[1] + 0x00000054u;
|
|
/* 028DCB24 */ rbrew_write8(cpu->mem, _t84, (uint8_t)cpu->r[0]);
|
|
/* 028DCB28 */ cpu->r[5] = cpu->r[24] + 0xFFFFFFFCu;
|
|
/* 028DCB2C */ cpu->r[6] = 0x00000000u;
|
|
/* 028DCB30 */ _t85 = cpu->r[1] + 0x00000058u;
|
|
/* 028DCB30 */ rbrew_write32(cpu->mem, _t85, cpu->r[27]);
|
|
/* 028DCB34 */ cpu->r[0] = 0x00000005u;
|
|
/* 028DCB38 */ _t86 = cpu->r[1] + 0x00000055u;
|
|
/* 028DCB38 */ rbrew_write8(cpu->mem, _t86, (uint8_t)cpu->r[6]);
|
|
/* 028DCB3C */ cpu->ctr = cpu->r[0];
|
|
/* 028DCB40 */ _t87 = cpu->r[1] + 0x00000050u;
|
|
/* 028DCB40 */ rbrew_write_f32(cpu->mem, _t87, cpu->f[31]);
|
|
L_028DCB44: ; // 0x28dcb44
|
|
/* 028DCB44 */ _t88 = cpu->r[5] + 0x00000004u;
|
|
/* 028DCB44 */ rbrew_write32(cpu->mem, _t88, cpu->r[6]);
|
|
/* 028DCB44 */ cpu->r[5] = _t88;
|
|
/* 028DCB48 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028DCB48 */ _t89 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028DCB48 */ _t90 = _t89 >> (0x00000002u & 31u);
|
|
/* 028DCB48 */ _t91 = _t90 & 0x00000001u;
|
|
/* 028DCB48 */ if (_t91) goto L_028DCB44; else goto L_028DCB4C;
|
|
L_028DCB4C: ; // 0x28dcb4c
|
|
/* 028DCB4C */ cpu->ctr = cpu->r[23];
|
|
/* 028DCB50 */ _t92 = cpu->r[28] + 0x00000000u;
|
|
/* 028DCB50 */ cpu->r[3] = rbrew_read32(cpu->mem, _t92);
|
|
/* 028DCB54 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DCB58 */ cpu->ctr = cpu->r[23];
|
|
/* 028DCB5C */ cpu->r[7] = cpu->r[25] + cpu->r[3];
|
|
/* 028DCB60 */ _t93 = cpu->r[1] + 0x00000034u;
|
|
/* 028DCB60 */ rbrew_write32(cpu->mem, _t93, cpu->r[7]);
|
|
/* 028DCB64 */ _t94 = cpu->r[28] + 0x00000004u;
|
|
/* 028DCB64 */ cpu->r[3] = rbrew_read32(cpu->mem, _t94);
|
|
/* 028DCB68 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DCB6C */ _t95 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028DCB6C */ rbrew_write32(cpu->mem, _t95, cpu->r[3]);
|
|
/* 028DCB70 */ cpu->ctr = cpu->r[23];
|
|
/* 028DCB74 */ _t96 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028DCB74 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t96);
|
|
/* 028DCB78 */ _t97 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028DCB78 */ rbrew_write_f32(cpu->mem, _t97, cpu->f[12]);
|
|
/* 028DCB7C */ _t98 = cpu->r[28] + 0x00000008u;
|
|
/* 028DCB7C */ cpu->r[3] = rbrew_read32(cpu->mem, _t98);
|
|
/* 028DCB80 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DCB84 */ _t99 = cpu->r[1] + 0x00000060u;
|
|
/* 028DCB84 */ rbrew_write32(cpu->mem, _t99, cpu->r[3]);
|
|
/* 028DCB88 */ cpu->ctr = cpu->r[23];
|
|
/* 028DCB8C */ _t100 = cpu->r[1] + 0x00000060u;
|
|
/* 028DCB8C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t100);
|
|
/* 028DCB90 */ _t101 = cpu->r[1] + 0x00000050u;
|
|
/* 028DCB90 */ rbrew_write_f32(cpu->mem, _t101, cpu->f[13]);
|
|
/* 028DCB94 */ _t102 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028DCB94 */ cpu->r[3] = rbrew_read32(cpu->mem, _t102);
|
|
/* 028DCB98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DCB9C */ cpu->r[8] = cpu->r[3] + 0xFFFFFFFFu;
|
|
/* 028DCBA0 */ cpu->ctr = cpu->r[23];
|
|
/* 028DCBA4 */ cpu->r[10] = cpu->r[3] - cpu->r[8];
|
|
/* 028DCBA8 */ _t103 = cpu->r[1] + 0x00000054u;
|
|
/* 028DCBA8 */ rbrew_write8(cpu->mem, _t103, (uint8_t)cpu->r[10]);
|
|
/* 028DCBAC */ _t104 = cpu->r[28] + 0x00000010u;
|
|
/* 028DCBAC */ cpu->r[3] = rbrew_read32(cpu->mem, _t104);
|
|
/* 028DCBB0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DCBB4 */ cpu->r[0] = cpu->r[3] + 0xFFFFFFFFu;
|
|
/* 028DCBB8 */ cpu->ctr = cpu->r[23];
|
|
/* 028DCBBC */ cpu->r[9] = cpu->r[3] - cpu->r[0];
|
|
/* 028DCBC0 */ _t105 = cpu->r[1] + 0x00000055u;
|
|
/* 028DCBC0 */ rbrew_write8(cpu->mem, _t105, (uint8_t)cpu->r[9]);
|
|
/* 028DCBC4 */ _t106 = cpu->r[28] + 0x00000014u;
|
|
/* 028DCBC4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t106);
|
|
/* 028DCBC8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DCBCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DCBD0 */ _t107 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCBD0 */ _t108 = _t107 & 0x00000001u;
|
|
/* 028DCBD0 */ if (_t108) goto L_028DCBD4; else goto L_028DCC18;
|
|
L_028DCBD4: ; // 0x28dcbd4
|
|
/* 028DCBD4 */ cpu->r[0] = 0x00000000u;
|
|
/* 028DCBD8 */ cpu->r[5] = 0x00000018u;
|
|
/* 028DCBDC */ _t109 = cpu->r[1] + 0x00000008u;
|
|
/* 028DCBDC */ cpu->r[6] = rbrew_read32(cpu->mem, _t109);
|
|
/* 028DCBE0 */ cpu->r[4] = 0x00000005u;
|
|
/* 028DCBE4 */ cpu->r[3] = cpu->r[1] + 0x00000080u;
|
|
/* 028DCBE8 */ _t110 = cpu->r[1] + 0x00000058u;
|
|
/* 028DCBE8 */ rbrew_write32(cpu->mem, _t110, cpu->r[0]);
|
|
/* 028DCBEC */ Gambit_fn_02C82E00(cpu);
|
|
/* 028DCBF0 */ cpu->r[17] = 0x00000005u;
|
|
/* 028DCBF4 */ cpu->r[18] = 0x00000000u;
|
|
/* 028DCBF8 */ cpu->r[21] = cpu->r[1] + 0x00000073u;
|
|
/* 028DCBFC */ _t111 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DCBFC */ cpu->r[19] = rbrew_read32(cpu->mem, _t111);
|
|
/* 028DCC00 */ cpu->r[15] = cpu->r[28] + 0x00000028u;
|
|
/* 028DCC04 */ cpu->r[20] = cpu->r[24] + 0xFFFFFFFCu;
|
|
/* 028DCC08 */ _t112 = cpu->r[31] + 0x00000000u;
|
|
/* 028DCC08 */ cpu->r[16] = rbrew_read32(cpu->mem, _t112);
|
|
/* 028DCC0C */ cpu->r[22] = cpu->r[18];
|
|
/* 028DCC10 */ cpu->r[19] = cpu->r[19] + 0xFFFFFFE8u;
|
|
/* 028DCC14 */ goto L_028DCCC8;
|
|
L_028DCC18: ; // 0x28dcc18
|
|
/* 028DCC18 */ _t113 = cpu->r[1] + 0x00000024u;
|
|
/* 028DCC18 */ rbrew_write_f32(cpu->mem, _t113, cpu->f[29]);
|
|
/* 028DCC1C */ cpu->ctr = cpu->r[23];
|
|
/* 028DCC20 */ _t114 = cpu->r[1] + 0x00000028u;
|
|
/* 028DCC20 */ rbrew_write_f32(cpu->mem, _t114, cpu->f[28]);
|
|
/* 028DCC24 */ _t115 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DCC24 */ rbrew_write_f32(cpu->mem, _t115, cpu->f[30]);
|
|
/* 028DCC28 */ _t116 = cpu->r[1] + 0x00000030u;
|
|
/* 028DCC28 */ rbrew_write_f32(cpu->mem, _t116, cpu->f[30]);
|
|
/* 028DCC2C */ _t117 = cpu->r[28] + 0x00000018u;
|
|
/* 028DCC2C */ cpu->r[3] = rbrew_read32(cpu->mem, _t117);
|
|
/* 028DCC30 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DCC34 */ _t118 = cpu->r[1] + 0x00000064u;
|
|
/* 028DCC34 */ rbrew_write32(cpu->mem, _t118, cpu->r[3]);
|
|
/* 028DCC38 */ cpu->ctr = cpu->r[23];
|
|
/* 028DCC3C */ _t119 = cpu->r[1] + 0x00000064u;
|
|
/* 028DCC3C */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t119);
|
|
/* 028DCC40 */ _t120 = cpu->r[1] + 0x00000024u;
|
|
/* 028DCC40 */ rbrew_write_f32(cpu->mem, _t120, cpu->f[8]);
|
|
/* 028DCC44 */ _t121 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028DCC44 */ cpu->r[3] = rbrew_read32(cpu->mem, _t121);
|
|
/* 028DCC48 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DCC4C */ _t122 = cpu->r[1] + 0x00000068u;
|
|
/* 028DCC4C */ rbrew_write32(cpu->mem, _t122, cpu->r[3]);
|
|
/* 028DCC50 */ cpu->ctr = cpu->r[23];
|
|
/* 028DCC54 */ _t123 = cpu->r[1] + 0x00000068u;
|
|
/* 028DCC54 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t123);
|
|
/* 028DCC58 */ _t124 = cpu->r[1] + 0x00000028u;
|
|
/* 028DCC58 */ rbrew_write_f32(cpu->mem, _t124, cpu->f[9]);
|
|
/* 028DCC5C */ _t125 = cpu->r[28] + 0x00000020u;
|
|
/* 028DCC5C */ cpu->r[3] = rbrew_read32(cpu->mem, _t125);
|
|
/* 028DCC60 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DCC64 */ _t126 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028DCC64 */ rbrew_write32(cpu->mem, _t126, cpu->r[3]);
|
|
/* 028DCC68 */ cpu->ctr = cpu->r[23];
|
|
/* 028DCC6C */ _t127 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028DCC6C */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t127);
|
|
/* 028DCC70 */ _t128 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DCC70 */ rbrew_write_f32(cpu->mem, _t128, cpu->f[10]);
|
|
/* 028DCC74 */ _t129 = cpu->r[28] + 0x00000024u;
|
|
/* 028DCC74 */ cpu->r[3] = rbrew_read32(cpu->mem, _t129);
|
|
/* 028DCC78 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DCC7C */ _t130 = cpu->r[1] + 0x00000070u;
|
|
/* 028DCC7C */ rbrew_write32(cpu->mem, _t130, cpu->r[3]);
|
|
/* 028DCC80 */ _t131 = cpu->r[1] + 0x00000070u;
|
|
/* 028DCC80 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t131);
|
|
/* 028DCC84 */ cpu->r[0] = cpu->r[1] + 0x00000024u;
|
|
/* 028DCC88 */ _t132 = cpu->r[1] + 0x00000008u;
|
|
/* 028DCC88 */ cpu->r[6] = rbrew_read32(cpu->mem, _t132);
|
|
/* 028DCC8C */ cpu->r[3] = cpu->r[1] + 0x00000080u;
|
|
/* 028DCC90 */ cpu->r[4] = 0x00000005u;
|
|
/* 028DCC94 */ _t133 = cpu->r[1] + 0x00000058u;
|
|
/* 028DCC94 */ rbrew_write32(cpu->mem, _t133, cpu->r[0]);
|
|
/* 028DCC98 */ cpu->r[5] = 0x00000018u;
|
|
/* 028DCC9C */ _t134 = cpu->r[1] + 0x00000030u;
|
|
/* 028DCC9C */ rbrew_write_f32(cpu->mem, _t134, cpu->f[11]);
|
|
/* 028DCCA0 */ Gambit_fn_02C82E00(cpu);
|
|
/* 028DCCA4 */ cpu->r[18] = 0x00000000u;
|
|
/* 028DCCA8 */ cpu->r[15] = cpu->r[28] + 0x00000028u;
|
|
/* 028DCCAC */ _t135 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DCCAC */ cpu->r[19] = rbrew_read32(cpu->mem, _t135);
|
|
/* 028DCCB0 */ cpu->r[17] = 0x00000005u;
|
|
/* 028DCCB4 */ cpu->r[21] = cpu->r[1] + 0x00000073u;
|
|
/* 028DCCB8 */ _t136 = cpu->r[31] + 0x00000000u;
|
|
/* 028DCCB8 */ cpu->r[16] = rbrew_read32(cpu->mem, _t136);
|
|
/* 028DCCBC */ cpu->r[20] = cpu->r[24] + 0xFFFFFFFCu;
|
|
/* 028DCCC0 */ cpu->r[22] = cpu->r[18];
|
|
/* 028DCCC4 */ cpu->r[19] = cpu->r[19] + 0xFFFFFFE8u;
|
|
L_028DCCC8: ; // 0x28dccc8
|
|
/* 028DCCC8 */ cpu->r[14] = cpu->r[15] + cpu->r[18];
|
|
/* 028DCCCC */ cpu->ctr = cpu->r[16];
|
|
/* 028DCCD0 */ _t137 = cpu->r[14] + 0x00000015u;
|
|
/* 028DCCD0 */ cpu->r[10] = rbrew_read8(cpu->mem, _t137);
|
|
/* 028DCCD4 */ _t138 = cpu->r[19] + 0x00000018u;
|
|
/* 028DCCD4 */ rbrew_write32(cpu->mem, _t138, cpu->r[10]);
|
|
/* 028DCCD4 */ cpu->r[19] = _t138;
|
|
/* 028DCCD8 */ _t139 = cpu->r[14] + 0x00000000u;
|
|
/* 028DCCD8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t139);
|
|
/* 028DCCDC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DCCE0 */ cpu->ctr = cpu->r[16];
|
|
/* 028DCCE4 */ cpu->r[11] = cpu->r[25] + cpu->r[3];
|
|
/* 028DCCE8 */ _t140 = cpu->r[19] + 0x00000004u;
|
|
/* 028DCCE8 */ rbrew_write32(cpu->mem, _t140, cpu->r[11]);
|
|
/* 028DCCEC */ _t141 = cpu->r[14] + 0x00000004u;
|
|
/* 028DCCEC */ cpu->r[3] = rbrew_read32(cpu->mem, _t141);
|
|
/* 028DCCF0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DCCF4 */ _t142 = cpu->r[1] + 0x00000010u;
|
|
/* 028DCCF4 */ rbrew_write32(cpu->mem, _t142, cpu->r[3]);
|
|
/* 028DCCF8 */ cpu->ctr = cpu->r[16];
|
|
/* 028DCCFC */ _t143 = cpu->r[1] + 0x00000010u;
|
|
/* 028DCCFC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t143);
|
|
/* 028DCD00 */ _t144 = cpu->r[19] + 0x00000008u;
|
|
/* 028DCD00 */ rbrew_write_f32(cpu->mem, _t144, cpu->f[0]);
|
|
/* 028DCD04 */ _t145 = cpu->r[14] + 0x00000008u;
|
|
/* 028DCD04 */ cpu->r[3] = rbrew_read32(cpu->mem, _t145);
|
|
/* 028DCD08 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DCD0C */ _t146 = cpu->r[1] + 0x00000014u;
|
|
/* 028DCD0C */ rbrew_write32(cpu->mem, _t146, cpu->r[3]);
|
|
/* 028DCD10 */ cpu->ctr = cpu->r[16];
|
|
/* 028DCD14 */ _t147 = cpu->r[1] + 0x00000014u;
|
|
/* 028DCD14 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t147);
|
|
/* 028DCD18 */ _t148 = cpu->r[19] + 0x0000000Cu;
|
|
/* 028DCD18 */ rbrew_write_f32(cpu->mem, _t148, cpu->f[0]);
|
|
/* 028DCD1C */ _t149 = cpu->r[14] + 0x0000000Cu;
|
|
/* 028DCD1C */ cpu->r[3] = rbrew_read32(cpu->mem, _t149);
|
|
/* 028DCD20 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DCD24 */ _t150 = cpu->r[1] + 0x00000018u;
|
|
/* 028DCD24 */ rbrew_write32(cpu->mem, _t150, cpu->r[3]);
|
|
/* 028DCD28 */ cpu->ctr = cpu->r[16];
|
|
/* 028DCD2C */ _t151 = cpu->r[1] + 0x00000018u;
|
|
/* 028DCD2C */ cpu->f[6] = rbrew_read_f32(cpu->mem, _t151);
|
|
/* 028DCD30 */ _t152 = cpu->r[19] + 0x00000010u;
|
|
/* 028DCD30 */ rbrew_write_f32(cpu->mem, _t152, cpu->f[6]);
|
|
/* 028DCD34 */ _t153 = cpu->r[14] + 0x00000010u;
|
|
/* 028DCD34 */ cpu->r[3] = rbrew_read32(cpu->mem, _t153);
|
|
/* 028DCD38 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DCD3C */ _t154 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DCD3C */ rbrew_write32(cpu->mem, _t154, cpu->r[3]);
|
|
/* 028DCD40 */ _t155 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DCD40 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t155);
|
|
/* 028DCD44 */ _t156 = cpu->r[19] + 0x00000014u;
|
|
/* 028DCD44 */ rbrew_write_f32(cpu->mem, _t156, cpu->f[7]);
|
|
/* 028DCD48 */ _t157 = cpu->r[14] + 0x00000014u;
|
|
/* 028DCD48 */ cpu->r[4] = rbrew_read8(cpu->mem, _t157);
|
|
/* 028DCD4C */ cpu->r[5] = cpu->r[4] + 0xFFFFFFFFu;
|
|
/* 028DCD50 */ cpu->r[12] = cpu->r[4] - cpu->r[5];
|
|
/* 028DCD54 */ _t158 = cpu->r[21] + 0x00000001u;
|
|
/* 028DCD54 */ rbrew_write8(cpu->mem, _t158, (uint8_t)cpu->r[12]);
|
|
/* 028DCD54 */ cpu->r[21] = _t158;
|
|
/* 028DCD58 */ _t159 = cpu->r[19] + 0x00000000u;
|
|
/* 028DCD58 */ cpu->r[6] = rbrew_read32(cpu->mem, _t159);
|
|
/* 028DCD5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000003u);
|
|
/* 028DCD60 */ _t160 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCD60 */ _t161 = _t160 & 0x00000001u;
|
|
/* 028DCD60 */ if (_t161) goto L_028DCD64; else goto L_028DCD70;
|
|
L_028DCD64: ; // 0x28dcd64
|
|
/* 028DCD64 */ _t162 = cpu->r[19] + 0x00000000u;
|
|
/* 028DCD64 */ rbrew_write32(cpu->mem, _t162, cpu->r[22]);
|
|
/* 028DCD68 */ _t163 = cpu->r[19] + 0x00000000u;
|
|
/* 028DCD68 */ cpu->r[7] = rbrew_read32(cpu->mem, _t163);
|
|
/* 028DCD6C */ _t164 = cpu->r[21] + 0x00000000u;
|
|
/* 028DCD6C */ rbrew_write8(cpu->mem, _t164, (uint8_t)cpu->r[22]);
|
|
L_028DCD70: ; // 0x28dcd70
|
|
/* 028DCD70 */ cpu->r[17] = cpu->r[17] + 0xFFFFFFFFu;
|
|
/* 028DCD70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[17], 0x00000000u);
|
|
/* 028DCD74 */ cpu->r[18] = cpu->r[18] + 0x00000018u;
|
|
/* 028DCD78 */ _t165 = cpu->r[20] + 0x00000004u;
|
|
/* 028DCD78 */ rbrew_write32(cpu->mem, _t165, cpu->r[19]);
|
|
/* 028DCD78 */ cpu->r[20] = _t165;
|
|
/* 028DCD7C */ _t166 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCD7C */ _t167 = _t166 & 0x00000001u;
|
|
/* 028DCD7C */ if (_t167) goto L_028DCD80; else goto L_028DCCC8;
|
|
L_028DCD80: ; // 0x28dcd80
|
|
/* 028DCD80 */ cpu->r[4] = cpu->r[1] + 0x00000034u;
|
|
/* 028DCD84 */ cpu->r[5] = cpu->r[30];
|
|
/* 028DCD88 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DCD8C */ Gambit_fn_028DBC80(cpu);
|
|
/* 028DCD90 */ cpu->r[19] = cpu->r[3];
|
|
/* 028DCD90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[19], 0x00000000u);
|
|
/* 028DCD94 */ _t168 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCD94 */ _t169 = _t168 & 0x00000001u;
|
|
/* 028DCD94 */ if (_t169) goto L_028DCDCC; else goto L_028DCD98;
|
|
L_028DCD98: ; // 0x28dcd98
|
|
/* 028DCD98 */ cpu->r[22] = cpu->r[1] + 0x00000073u;
|
|
/* 028DCD9C */ cpu->r[21] = 0x00000005u;
|
|
/* 028DCDA0 */ cpu->r[20] = 0x00000000u;
|
|
L_028DCDA4: ; // 0x28dcda4
|
|
/* 028DCDA4 */ _t170 = cpu->r[22] + 0x00000001u;
|
|
/* 028DCDA4 */ cpu->r[0] = rbrew_read8(cpu->mem, _t170);
|
|
/* 028DCDA4 */ cpu->r[22] = _t170;
|
|
/* 028DCDA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DCDAC */ _t171 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCDAC */ _t172 = _t171 & 0x00000001u;
|
|
/* 028DCDAC */ if (_t172) goto L_028DCDB0; else goto L_028DCDC0;
|
|
L_028DCDB0: ; // 0x28dcdb0
|
|
/* 028DCDB0 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 028DCDB4 */ cpu->r[3] = cpu->r[19];
|
|
/* 028DCDB8 */ _t173 = cpu->r[1] + 0x00000020u;
|
|
/* 028DCDB8 */ rbrew_write32(cpu->mem, _t173, cpu->r[20]);
|
|
/* 028DCDBC */ Gambit_fn_028DB6B8(cpu);
|
|
L_028DCDC0: ; // 0x28dcdc0
|
|
/* 028DCDC0 */ cpu->r[21] = cpu->r[21] + 0xFFFFFFFFu;
|
|
/* 028DCDC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[21], 0x00000000u);
|
|
/* 028DCDC4 */ cpu->r[20] = cpu->r[20] + 0x00000001u;
|
|
/* 028DCDC8 */ _t174 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCDC8 */ _t175 = _t174 & 0x00000001u;
|
|
/* 028DCDC8 */ if (_t175) goto L_028DCDCC; else goto L_028DCDA4;
|
|
L_028DCDCC: ; // 0x28dcdcc
|
|
/* 028DCDCC */ cpu->r[26] = cpu->r[26] + 0xFFFFFFFFu;
|
|
/* 028DCDCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028DCDD0 */ cpu->r[28] = cpu->r[28] + 0x000000A0u;
|
|
/* 028DCDD4 */ _t176 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCDD4 */ _t177 = _t176 & 0x00000001u;
|
|
/* 028DCDD4 */ if (_t177) goto L_028DCDD8; else goto L_028DCB18;
|
|
L_028DCDD8: ; // 0x28dcdd8
|
|
/* 028DCDD8 */ /* nop */
|
|
/* 028DCDDC */ _t178 = cpu->r[1] + 0x00000178u;
|
|
/* 028DCDDC */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t178);
|
|
/* 028DCDE0 */ _t179 = cpu->r[1] + 0x00000168u;
|
|
/* 028DCDE0 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t179);
|
|
/* 028DCDE4 */ _t180 = cpu->r[1] + 0x00000170u;
|
|
/* 028DCDE4 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t180);
|
|
/* 028DCDE8 */ _t181 = cpu->r[1] + 0x00000188u;
|
|
/* 028DCDE8 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t181);
|
|
/* 028DCDEC */ _t182 = cpu->r[1] + 0x00000160u;
|
|
/* 028DCDEC */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t182);
|
|
/* 028DCDF0 */ _t183 = cpu->r[1] + 0x00000180u;
|
|
/* 028DCDF0 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t183);
|
|
/* 028DCDF4 */ _t184 = cpu->r[1] + 0x00000148u;
|
|
/* 028DCDF4 */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t184);
|
|
/* 028DCDF8 */ _t185 = cpu->r[1] + 0x00000158u;
|
|
/* 028DCDF8 */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t185);
|
|
/* 028DCDFC */ _t186 = cpu->r[1] + 0x00000140u;
|
|
/* 028DCDFC */ cpu->f[27] = rbrew_read_f64(cpu->mem, _t186);
|
|
/* 028DCE00 */ _t187 = cpu->r[1] + 0x00000150u;
|
|
/* 028DCE00 */ cpu->f[28] = rbrew_read_f64(cpu->mem, _t187);
|
|
/* 028DCE04 */ cpu->r[3] = 0x00000001u;
|
|
/* 028DCE08 */ _t188 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DCE08 */ _t189 = _t188 & 0x00000001u;
|
|
/* 028DCE08 */ if (_t189) goto L_028DCE0C; // else: addr-0 trap, fall-through
|
|
L_028DCE0C: ; // 0x28dce0c
|
|
/* 028DCE0C */ _t190 = cpu->r[1] + 0x00000194u;
|
|
/* 028DCE0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t190);
|
|
/* 028DCE10 */ cpu->lr = cpu->r[0];
|
|
/* 028DCE14 */ cpu->r[1] = cpu->r[1] + 0x00000190u;
|
|
/* 028DCE18 */ return;
|
|
}
|
|
|
|
// fn_028DCE28 @ 0x28dce28
|
|
void Gambit_fn_028DCE28(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028DCE28: ; // 0x28dce28
|
|
/* 028DCE28 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028DCE28 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DCE28 */ cpu->r[1] = _t0;
|
|
/* 028DCE2C */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCE2C */ _t2 = _t1 & 0x00000001u;
|
|
/* 028DCE2C */ if (_t2) goto L_028DCE30; else goto L_028DCE40;
|
|
L_028DCE30: ; // 0x28dce30
|
|
/* 028DCE30 */ cpu->r[3] = 0x00000018u;
|
|
/* 028DCE34 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DCE38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DCE3C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCE3C */ _t4 = _t3 & 0x00000001u;
|
|
/* 028DCE3C */ if (_t4) goto L_028DCE74; else goto L_028DCE40;
|
|
L_028DCE40: ; // 0x28dce40
|
|
/* 028DCE40 */ cpu->r[11] = 0x10140000u;
|
|
/* 028DCE44 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DCE48 */ _t5 = cpu->r[11] + 0xFFFFB380u;
|
|
/* 028DCE48 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 028DCE4C */ _t6 = cpu->r[12] + 0xFFFFB378u;
|
|
/* 028DCE4C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028DCE50 */ _t7 = cpu->r[3] + 0x00000010u;
|
|
/* 028DCE50 */ rbrew_write_f32(cpu->mem, _t7, cpu->f[13]);
|
|
/* 028DCE54 */ cpu->r[11] = 0x10140000u;
|
|
/* 028DCE58 */ _t8 = cpu->r[3] + 0x00000008u;
|
|
/* 028DCE58 */ rbrew_write_f32(cpu->mem, _t8, cpu->f[0]);
|
|
/* 028DCE5C */ _t9 = cpu->r[11] + 0xFFFFB37Cu;
|
|
/* 028DCE5C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028DCE60 */ _t10 = cpu->r[3] + 0x00000014u;
|
|
/* 028DCE60 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[13]);
|
|
/* 028DCE64 */ cpu->r[12] = 0x00000000u;
|
|
/* 028DCE68 */ _t11 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028DCE68 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[0]);
|
|
/* 028DCE6C */ _t12 = cpu->r[3] + 0x00000004u;
|
|
/* 028DCE6C */ rbrew_write32(cpu->mem, _t12, cpu->r[12]);
|
|
/* 028DCE70 */ _t13 = cpu->r[3] + 0x00000000u;
|
|
/* 028DCE70 */ rbrew_write32(cpu->mem, _t13, cpu->r[12]);
|
|
L_028DCE74: ; // 0x28dce74
|
|
/* 028DCE74 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DCE74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DCE78 */ cpu->lr = cpu->r[0];
|
|
/* 028DCE7C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028DCE80 */ return;
|
|
}
|
|
|
|
// fn_028DCE84 @ 0x28dce84
|
|
void Gambit_fn_028DCE84(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028DCE84: ; // 0x28dce84
|
|
/* 028DCE84 */ cpu->r[0] = cpu->lr;
|
|
/* 028DCE88 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DCE88 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DCE88 */ cpu->r[1] = _t0;
|
|
/* 028DCE8C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DCE8C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DCE90 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DCE94 */ cpu->r[3] = cpu->r[4];
|
|
/* 028DCE94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DCE98 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DCE98 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DCE9C */ _t3 = cpu->r[31] + 0x00000004u;
|
|
/* 028DCE9C */ rbrew_write32(cpu->mem, _t3, cpu->r[3]);
|
|
/* 028DCEA0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCEA0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DCEA0 */ if (_t5) goto L_028DCEC4; else goto L_028DCEA4;
|
|
L_028DCEA4: ; // 0x28dcea4
|
|
/* 028DCEA4 */ _t6 = cpu->r[3] + 0x00000008u;
|
|
/* 028DCEA4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DCEA8 */ _t7 = cpu->r[12] + 0x00000024u;
|
|
/* 028DCEA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DCEAC */ _t8 = cpu->r[31] + 0x00000010u;
|
|
/* 028DCEAC */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028DCEB0 */ cpu->ctr = cpu->r[0];
|
|
/* 028DCEB4 */ _t9 = cpu->r[31] + 0x00000008u;
|
|
/* 028DCEB4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028DCEB8 */ _t10 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DCEB8 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028DCEBC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DCEC0 */ _t11 = cpu->r[31] + 0x00000014u;
|
|
/* 028DCEC0 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[1]);
|
|
L_028DCEC4: ; // 0x28dcec4
|
|
/* 028DCEC4 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028DCEC4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DCEC8 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DCEC8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DCECC */ cpu->lr = cpu->r[0];
|
|
/* 028DCED0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DCED4 */ return;
|
|
}
|
|
|
|
// fn_028DCE88 @ 0x28dce88
|
|
void Gambit_fn_028DCE88(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028DCE88: ; // 0x28dce88
|
|
/* 028DCE88 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DCE88 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DCE88 */ cpu->r[1] = _t0;
|
|
/* 028DCE8C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DCE8C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DCE90 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DCE94 */ cpu->r[3] = cpu->r[4];
|
|
/* 028DCE94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DCE98 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DCE98 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DCE9C */ _t3 = cpu->r[31] + 0x00000004u;
|
|
/* 028DCE9C */ rbrew_write32(cpu->mem, _t3, cpu->r[3]);
|
|
/* 028DCEA0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCEA0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DCEA0 */ if (_t5) goto L_028DCEC4; else goto L_028DCEA4;
|
|
L_028DCEA4: ; // 0x28dcea4
|
|
/* 028DCEA4 */ _t6 = cpu->r[3] + 0x00000008u;
|
|
/* 028DCEA4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DCEA8 */ _t7 = cpu->r[12] + 0x00000024u;
|
|
/* 028DCEA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DCEAC */ _t8 = cpu->r[31] + 0x00000010u;
|
|
/* 028DCEAC */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028DCEB0 */ cpu->ctr = cpu->r[0];
|
|
/* 028DCEB4 */ _t9 = cpu->r[31] + 0x00000008u;
|
|
/* 028DCEB4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028DCEB8 */ _t10 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DCEB8 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028DCEBC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DCEC0 */ _t11 = cpu->r[31] + 0x00000014u;
|
|
/* 028DCEC0 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[1]);
|
|
L_028DCEC4: ; // 0x28dcec4
|
|
/* 028DCEC4 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028DCEC4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DCEC8 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DCEC8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DCECC */ cpu->lr = cpu->r[0];
|
|
/* 028DCED0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DCED4 */ return;
|
|
}
|
|
|
|
// fn_028DCED8 @ 0x28dced8
|
|
void Gambit_fn_028DCED8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_028DCED8: ; // 0x28dced8
|
|
/* 028DCED8 */ cpu->r[0] = cpu->lr;
|
|
/* 028DCEDC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DCEDC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DCEDC */ cpu->r[1] = _t0;
|
|
/* 028DCEE0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DCEE0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DCEE4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DCEE8 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028DCEEC */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DCEEC */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DCEF0 */ _t3 = cpu->r[3] + 0xFFFF9AD4u;
|
|
/* 028DCEF0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028DCEF4 */ Gambit_fn_028DD5B8(cpu);
|
|
/* 028DCEF8 */ cpu->r[4] = cpu->r[3];
|
|
/* 028DCEF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028DCEFC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCEFC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DCEFC */ if (_t5) goto L_028DCF08; else goto L_028DCF00;
|
|
L_028DCF00: ; // 0x28dcf00
|
|
/* 028DCF00 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DCF04 */ Gambit_fn_028DCE84(cpu);
|
|
L_028DCF08: ; // 0x28dcf08
|
|
/* 028DCF08 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028DCF08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DCF0C */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DCF0C */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DCF10 */ cpu->lr = cpu->r[0];
|
|
/* 028DCF14 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DCF18 */ return;
|
|
}
|
|
|
|
// fn_028DCEDC @ 0x28dcedc
|
|
void Gambit_fn_028DCEDC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_028DCEDC: ; // 0x28dcedc
|
|
/* 028DCEDC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DCEDC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DCEDC */ cpu->r[1] = _t0;
|
|
/* 028DCEE0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DCEE0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DCEE4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DCEE8 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028DCEEC */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DCEEC */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DCEF0 */ _t3 = cpu->r[3] + 0xFFFF9AD4u;
|
|
/* 028DCEF0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028DCEF4 */ Gambit_fn_028DD5B8(cpu);
|
|
/* 028DCEF8 */ cpu->r[4] = cpu->r[3];
|
|
/* 028DCEF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028DCEFC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCEFC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DCEFC */ if (_t5) goto L_028DCF08; else goto L_028DCF00;
|
|
L_028DCF00: ; // 0x28dcf00
|
|
/* 028DCF00 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DCF04 */ Gambit_fn_028DCE84(cpu);
|
|
L_028DCF08: ; // 0x28dcf08
|
|
/* 028DCF08 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028DCF08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DCF0C */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DCF0C */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DCF10 */ cpu->lr = cpu->r[0];
|
|
/* 028DCF14 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DCF18 */ return;
|
|
}
|
|
|
|
// fn_028DCF1C @ 0x28dcf1c
|
|
void Gambit_fn_028DCF1C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53;
|
|
|
|
L_028DCF1C: ; // 0x28dcf1c
|
|
/* 028DCF1C */ cpu->r[0] = cpu->lr;
|
|
/* 028DCF20 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028DCF20 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DCF20 */ cpu->r[1] = _t0;
|
|
/* 028DCF24 */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028DCF24 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028DCF28 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DCF28 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DCF2C */ /* nop */
|
|
/* 028DCF30 */ _t3 = cpu->r[1] + 0x00000020u;
|
|
/* 028DCF30 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[31]);
|
|
/* 028DCF34 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DCF34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DCF38 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028DCF38 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028DCF3C */ _t5 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DCF3C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DCF40 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCF40 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DCF40 */ if (_t7) goto L_028DCF44; else goto L_028DCF54;
|
|
L_028DCF44: ; // 0x28dcf44
|
|
/* 028DCF44 */ cpu->r[3] = 0x00000050u;
|
|
/* 028DCF48 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DCF4C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DCF4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DCF50 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCF50 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028DCF50 */ if (_t9) goto L_028DD044; else goto L_028DCF54;
|
|
L_028DCF54: ; // 0x28dcf54
|
|
/* 028DCF54 */ cpu->r[10] = 0x10140000u;
|
|
/* 028DCF58 */ cpu->r[30] = 0x00000000u;
|
|
/* 028DCF5C */ _t10 = cpu->r[10] + 0xFFFFB3C0u;
|
|
/* 028DCF5C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028DCF60 */ cpu->r[9] = 0x10140000u;
|
|
/* 028DCF64 */ _t11 = cpu->r[31] + 0x00000030u;
|
|
/* 028DCF64 */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[30]);
|
|
/* 028DCF68 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DCF6C */ _t12 = cpu->r[31] + 0x00000004u;
|
|
/* 028DCF6C */ rbrew_write32(cpu->mem, _t12, cpu->r[30]);
|
|
/* 028DCF70 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DCF74 */ _t13 = cpu->r[12] + 0xFFFFB3D4u;
|
|
/* 028DCF74 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 028DCF78 */ _t14 = cpu->r[9] + 0xFFFFB3C8u;
|
|
/* 028DCF78 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028DCF7C */ _t15 = cpu->r[31] + 0x00000024u;
|
|
/* 028DCF7C */ rbrew_write_f32(cpu->mem, _t15, cpu->f[13]);
|
|
/* 028DCF80 */ cpu->r[7] = 0x10140000u;
|
|
/* 028DCF84 */ _t16 = cpu->r[31] + 0x00000008u;
|
|
/* 028DCF84 */ rbrew_write_f32(cpu->mem, _t16, cpu->f[0]);
|
|
/* 028DCF88 */ _t17 = cpu->r[7] + 0xFFFFB3C4u;
|
|
/* 028DCF88 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028DCF8C */ cpu->r[12] = 0x10140000u;
|
|
/* 028DCF90 */ _t18 = cpu->r[31] + 0x00000014u;
|
|
/* 028DCF90 */ rbrew_write_f32(cpu->mem, _t18, cpu->f[31]);
|
|
/* 028DCF94 */ cpu->r[3] = cpu->r[31] + 0x00000034u;
|
|
/* 028DCF94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DCF98 */ _t19 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DCF98 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[13]);
|
|
/* 028DCF9C */ cpu->r[0] = cpu->r[0] + 0xFFFFB40Cu;
|
|
/* 028DCFA0 */ _t20 = cpu->r[31] + 0x00000028u;
|
|
/* 028DCFA0 */ rbrew_write_f32(cpu->mem, _t20, cpu->f[31]);
|
|
/* 028DCFA4 */ _t21 = cpu->r[12] + 0xFFFFB3CCu;
|
|
/* 028DCFA4 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028DCFA8 */ _t22 = cpu->r[31] + 0x00000018u;
|
|
/* 028DCFA8 */ rbrew_write8(cpu->mem, _t22, (uint8_t)cpu->r[30]);
|
|
/* 028DCFAC */ _t23 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028DCFAC */ rbrew_write_f32(cpu->mem, _t23, cpu->f[13]);
|
|
/* 028DCFB0 */ _t24 = cpu->r[31] + 0x00000000u;
|
|
/* 028DCFB0 */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
/* 028DCFB4 */ cpu->r[10] = 0x10140000u;
|
|
/* 028DCFB8 */ _t25 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028DCFB8 */ rbrew_write_f32(cpu->mem, _t25, cpu->f[0]);
|
|
/* 028DCFBC */ _t26 = cpu->r[10] + 0xFFFFB3D0u;
|
|
/* 028DCFBC */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028DCFC0 */ _t27 = cpu->r[31] + 0x00000010u;
|
|
/* 028DCFC0 */ rbrew_write_f32(cpu->mem, _t27, cpu->f[0]);
|
|
/* 028DCFC4 */ _t28 = cpu->r[31] + 0x00000020u;
|
|
/* 028DCFC4 */ rbrew_write_f32(cpu->mem, _t28, cpu->f[13]);
|
|
/* 028DCFC8 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCFC8 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028DCFC8 */ if (_t30) goto L_028DCFCC; else goto L_028DCFDC;
|
|
L_028DCFCC: ; // 0x28dcfcc
|
|
/* 028DCFCC */ cpu->r[3] = 0x00000008u;
|
|
/* 028DCFD0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DCFD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DCFD8 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCFD8 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028DCFD8 */ if (_t32) goto L_028DCFE4; else goto L_028DCFDC;
|
|
L_028DCFDC: ; // 0x28dcfdc
|
|
/* 028DCFDC */ _t33 = cpu->r[3] + 0x00000004u;
|
|
/* 028DCFDC */ rbrew_write_f32(cpu->mem, _t33, cpu->f[31]);
|
|
/* 028DCFE0 */ _t34 = cpu->r[3] + 0x00000000u;
|
|
/* 028DCFE0 */ rbrew_write_f32(cpu->mem, _t34, cpu->f[31]);
|
|
L_028DCFE4: ; // 0x28dcfe4
|
|
/* 028DCFE4 */ cpu->r[3] = cpu->r[31] + 0x0000003Cu;
|
|
/* 028DCFE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DCFE8 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCFE8 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028DCFE8 */ if (_t36) goto L_028DCFEC; else goto L_028DCFFC;
|
|
L_028DCFEC: ; // 0x28dcfec
|
|
/* 028DCFEC */ cpu->r[3] = 0x00000008u;
|
|
/* 028DCFF0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DCFF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DCFF8 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCFF8 */ _t38 = _t37 & 0x00000001u;
|
|
/* 028DCFF8 */ if (_t38) goto L_028DD008; else goto L_028DCFFC;
|
|
L_028DCFFC: ; // 0x28dcffc
|
|
/* 028DCFFC */ cpu->r[8] = 0x0000000Au;
|
|
/* 028DD000 */ _t39 = cpu->r[3] + 0x00000004u;
|
|
/* 028DD000 */ rbrew_write32(cpu->mem, _t39, cpu->r[8]);
|
|
/* 028DD004 */ _t40 = cpu->r[3] + 0x00000000u;
|
|
/* 028DD004 */ rbrew_write32(cpu->mem, _t40, cpu->r[8]);
|
|
L_028DD008: ; // 0x28dd008
|
|
/* 028DD008 */ cpu->r[6] = 0x10140000u;
|
|
/* 028DD00C */ _t41 = cpu->r[31] + 0x0000004Cu;
|
|
/* 028DD00C */ rbrew_write8(cpu->mem, _t41, (uint8_t)cpu->r[30]);
|
|
/* 028DD010 */ cpu->r[11] = 0x00000040u;
|
|
/* 028DD014 */ _t42 = cpu->r[6] + 0xFFFFB3D8u;
|
|
/* 028DD014 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t42);
|
|
/* 028DD018 */ cpu->r[8] = 0x10140000u;
|
|
/* 028DD01C */ cpu->r[0] = 0x10140000u;
|
|
/* 028DD020 */ _t43 = cpu->r[31] + 0x00000044u;
|
|
/* 028DD020 */ rbrew_write32(cpu->mem, _t43, cpu->r[11]);
|
|
/* 028DD024 */ cpu->r[8] = cpu->r[8] + 0xFFFFB3DCu;
|
|
/* 028DD028 */ _t44 = cpu->r[31] + 0x00000048u;
|
|
/* 028DD028 */ rbrew_write_f32(cpu->mem, _t44, cpu->f[0]);
|
|
/* 028DD02C */ cpu->r[0] = cpu->r[0] + 0xFFFFB398u;
|
|
/* 028DD030 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DD034 */ _t45 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD034 */ rbrew_write32(cpu->mem, _t45, cpu->r[8]);
|
|
/* 028DD038 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028DD03C */ _t46 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD03C */ rbrew_write32(cpu->mem, _t46, cpu->r[0]);
|
|
/* 028DD040 */ Gambit_fn_028DCED8(cpu);
|
|
L_028DD044: ; // 0x28dd044
|
|
/* 028DD044 */ _t47 = cpu->r[1] + 0x00000020u;
|
|
/* 028DD044 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t47);
|
|
/* 028DD048 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DD04C */ _t48 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD04C */ cpu->r[30] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028DD050 */ _t49 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD050 */ cpu->r[31] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028DD054 */ _t50 = cpu->r[1] + 0x00000018u;
|
|
/* 028DD054 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t50);
|
|
/* 028DD058 */ _t51 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD058 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028DD058 */ if (_t52) goto L_028DD05C; // else: addr-0 trap, fall-through
|
|
L_028DD05C: ; // 0x28dd05c
|
|
/* 028DD05C */ _t53 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DD05C */ cpu->r[0] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028DD060 */ cpu->lr = cpu->r[0];
|
|
/* 028DD064 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028DD068 */ return;
|
|
}
|
|
|
|
// fn_028DCF20 @ 0x28dcf20
|
|
void Gambit_fn_028DCF20(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53;
|
|
|
|
L_028DCF20: ; // 0x28dcf20
|
|
/* 028DCF20 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028DCF20 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DCF20 */ cpu->r[1] = _t0;
|
|
/* 028DCF24 */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028DCF24 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028DCF28 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DCF28 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DCF2C */ /* nop */
|
|
/* 028DCF30 */ _t3 = cpu->r[1] + 0x00000020u;
|
|
/* 028DCF30 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[31]);
|
|
/* 028DCF34 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DCF34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DCF38 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028DCF38 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028DCF3C */ _t5 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DCF3C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DCF40 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCF40 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DCF40 */ if (_t7) goto L_028DCF44; else goto L_028DCF54;
|
|
L_028DCF44: ; // 0x28dcf44
|
|
/* 028DCF44 */ cpu->r[3] = 0x00000050u;
|
|
/* 028DCF48 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DCF4C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DCF4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DCF50 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCF50 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028DCF50 */ if (_t9) goto L_028DD044; else goto L_028DCF54;
|
|
L_028DCF54: ; // 0x28dcf54
|
|
/* 028DCF54 */ cpu->r[10] = 0x10140000u;
|
|
/* 028DCF58 */ cpu->r[30] = 0x00000000u;
|
|
/* 028DCF5C */ _t10 = cpu->r[10] + 0xFFFFB3C0u;
|
|
/* 028DCF5C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028DCF60 */ cpu->r[9] = 0x10140000u;
|
|
/* 028DCF64 */ _t11 = cpu->r[31] + 0x00000030u;
|
|
/* 028DCF64 */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[30]);
|
|
/* 028DCF68 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DCF6C */ _t12 = cpu->r[31] + 0x00000004u;
|
|
/* 028DCF6C */ rbrew_write32(cpu->mem, _t12, cpu->r[30]);
|
|
/* 028DCF70 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DCF74 */ _t13 = cpu->r[12] + 0xFFFFB3D4u;
|
|
/* 028DCF74 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 028DCF78 */ _t14 = cpu->r[9] + 0xFFFFB3C8u;
|
|
/* 028DCF78 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028DCF7C */ _t15 = cpu->r[31] + 0x00000024u;
|
|
/* 028DCF7C */ rbrew_write_f32(cpu->mem, _t15, cpu->f[13]);
|
|
/* 028DCF80 */ cpu->r[7] = 0x10140000u;
|
|
/* 028DCF84 */ _t16 = cpu->r[31] + 0x00000008u;
|
|
/* 028DCF84 */ rbrew_write_f32(cpu->mem, _t16, cpu->f[0]);
|
|
/* 028DCF88 */ _t17 = cpu->r[7] + 0xFFFFB3C4u;
|
|
/* 028DCF88 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028DCF8C */ cpu->r[12] = 0x10140000u;
|
|
/* 028DCF90 */ _t18 = cpu->r[31] + 0x00000014u;
|
|
/* 028DCF90 */ rbrew_write_f32(cpu->mem, _t18, cpu->f[31]);
|
|
/* 028DCF94 */ cpu->r[3] = cpu->r[31] + 0x00000034u;
|
|
/* 028DCF94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DCF98 */ _t19 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DCF98 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[13]);
|
|
/* 028DCF9C */ cpu->r[0] = cpu->r[0] + 0xFFFFB40Cu;
|
|
/* 028DCFA0 */ _t20 = cpu->r[31] + 0x00000028u;
|
|
/* 028DCFA0 */ rbrew_write_f32(cpu->mem, _t20, cpu->f[31]);
|
|
/* 028DCFA4 */ _t21 = cpu->r[12] + 0xFFFFB3CCu;
|
|
/* 028DCFA4 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028DCFA8 */ _t22 = cpu->r[31] + 0x00000018u;
|
|
/* 028DCFA8 */ rbrew_write8(cpu->mem, _t22, (uint8_t)cpu->r[30]);
|
|
/* 028DCFAC */ _t23 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028DCFAC */ rbrew_write_f32(cpu->mem, _t23, cpu->f[13]);
|
|
/* 028DCFB0 */ _t24 = cpu->r[31] + 0x00000000u;
|
|
/* 028DCFB0 */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
/* 028DCFB4 */ cpu->r[10] = 0x10140000u;
|
|
/* 028DCFB8 */ _t25 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028DCFB8 */ rbrew_write_f32(cpu->mem, _t25, cpu->f[0]);
|
|
/* 028DCFBC */ _t26 = cpu->r[10] + 0xFFFFB3D0u;
|
|
/* 028DCFBC */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028DCFC0 */ _t27 = cpu->r[31] + 0x00000010u;
|
|
/* 028DCFC0 */ rbrew_write_f32(cpu->mem, _t27, cpu->f[0]);
|
|
/* 028DCFC4 */ _t28 = cpu->r[31] + 0x00000020u;
|
|
/* 028DCFC4 */ rbrew_write_f32(cpu->mem, _t28, cpu->f[13]);
|
|
/* 028DCFC8 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCFC8 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028DCFC8 */ if (_t30) goto L_028DCFCC; else goto L_028DCFDC;
|
|
L_028DCFCC: ; // 0x28dcfcc
|
|
/* 028DCFCC */ cpu->r[3] = 0x00000008u;
|
|
/* 028DCFD0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DCFD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DCFD8 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCFD8 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028DCFD8 */ if (_t32) goto L_028DCFE4; else goto L_028DCFDC;
|
|
L_028DCFDC: ; // 0x28dcfdc
|
|
/* 028DCFDC */ _t33 = cpu->r[3] + 0x00000004u;
|
|
/* 028DCFDC */ rbrew_write_f32(cpu->mem, _t33, cpu->f[31]);
|
|
/* 028DCFE0 */ _t34 = cpu->r[3] + 0x00000000u;
|
|
/* 028DCFE0 */ rbrew_write_f32(cpu->mem, _t34, cpu->f[31]);
|
|
L_028DCFE4: ; // 0x28dcfe4
|
|
/* 028DCFE4 */ cpu->r[3] = cpu->r[31] + 0x0000003Cu;
|
|
/* 028DCFE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DCFE8 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCFE8 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028DCFE8 */ if (_t36) goto L_028DCFEC; else goto L_028DCFFC;
|
|
L_028DCFEC: ; // 0x28dcfec
|
|
/* 028DCFEC */ cpu->r[3] = 0x00000008u;
|
|
/* 028DCFF0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DCFF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DCFF8 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DCFF8 */ _t38 = _t37 & 0x00000001u;
|
|
/* 028DCFF8 */ if (_t38) goto L_028DD008; else goto L_028DCFFC;
|
|
L_028DCFFC: ; // 0x28dcffc
|
|
/* 028DCFFC */ cpu->r[8] = 0x0000000Au;
|
|
/* 028DD000 */ _t39 = cpu->r[3] + 0x00000004u;
|
|
/* 028DD000 */ rbrew_write32(cpu->mem, _t39, cpu->r[8]);
|
|
/* 028DD004 */ _t40 = cpu->r[3] + 0x00000000u;
|
|
/* 028DD004 */ rbrew_write32(cpu->mem, _t40, cpu->r[8]);
|
|
L_028DD008: ; // 0x28dd008
|
|
/* 028DD008 */ cpu->r[6] = 0x10140000u;
|
|
/* 028DD00C */ _t41 = cpu->r[31] + 0x0000004Cu;
|
|
/* 028DD00C */ rbrew_write8(cpu->mem, _t41, (uint8_t)cpu->r[30]);
|
|
/* 028DD010 */ cpu->r[11] = 0x00000040u;
|
|
/* 028DD014 */ _t42 = cpu->r[6] + 0xFFFFB3D8u;
|
|
/* 028DD014 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t42);
|
|
/* 028DD018 */ cpu->r[8] = 0x10140000u;
|
|
/* 028DD01C */ cpu->r[0] = 0x10140000u;
|
|
/* 028DD020 */ _t43 = cpu->r[31] + 0x00000044u;
|
|
/* 028DD020 */ rbrew_write32(cpu->mem, _t43, cpu->r[11]);
|
|
/* 028DD024 */ cpu->r[8] = cpu->r[8] + 0xFFFFB3DCu;
|
|
/* 028DD028 */ _t44 = cpu->r[31] + 0x00000048u;
|
|
/* 028DD028 */ rbrew_write_f32(cpu->mem, _t44, cpu->f[0]);
|
|
/* 028DD02C */ cpu->r[0] = cpu->r[0] + 0xFFFFB398u;
|
|
/* 028DD030 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DD034 */ _t45 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD034 */ rbrew_write32(cpu->mem, _t45, cpu->r[8]);
|
|
/* 028DD038 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028DD03C */ _t46 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD03C */ rbrew_write32(cpu->mem, _t46, cpu->r[0]);
|
|
/* 028DD040 */ Gambit_fn_028DCED8(cpu);
|
|
L_028DD044: ; // 0x28dd044
|
|
/* 028DD044 */ _t47 = cpu->r[1] + 0x00000020u;
|
|
/* 028DD044 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t47);
|
|
/* 028DD048 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DD04C */ _t48 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD04C */ cpu->r[30] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028DD050 */ _t49 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD050 */ cpu->r[31] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028DD054 */ _t50 = cpu->r[1] + 0x00000018u;
|
|
/* 028DD054 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t50);
|
|
/* 028DD058 */ _t51 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD058 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028DD058 */ if (_t52) goto L_028DD05C; // else: addr-0 trap, fall-through
|
|
L_028DD05C: ; // 0x28dd05c
|
|
/* 028DD05C */ _t53 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DD05C */ cpu->r[0] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028DD060 */ cpu->lr = cpu->r[0];
|
|
/* 028DD064 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028DD068 */ return;
|
|
}
|
|
|
|
// fn_028DD06C @ 0x28dd06c
|
|
void Gambit_fn_028DD06C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28;
|
|
|
|
L_028DD06C: ; // 0x28dd06c
|
|
/* 028DD06C */ cpu->r[0] = cpu->lr;
|
|
/* 028DD070 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028DD070 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD070 */ cpu->r[1] = _t0;
|
|
/* 028DD074 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD074 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028DD078 */ /* nop */
|
|
/* 028DD07C */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 028DD07C */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028DD080 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD080 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028DD084 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DD088 */ _t4 = cpu->r[12] + 0xFFFFB3C0u;
|
|
/* 028DD088 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028DD08C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DD090 */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 028DD090 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DD094 */ _t6 = cpu->r[31] + 0x00000004u;
|
|
/* 028DD094 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DD098 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD09C */ cpu->f[0] = cpu->f[31];
|
|
/* 028DD0A0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD0A0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DD0A0 */ if (_t8) goto L_028DD0C8; else goto L_028DD0A4;
|
|
L_028DD0A4: ; // 0x28dd0a4
|
|
/* 028DD0A4 */ _t9 = cpu->r[3] + 0x00000008u;
|
|
/* 028DD0A4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DD0A8 */ _t10 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DD0A8 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028DD0AC */ _t11 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028DD0AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DD0B0 */ _t12 = cpu->r[31] + 0x00000014u;
|
|
/* 028DD0B0 */ cpu->f[5] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 028DD0B4 */ cpu->ctr = cpu->r[0];
|
|
/* 028DD0B8 */ _t13 = cpu->r[31] + 0x00000010u;
|
|
/* 028DD0B8 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 028DD0BC */ _t14 = cpu->r[31] + 0x00000008u;
|
|
/* 028DD0BC */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028DD0C0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DD0C4 */ cpu->f[0] = cpu->f[1];
|
|
L_028DD0C8: ; // 0x28dd0c8
|
|
/* 028DD0C8 */ _t15 = cpu->r[31] + 0x00000018u;
|
|
/* 028DD0C8 */ cpu->r[0] = rbrew_read8(cpu->mem, _t15);
|
|
/* 028DD0CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DD0D0 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD0D0 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DD0D0 */ if (_t17) goto L_028DD0D8; else goto L_028DD0D4;
|
|
L_028DD0D4: ; // 0x28dd0d4
|
|
/* 028DD0D4 */ cpu->f[0] = cpu->f[31] - cpu->f[0];
|
|
L_028DD0D8: ; // 0x28dd0d8
|
|
/* 028DD0D8 */ cpu->r[10] = 0x10140000u;
|
|
/* 028DD0DC */ _t18 = cpu->r[10] + 0xFFFFB3C8u;
|
|
/* 028DD0DC */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t18);
|
|
/* 028DD0E0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[13]);
|
|
/* 028DD0E4 */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD0E4 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028DD0E4 */ if (_t20) goto L_028DD0E8; else goto L_028DD0F0;
|
|
L_028DD0E8: ; // 0x28dd0e8
|
|
/* 028DD0E8 */ cpu->f[0] = cpu->f[13];
|
|
/* 028DD0EC */ goto L_028DD0FC;
|
|
L_028DD0F0: ; // 0x28dd0f0
|
|
/* 028DD0F0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[31]);
|
|
/* 028DD0F4 */ _t21 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DD0F4 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028DD0F4 */ if (_t22) goto L_028DD0F8; else goto L_028DD0FC;
|
|
L_028DD0F8: ; // 0x28dd0f8
|
|
/* 028DD0F8 */ cpu->f[0] = cpu->f[31];
|
|
L_028DD0FC: ; // 0x28dd0fc
|
|
/* 028DD0FC */ _t23 = cpu->r[1] + 0x00000018u;
|
|
/* 028DD0FC */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 028DD100 */ _t24 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD100 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028DD104 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD104 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t25);
|
|
/* 028DD108 */ cpu->f[1] = cpu->f[0];
|
|
/* 028DD10C */ _t26 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD10C */ _t27 = _t26 & 0x00000001u;
|
|
/* 028DD10C */ if (_t27) goto L_028DD110; // else: addr-0 trap, fall-through
|
|
L_028DD110: ; // 0x28dd110
|
|
/* 028DD110 */ _t28 = cpu->r[1] + 0x00000024u;
|
|
/* 028DD110 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028DD114 */ cpu->lr = cpu->r[0];
|
|
/* 028DD118 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028DD11C */ return;
|
|
}
|
|
|
|
// fn_028DD070 @ 0x28dd070
|
|
void Gambit_fn_028DD070(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28;
|
|
|
|
L_028DD070: ; // 0x28dd070
|
|
/* 028DD070 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028DD070 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD070 */ cpu->r[1] = _t0;
|
|
/* 028DD074 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD074 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028DD078 */ /* nop */
|
|
/* 028DD07C */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 028DD07C */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028DD080 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD080 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028DD084 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DD088 */ _t4 = cpu->r[12] + 0xFFFFB3C0u;
|
|
/* 028DD088 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028DD08C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DD090 */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 028DD090 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DD094 */ _t6 = cpu->r[31] + 0x00000004u;
|
|
/* 028DD094 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DD098 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD09C */ cpu->f[0] = cpu->f[31];
|
|
/* 028DD0A0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD0A0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DD0A0 */ if (_t8) goto L_028DD0C8; else goto L_028DD0A4;
|
|
L_028DD0A4: ; // 0x28dd0a4
|
|
/* 028DD0A4 */ _t9 = cpu->r[3] + 0x00000008u;
|
|
/* 028DD0A4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DD0A8 */ _t10 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DD0A8 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028DD0AC */ _t11 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028DD0AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DD0B0 */ _t12 = cpu->r[31] + 0x00000014u;
|
|
/* 028DD0B0 */ cpu->f[5] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 028DD0B4 */ cpu->ctr = cpu->r[0];
|
|
/* 028DD0B8 */ _t13 = cpu->r[31] + 0x00000010u;
|
|
/* 028DD0B8 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 028DD0BC */ _t14 = cpu->r[31] + 0x00000008u;
|
|
/* 028DD0BC */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028DD0C0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DD0C4 */ cpu->f[0] = cpu->f[1];
|
|
L_028DD0C8: ; // 0x28dd0c8
|
|
/* 028DD0C8 */ _t15 = cpu->r[31] + 0x00000018u;
|
|
/* 028DD0C8 */ cpu->r[0] = rbrew_read8(cpu->mem, _t15);
|
|
/* 028DD0CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DD0D0 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD0D0 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DD0D0 */ if (_t17) goto L_028DD0D8; else goto L_028DD0D4;
|
|
L_028DD0D4: ; // 0x28dd0d4
|
|
/* 028DD0D4 */ cpu->f[0] = cpu->f[31] - cpu->f[0];
|
|
L_028DD0D8: ; // 0x28dd0d8
|
|
/* 028DD0D8 */ cpu->r[10] = 0x10140000u;
|
|
/* 028DD0DC */ _t18 = cpu->r[10] + 0xFFFFB3C8u;
|
|
/* 028DD0DC */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t18);
|
|
/* 028DD0E0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[13]);
|
|
/* 028DD0E4 */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD0E4 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028DD0E4 */ if (_t20) goto L_028DD0E8; else goto L_028DD0F0;
|
|
L_028DD0E8: ; // 0x28dd0e8
|
|
/* 028DD0E8 */ cpu->f[0] = cpu->f[13];
|
|
/* 028DD0EC */ goto L_028DD0FC;
|
|
L_028DD0F0: ; // 0x28dd0f0
|
|
/* 028DD0F0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[31]);
|
|
/* 028DD0F4 */ _t21 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DD0F4 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028DD0F4 */ if (_t22) goto L_028DD0F8; else goto L_028DD0FC;
|
|
L_028DD0F8: ; // 0x28dd0f8
|
|
/* 028DD0F8 */ cpu->f[0] = cpu->f[31];
|
|
L_028DD0FC: ; // 0x28dd0fc
|
|
/* 028DD0FC */ _t23 = cpu->r[1] + 0x00000018u;
|
|
/* 028DD0FC */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 028DD100 */ _t24 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD100 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028DD104 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD104 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t25);
|
|
/* 028DD108 */ cpu->f[1] = cpu->f[0];
|
|
/* 028DD10C */ _t26 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD10C */ _t27 = _t26 & 0x00000001u;
|
|
/* 028DD10C */ if (_t27) goto L_028DD110; // else: addr-0 trap, fall-through
|
|
L_028DD110: ; // 0x28dd110
|
|
/* 028DD110 */ _t28 = cpu->r[1] + 0x00000024u;
|
|
/* 028DD110 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028DD114 */ cpu->lr = cpu->r[0];
|
|
/* 028DD118 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028DD11C */ return;
|
|
}
|
|
|
|
// fn_028DD120 @ 0x28dd120
|
|
void Gambit_fn_028DD120(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028DD120: ; // 0x28dd120
|
|
/* 028DD120 */ cpu->r[0] = cpu->lr;
|
|
/* 028DD124 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DD124 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD124 */ cpu->r[1] = _t0;
|
|
/* 028DD128 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD128 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DD12C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DD130 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD130 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DD134 */ _t3 = cpu->r[31] + 0x00000004u;
|
|
/* 028DD134 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028DD138 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD13C */ _t4 = cpu->r[31] + 0x00000008u;
|
|
/* 028DD13C */ rbrew_write_f32(cpu->mem, _t4, cpu->f[1]);
|
|
/* 028DD140 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD140 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DD140 */ if (_t6) goto L_028DD160; else goto L_028DD144;
|
|
L_028DD144: ; // 0x28dd144
|
|
/* 028DD144 */ _t7 = cpu->r[3] + 0x00000008u;
|
|
/* 028DD144 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DD148 */ _t8 = cpu->r[12] + 0x00000024u;
|
|
/* 028DD148 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DD14C */ _t9 = cpu->r[31] + 0x00000010u;
|
|
/* 028DD14C */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028DD150 */ cpu->ctr = cpu->r[0];
|
|
/* 028DD154 */ _t10 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DD154 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028DD158 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DD15C */ _t11 = cpu->r[31] + 0x00000014u;
|
|
/* 028DD15C */ rbrew_write_f32(cpu->mem, _t11, cpu->f[1]);
|
|
L_028DD160: ; // 0x28dd160
|
|
/* 028DD160 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD160 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DD164 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD164 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DD168 */ cpu->lr = cpu->r[0];
|
|
/* 028DD16C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DD170 */ return;
|
|
}
|
|
|
|
// fn_028DD124 @ 0x28dd124
|
|
void Gambit_fn_028DD124(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028DD124: ; // 0x28dd124
|
|
/* 028DD124 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DD124 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD124 */ cpu->r[1] = _t0;
|
|
/* 028DD128 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD128 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DD12C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DD130 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD130 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DD134 */ _t3 = cpu->r[31] + 0x00000004u;
|
|
/* 028DD134 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028DD138 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD13C */ _t4 = cpu->r[31] + 0x00000008u;
|
|
/* 028DD13C */ rbrew_write_f32(cpu->mem, _t4, cpu->f[1]);
|
|
/* 028DD140 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD140 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DD140 */ if (_t6) goto L_028DD160; else goto L_028DD144;
|
|
L_028DD144: ; // 0x28dd144
|
|
/* 028DD144 */ _t7 = cpu->r[3] + 0x00000008u;
|
|
/* 028DD144 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DD148 */ _t8 = cpu->r[12] + 0x00000024u;
|
|
/* 028DD148 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DD14C */ _t9 = cpu->r[31] + 0x00000010u;
|
|
/* 028DD14C */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028DD150 */ cpu->ctr = cpu->r[0];
|
|
/* 028DD154 */ _t10 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DD154 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028DD158 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DD15C */ _t11 = cpu->r[31] + 0x00000014u;
|
|
/* 028DD15C */ rbrew_write_f32(cpu->mem, _t11, cpu->f[1]);
|
|
L_028DD160: ; // 0x28dd160
|
|
/* 028DD160 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD160 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DD164 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD164 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DD168 */ cpu->lr = cpu->r[0];
|
|
/* 028DD16C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DD170 */ return;
|
|
}
|
|
|
|
// fn_028DD174 @ 0x28dd174
|
|
void Gambit_fn_028DD174(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028DD174: ; // 0x28dd174
|
|
/* 028DD174 */ cpu->r[0] = cpu->lr;
|
|
/* 028DD178 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DD178 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD178 */ cpu->r[1] = _t0;
|
|
/* 028DD17C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD17C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DD180 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DD184 */ cpu->f[2] = cpu->f[1];
|
|
/* 028DD188 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD188 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DD18C */ _t3 = cpu->r[31] + 0x00000004u;
|
|
/* 028DD18C */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028DD190 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD194 */ _t4 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DD194 */ rbrew_write_f32(cpu->mem, _t4, cpu->f[2]);
|
|
/* 028DD198 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD198 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DD198 */ if (_t6) goto L_028DD1B8; else goto L_028DD19C;
|
|
L_028DD19C: ; // 0x28dd19c
|
|
/* 028DD19C */ _t7 = cpu->r[3] + 0x00000008u;
|
|
/* 028DD19C */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DD1A0 */ _t8 = cpu->r[12] + 0x00000024u;
|
|
/* 028DD1A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DD1A4 */ _t9 = cpu->r[31] + 0x00000010u;
|
|
/* 028DD1A4 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028DD1A8 */ cpu->ctr = cpu->r[0];
|
|
/* 028DD1AC */ _t10 = cpu->r[31] + 0x00000008u;
|
|
/* 028DD1AC */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028DD1B0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DD1B4 */ _t11 = cpu->r[31] + 0x00000014u;
|
|
/* 028DD1B4 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[1]);
|
|
L_028DD1B8: ; // 0x28dd1b8
|
|
/* 028DD1B8 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD1B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DD1BC */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD1BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DD1C0 */ cpu->lr = cpu->r[0];
|
|
/* 028DD1C4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DD1C8 */ return;
|
|
}
|
|
|
|
// fn_028DD178 @ 0x28dd178
|
|
void Gambit_fn_028DD178(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028DD178: ; // 0x28dd178
|
|
/* 028DD178 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DD178 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD178 */ cpu->r[1] = _t0;
|
|
/* 028DD17C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD17C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DD180 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DD184 */ cpu->f[2] = cpu->f[1];
|
|
/* 028DD188 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD188 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DD18C */ _t3 = cpu->r[31] + 0x00000004u;
|
|
/* 028DD18C */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028DD190 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD194 */ _t4 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DD194 */ rbrew_write_f32(cpu->mem, _t4, cpu->f[2]);
|
|
/* 028DD198 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD198 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DD198 */ if (_t6) goto L_028DD1B8; else goto L_028DD19C;
|
|
L_028DD19C: ; // 0x28dd19c
|
|
/* 028DD19C */ _t7 = cpu->r[3] + 0x00000008u;
|
|
/* 028DD19C */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DD1A0 */ _t8 = cpu->r[12] + 0x00000024u;
|
|
/* 028DD1A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DD1A4 */ _t9 = cpu->r[31] + 0x00000010u;
|
|
/* 028DD1A4 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028DD1A8 */ cpu->ctr = cpu->r[0];
|
|
/* 028DD1AC */ _t10 = cpu->r[31] + 0x00000008u;
|
|
/* 028DD1AC */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028DD1B0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DD1B4 */ _t11 = cpu->r[31] + 0x00000014u;
|
|
/* 028DD1B4 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[1]);
|
|
L_028DD1B8: ; // 0x28dd1b8
|
|
/* 028DD1B8 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD1B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DD1BC */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD1BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DD1C0 */ cpu->lr = cpu->r[0];
|
|
/* 028DD1C4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DD1C8 */ return;
|
|
}
|
|
|
|
// fn_028DD1CC @ 0x28dd1cc
|
|
void Gambit_fn_028DD1CC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028DD1CC: ; // 0x28dd1cc
|
|
/* 028DD1CC */ cpu->r[0] = cpu->lr;
|
|
/* 028DD1D0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DD1D0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD1D0 */ cpu->r[1] = _t0;
|
|
/* 028DD1D4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD1D4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DD1D8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DD1DC */ cpu->f[3] = cpu->f[1];
|
|
/* 028DD1E0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD1E0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DD1E4 */ _t3 = cpu->r[31] + 0x00000004u;
|
|
/* 028DD1E4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028DD1E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD1EC */ _t4 = cpu->r[31] + 0x00000010u;
|
|
/* 028DD1EC */ rbrew_write_f32(cpu->mem, _t4, cpu->f[3]);
|
|
/* 028DD1F0 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD1F0 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DD1F0 */ if (_t6) goto L_028DD210; else goto L_028DD1F4;
|
|
L_028DD1F4: ; // 0x28dd1f4
|
|
/* 028DD1F4 */ _t7 = cpu->r[3] + 0x00000008u;
|
|
/* 028DD1F4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DD1F8 */ _t8 = cpu->r[12] + 0x00000024u;
|
|
/* 028DD1F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DD1FC */ _t9 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DD1FC */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028DD200 */ cpu->ctr = cpu->r[0];
|
|
/* 028DD204 */ _t10 = cpu->r[31] + 0x00000008u;
|
|
/* 028DD204 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028DD208 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DD20C */ _t11 = cpu->r[31] + 0x00000014u;
|
|
/* 028DD20C */ rbrew_write_f32(cpu->mem, _t11, cpu->f[1]);
|
|
L_028DD210: ; // 0x28dd210
|
|
/* 028DD210 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD210 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DD214 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD214 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DD218 */ cpu->lr = cpu->r[0];
|
|
/* 028DD21C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DD220 */ return;
|
|
}
|
|
|
|
// fn_028DD1D0 @ 0x28dd1d0
|
|
void Gambit_fn_028DD1D0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028DD1D0: ; // 0x28dd1d0
|
|
/* 028DD1D0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DD1D0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD1D0 */ cpu->r[1] = _t0;
|
|
/* 028DD1D4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD1D4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DD1D8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DD1DC */ cpu->f[3] = cpu->f[1];
|
|
/* 028DD1E0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD1E0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DD1E4 */ _t3 = cpu->r[31] + 0x00000004u;
|
|
/* 028DD1E4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028DD1E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD1EC */ _t4 = cpu->r[31] + 0x00000010u;
|
|
/* 028DD1EC */ rbrew_write_f32(cpu->mem, _t4, cpu->f[3]);
|
|
/* 028DD1F0 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD1F0 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DD1F0 */ if (_t6) goto L_028DD210; else goto L_028DD1F4;
|
|
L_028DD1F4: ; // 0x28dd1f4
|
|
/* 028DD1F4 */ _t7 = cpu->r[3] + 0x00000008u;
|
|
/* 028DD1F4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DD1F8 */ _t8 = cpu->r[12] + 0x00000024u;
|
|
/* 028DD1F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DD1FC */ _t9 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DD1FC */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028DD200 */ cpu->ctr = cpu->r[0];
|
|
/* 028DD204 */ _t10 = cpu->r[31] + 0x00000008u;
|
|
/* 028DD204 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028DD208 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DD20C */ _t11 = cpu->r[31] + 0x00000014u;
|
|
/* 028DD20C */ rbrew_write_f32(cpu->mem, _t11, cpu->f[1]);
|
|
L_028DD210: ; // 0x28dd210
|
|
/* 028DD210 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD210 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DD214 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD214 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DD218 */ cpu->lr = cpu->r[0];
|
|
/* 028DD21C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DD220 */ return;
|
|
}
|
|
|
|
// fn_028DD22C @ 0x28dd22c
|
|
void Gambit_fn_028DD22C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028DD22C: ; // 0x28dd22c
|
|
/* 028DD22C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD230 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD230 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DD230 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DD230 */ goto L_028DD234;
|
|
L_028DD234: ; // 0x28dd234
|
|
/* 028DD234 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DD234 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DD238 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD238 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DD238 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DD238 */ goto L_028DD23C;
|
|
L_028DD23C: ; // 0x28dd23c
|
|
/* 028DD23C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028DD240 @ 0x28dd240
|
|
void Gambit_fn_028DD240(CPUState* cpu) {
|
|
L_028DD240: ; // 0x28dd240
|
|
/* 028DD240 */ return;
|
|
}
|
|
|
|
// fn_028DD244 @ 0x28dd244
|
|
void Gambit_fn_028DD244(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50;
|
|
|
|
L_028DD244: ; // 0x28dd244
|
|
/* 028DD244 */ cpu->r[0] = cpu->lr;
|
|
/* 028DD248 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DD248 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD248 */ cpu->r[1] = _t0;
|
|
/* 028DD24C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD24C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DD250 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD250 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DD254 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DD254 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DD258 */ cpu->r[30] = cpu->r[4];
|
|
/* 028DD25C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD25C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DD260 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DD260 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DD264 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD264 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DD264 */ if (_t6) goto L_028DD268; else goto L_028DD278;
|
|
L_028DD268: ; // 0x28dd268
|
|
/* 028DD268 */ cpu->r[3] = 0x00000038u;
|
|
/* 028DD26C */ Gambit_fn_02801A78(cpu);
|
|
/* 028DD270 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DD270 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DD274 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD274 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DD274 */ if (_t8) goto L_028DD36C; else goto L_028DD278;
|
|
L_028DD278: ; // 0x28dd278
|
|
/* 028DD278 */ cpu->r[29] = cpu->r[31];
|
|
/* 028DD278 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DD27C */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD27C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028DD27C */ if (_t10) goto L_028DD280; else goto L_028DD290;
|
|
L_028DD280: ; // 0x28dd280
|
|
/* 028DD280 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028DD284 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DD288 */ cpu->r[29] = cpu->r[3];
|
|
/* 028DD288 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DD28C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD28C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028DD28C */ if (_t12) goto L_028DD2D4; else goto L_028DD290;
|
|
L_028DD290: ; // 0x28dd290
|
|
/* 028DD290 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DD290 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD294 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD294 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028DD294 */ if (_t14) goto L_028DD298; else goto L_028DD2A8;
|
|
L_028DD298: ; // 0x28dd298
|
|
/* 028DD298 */ cpu->r[3] = 0x00000008u;
|
|
/* 028DD29C */ Gambit_fn_02801A78(cpu);
|
|
/* 028DD2A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD2A4 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD2A4 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028DD2A4 */ if (_t16) goto L_028DD2C0; else goto L_028DD2A8;
|
|
L_028DD2A8: ; // 0x28dd2a8
|
|
/* 028DD2A8 */ cpu->r[9] = 0x10140000u;
|
|
/* 028DD2AC */ cpu->r[10] = 0x10140000u;
|
|
/* 028DD2B0 */ cpu->r[9] = cpu->r[9] + 0xFFFFB440u;
|
|
/* 028DD2B4 */ cpu->r[10] = cpu->r[10] + 0xFFFFB43Cu;
|
|
/* 028DD2B8 */ _t17 = cpu->r[3] + 0x00000004u;
|
|
/* 028DD2B8 */ rbrew_write32(cpu->mem, _t17, cpu->r[9]);
|
|
/* 028DD2BC */ _t18 = cpu->r[3] + 0x00000000u;
|
|
/* 028DD2BC */ rbrew_write32(cpu->mem, _t18, cpu->r[10]);
|
|
L_028DD2C0: ; // 0x28dd2c0
|
|
/* 028DD2C0 */ cpu->r[11] = 0x10140000u;
|
|
/* 028DD2C4 */ cpu->r[11] = cpu->r[11] + 0xFFFFB470u;
|
|
/* 028DD2C8 */ _t19 = cpu->r[29] + 0x00000008u;
|
|
/* 028DD2C8 */ rbrew_write32(cpu->mem, _t19, cpu->r[11]);
|
|
/* 028DD2CC */ _t20 = cpu->r[30] + 0x00000000u;
|
|
/* 028DD2CC */ cpu->r[12] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DD2D0 */ _t21 = cpu->r[29] + 0x00000000u;
|
|
/* 028DD2D0 */ rbrew_write32(cpu->mem, _t21, cpu->r[12]);
|
|
L_028DD2D4: ; // 0x28dd2d4
|
|
/* 028DD2D4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DD2D8 */ cpu->r[29] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028DD2D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DD2DC */ cpu->r[0] = cpu->r[0] + 0xFFFFB4E8u;
|
|
/* 028DD2E0 */ cpu->r[30] = 0x00000000u;
|
|
/* 028DD2E4 */ _t22 = cpu->r[31] + 0x00000008u;
|
|
/* 028DD2E4 */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
/* 028DD2E8 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD2E8 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028DD2E8 */ if (_t24) goto L_028DD2EC; else goto L_028DD2FC;
|
|
L_028DD2EC: ; // 0x28dd2ec
|
|
/* 028DD2EC */ cpu->r[3] = 0x00000010u;
|
|
/* 028DD2F0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DD2F4 */ cpu->r[29] = cpu->r[3];
|
|
/* 028DD2F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DD2F8 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD2F8 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028DD2F8 */ if (_t26) goto L_028DD328; else goto L_028DD2FC;
|
|
L_028DD2FC: ; // 0x28dd2fc
|
|
/* 028DD2FC */ cpu->r[3] = cpu->r[29];
|
|
/* 028DD2FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD300 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD300 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028DD300 */ if (_t28) goto L_028DD304; else goto L_028DD314;
|
|
L_028DD304: ; // 0x28dd304
|
|
/* 028DD304 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028DD308 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DD30C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD310 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD310 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028DD310 */ if (_t30) goto L_028DD320; else goto L_028DD314;
|
|
L_028DD314: ; // 0x28dd314
|
|
/* 028DD314 */ _t31 = cpu->r[3] + 0x00000004u;
|
|
/* 028DD314 */ rbrew_write32(cpu->mem, _t31, cpu->r[3]);
|
|
/* 028DD318 */ _t32 = cpu->r[3] + 0x00000008u;
|
|
/* 028DD318 */ rbrew_write32(cpu->mem, _t32, cpu->r[30]);
|
|
/* 028DD31C */ _t33 = cpu->r[3] + 0x00000000u;
|
|
/* 028DD31C */ rbrew_write32(cpu->mem, _t33, cpu->r[3]);
|
|
L_028DD320: ; // 0x28dd320
|
|
/* 028DD320 */ cpu->r[7] = 0xFFFFFFFFu;
|
|
/* 028DD324 */ _t34 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028DD324 */ rbrew_write32(cpu->mem, _t34, cpu->r[7]);
|
|
L_028DD328: ; // 0x28dd328
|
|
/* 028DD328 */ cpu->r[3] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028DD328 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD32C */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD32C */ _t36 = _t35 & 0x00000001u;
|
|
/* 028DD32C */ if (_t36) goto L_028DD330; else goto L_028DD340;
|
|
L_028DD330: ; // 0x28dd330
|
|
/* 028DD330 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028DD334 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DD338 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD33C */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD33C */ _t38 = _t37 & 0x00000001u;
|
|
/* 028DD33C */ if (_t38) goto L_028DD364; else goto L_028DD340;
|
|
L_028DD340: ; // 0x28dd340
|
|
/* 028DD340 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD344 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD344 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028DD344 */ if (_t40) goto L_028DD348; else goto L_028DD358;
|
|
L_028DD348: ; // 0x28dd348
|
|
/* 028DD348 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028DD34C */ Gambit_fn_02801A78(cpu);
|
|
/* 028DD350 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD354 */ _t41 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD354 */ _t42 = _t41 & 0x00000001u;
|
|
/* 028DD354 */ if (_t42) goto L_028DD364; else goto L_028DD358;
|
|
L_028DD358: ; // 0x28dd358
|
|
/* 028DD358 */ _t43 = cpu->r[3] + 0x00000004u;
|
|
/* 028DD358 */ rbrew_write32(cpu->mem, _t43, cpu->r[30]);
|
|
/* 028DD35C */ _t44 = cpu->r[3] + 0x00000000u;
|
|
/* 028DD35C */ rbrew_write32(cpu->mem, _t44, cpu->r[30]);
|
|
/* 028DD360 */ _t45 = cpu->r[3] + 0x00000008u;
|
|
/* 028DD360 */ rbrew_write32(cpu->mem, _t45, cpu->r[30]);
|
|
L_028DD364: ; // 0x28dd364
|
|
/* 028DD364 */ cpu->r[0] = 0x00000014u;
|
|
/* 028DD368 */ _t46 = cpu->r[31] + 0x00000028u;
|
|
/* 028DD368 */ rbrew_write32(cpu->mem, _t46, cpu->r[0]);
|
|
L_028DD36C: ; // 0x28dd36c
|
|
/* 028DD36C */ _t47 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD36C */ cpu->r[29] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028DD370 */ _t48 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DD370 */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028DD374 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DD378 */ _t49 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD378 */ cpu->r[30] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028DD37C */ cpu->lr = cpu->r[0];
|
|
/* 028DD380 */ _t50 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD380 */ cpu->r[31] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028DD384 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DD388 */ return;
|
|
}
|
|
|
|
// fn_028DD248 @ 0x28dd248
|
|
void Gambit_fn_028DD248(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50;
|
|
|
|
L_028DD248: ; // 0x28dd248
|
|
/* 028DD248 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DD248 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD248 */ cpu->r[1] = _t0;
|
|
/* 028DD24C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD24C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DD250 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD250 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DD254 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DD254 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DD258 */ cpu->r[30] = cpu->r[4];
|
|
/* 028DD25C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD25C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DD260 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DD260 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DD264 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD264 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DD264 */ if (_t6) goto L_028DD268; else goto L_028DD278;
|
|
L_028DD268: ; // 0x28dd268
|
|
/* 028DD268 */ cpu->r[3] = 0x00000038u;
|
|
/* 028DD26C */ Gambit_fn_02801A78(cpu);
|
|
/* 028DD270 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DD270 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DD274 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD274 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DD274 */ if (_t8) goto L_028DD36C; else goto L_028DD278;
|
|
L_028DD278: ; // 0x28dd278
|
|
/* 028DD278 */ cpu->r[29] = cpu->r[31];
|
|
/* 028DD278 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DD27C */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD27C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028DD27C */ if (_t10) goto L_028DD280; else goto L_028DD290;
|
|
L_028DD280: ; // 0x28dd280
|
|
/* 028DD280 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028DD284 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DD288 */ cpu->r[29] = cpu->r[3];
|
|
/* 028DD288 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DD28C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD28C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028DD28C */ if (_t12) goto L_028DD2D4; else goto L_028DD290;
|
|
L_028DD290: ; // 0x28dd290
|
|
/* 028DD290 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DD290 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD294 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD294 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028DD294 */ if (_t14) goto L_028DD298; else goto L_028DD2A8;
|
|
L_028DD298: ; // 0x28dd298
|
|
/* 028DD298 */ cpu->r[3] = 0x00000008u;
|
|
/* 028DD29C */ Gambit_fn_02801A78(cpu);
|
|
/* 028DD2A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD2A4 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD2A4 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028DD2A4 */ if (_t16) goto L_028DD2C0; else goto L_028DD2A8;
|
|
L_028DD2A8: ; // 0x28dd2a8
|
|
/* 028DD2A8 */ cpu->r[9] = 0x10140000u;
|
|
/* 028DD2AC */ cpu->r[10] = 0x10140000u;
|
|
/* 028DD2B0 */ cpu->r[9] = cpu->r[9] + 0xFFFFB440u;
|
|
/* 028DD2B4 */ cpu->r[10] = cpu->r[10] + 0xFFFFB43Cu;
|
|
/* 028DD2B8 */ _t17 = cpu->r[3] + 0x00000004u;
|
|
/* 028DD2B8 */ rbrew_write32(cpu->mem, _t17, cpu->r[9]);
|
|
/* 028DD2BC */ _t18 = cpu->r[3] + 0x00000000u;
|
|
/* 028DD2BC */ rbrew_write32(cpu->mem, _t18, cpu->r[10]);
|
|
L_028DD2C0: ; // 0x28dd2c0
|
|
/* 028DD2C0 */ cpu->r[11] = 0x10140000u;
|
|
/* 028DD2C4 */ cpu->r[11] = cpu->r[11] + 0xFFFFB470u;
|
|
/* 028DD2C8 */ _t19 = cpu->r[29] + 0x00000008u;
|
|
/* 028DD2C8 */ rbrew_write32(cpu->mem, _t19, cpu->r[11]);
|
|
/* 028DD2CC */ _t20 = cpu->r[30] + 0x00000000u;
|
|
/* 028DD2CC */ cpu->r[12] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DD2D0 */ _t21 = cpu->r[29] + 0x00000000u;
|
|
/* 028DD2D0 */ rbrew_write32(cpu->mem, _t21, cpu->r[12]);
|
|
L_028DD2D4: ; // 0x28dd2d4
|
|
/* 028DD2D4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DD2D8 */ cpu->r[29] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028DD2D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DD2DC */ cpu->r[0] = cpu->r[0] + 0xFFFFB4E8u;
|
|
/* 028DD2E0 */ cpu->r[30] = 0x00000000u;
|
|
/* 028DD2E4 */ _t22 = cpu->r[31] + 0x00000008u;
|
|
/* 028DD2E4 */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
/* 028DD2E8 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD2E8 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028DD2E8 */ if (_t24) goto L_028DD2EC; else goto L_028DD2FC;
|
|
L_028DD2EC: ; // 0x28dd2ec
|
|
/* 028DD2EC */ cpu->r[3] = 0x00000010u;
|
|
/* 028DD2F0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DD2F4 */ cpu->r[29] = cpu->r[3];
|
|
/* 028DD2F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DD2F8 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD2F8 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028DD2F8 */ if (_t26) goto L_028DD328; else goto L_028DD2FC;
|
|
L_028DD2FC: ; // 0x28dd2fc
|
|
/* 028DD2FC */ cpu->r[3] = cpu->r[29];
|
|
/* 028DD2FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD300 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD300 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028DD300 */ if (_t28) goto L_028DD304; else goto L_028DD314;
|
|
L_028DD304: ; // 0x28dd304
|
|
/* 028DD304 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028DD308 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DD30C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD310 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD310 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028DD310 */ if (_t30) goto L_028DD320; else goto L_028DD314;
|
|
L_028DD314: ; // 0x28dd314
|
|
/* 028DD314 */ _t31 = cpu->r[3] + 0x00000004u;
|
|
/* 028DD314 */ rbrew_write32(cpu->mem, _t31, cpu->r[3]);
|
|
/* 028DD318 */ _t32 = cpu->r[3] + 0x00000008u;
|
|
/* 028DD318 */ rbrew_write32(cpu->mem, _t32, cpu->r[30]);
|
|
/* 028DD31C */ _t33 = cpu->r[3] + 0x00000000u;
|
|
/* 028DD31C */ rbrew_write32(cpu->mem, _t33, cpu->r[3]);
|
|
L_028DD320: ; // 0x28dd320
|
|
/* 028DD320 */ cpu->r[7] = 0xFFFFFFFFu;
|
|
/* 028DD324 */ _t34 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028DD324 */ rbrew_write32(cpu->mem, _t34, cpu->r[7]);
|
|
L_028DD328: ; // 0x28dd328
|
|
/* 028DD328 */ cpu->r[3] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028DD328 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD32C */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD32C */ _t36 = _t35 & 0x00000001u;
|
|
/* 028DD32C */ if (_t36) goto L_028DD330; else goto L_028DD340;
|
|
L_028DD330: ; // 0x28dd330
|
|
/* 028DD330 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028DD334 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DD338 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD33C */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD33C */ _t38 = _t37 & 0x00000001u;
|
|
/* 028DD33C */ if (_t38) goto L_028DD364; else goto L_028DD340;
|
|
L_028DD340: ; // 0x28dd340
|
|
/* 028DD340 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD344 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD344 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028DD344 */ if (_t40) goto L_028DD348; else goto L_028DD358;
|
|
L_028DD348: ; // 0x28dd348
|
|
/* 028DD348 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028DD34C */ Gambit_fn_02801A78(cpu);
|
|
/* 028DD350 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD354 */ _t41 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD354 */ _t42 = _t41 & 0x00000001u;
|
|
/* 028DD354 */ if (_t42) goto L_028DD364; else goto L_028DD358;
|
|
L_028DD358: ; // 0x28dd358
|
|
/* 028DD358 */ _t43 = cpu->r[3] + 0x00000004u;
|
|
/* 028DD358 */ rbrew_write32(cpu->mem, _t43, cpu->r[30]);
|
|
/* 028DD35C */ _t44 = cpu->r[3] + 0x00000000u;
|
|
/* 028DD35C */ rbrew_write32(cpu->mem, _t44, cpu->r[30]);
|
|
/* 028DD360 */ _t45 = cpu->r[3] + 0x00000008u;
|
|
/* 028DD360 */ rbrew_write32(cpu->mem, _t45, cpu->r[30]);
|
|
L_028DD364: ; // 0x28dd364
|
|
/* 028DD364 */ cpu->r[0] = 0x00000014u;
|
|
/* 028DD368 */ _t46 = cpu->r[31] + 0x00000028u;
|
|
/* 028DD368 */ rbrew_write32(cpu->mem, _t46, cpu->r[0]);
|
|
L_028DD36C: ; // 0x28dd36c
|
|
/* 028DD36C */ _t47 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD36C */ cpu->r[29] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028DD370 */ _t48 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DD370 */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028DD374 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DD378 */ _t49 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD378 */ cpu->r[30] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028DD37C */ cpu->lr = cpu->r[0];
|
|
/* 028DD380 */ _t50 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD380 */ cpu->r[31] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028DD384 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DD388 */ return;
|
|
}
|
|
|
|
// fn_028DD38C @ 0x28dd38c
|
|
void Gambit_fn_028DD38C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23;
|
|
|
|
L_028DD38C: ; // 0x28dd38c
|
|
/* 028DD38C */ cpu->r[0] = cpu->lr;
|
|
/* 028DD390 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028DD390 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD390 */ cpu->r[1] = _t0;
|
|
/* 028DD394 */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028DD394 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DD398 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DD39C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD39C */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028DD3A0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD3A0 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DD3A4 */ cpu->r[28] = 0x101D0000u;
|
|
/* 028DD3A8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DD3A8 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028DD3AC */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 028DD3AC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DD3B0 */ _t6 = cpu->r[28] + 0xFFFF9AD4u;
|
|
/* 028DD3B0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DD3B0 */ cpu->r[28] = _t6;
|
|
/* 028DD3B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD3B8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD3B8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DD3B8 */ if (_t8) goto L_028DD3BC; else goto L_028DD440;
|
|
L_028DD3BC: ; // 0x28dd3bc
|
|
/* 028DD3BC */ cpu->r[4] = cpu->r[30];
|
|
/* 028DD3C0 */ cpu->r[3] = 0x00000038u;
|
|
/* 028DD3C4 */ cpu->r[5] = 0x00000004u;
|
|
/* 028DD3C8 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028DD3CC */ cpu->r[31] = cpu->r[3];
|
|
/* 028DD3D0 */ cpu->r[29] = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DD3D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DD3D4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD3D4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028DD3D4 */ if (_t10) goto L_028DD3F4; else goto L_028DD3D8;
|
|
L_028DD3D8: ; // 0x28dd3d8
|
|
/* 028DD3D8 */ cpu->r[5] = 0x00000003u;
|
|
/* 028DD3DC */ cpu->r[4] = cpu->r[30];
|
|
/* 028DD3E0 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DD3E4 */ Gambit_fn_02821D88(cpu);
|
|
/* 028DD3E8 */ cpu->r[10] = 0x10140000u;
|
|
/* 028DD3EC */ cpu->r[10] = cpu->r[10] + 0xFFFFB4D8u;
|
|
/* 028DD3F0 */ _t11 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028DD3F0 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
L_028DD3F4: ; // 0x28dd3f4
|
|
/* 028DD3F4 */ cpu->r[9] = 0x101D0000u;
|
|
/* 028DD3F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DD3FC */ cpu->r[0] = 0x00000000u;
|
|
/* 028DD400 */ _t12 = cpu->r[9] + 0xFFFF9AD8u;
|
|
/* 028DD400 */ rbrew_write32(cpu->mem, _t12, cpu->r[29]);
|
|
/* 028DD404 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD404 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028DD404 */ if (_t14) goto L_028DD438; else goto L_028DD408;
|
|
L_028DD408: ; // 0x28dd408
|
|
/* 028DD408 */ cpu->r[11] = 0x10140000u;
|
|
/* 028DD40C */ cpu->r[0] = 0x00000001u;
|
|
/* 028DD410 */ cpu->r[11] = cpu->r[11] + 0xFFFFB440u;
|
|
/* 028DD414 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DD418 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD418 */ rbrew_write32(cpu->mem, _t15, cpu->r[11]);
|
|
/* 028DD41C */ cpu->r[12] = cpu->r[12] + 0xFFFFB4B8u;
|
|
/* 028DD420 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DD424 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028DD428 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD428 */ rbrew_write32(cpu->mem, _t16, cpu->r[12]);
|
|
/* 028DD42C */ Gambit_fn_028DD244(cpu);
|
|
/* 028DD430 */ _t17 = cpu->r[28] + 0x00000000u;
|
|
/* 028DD430 */ rbrew_write32(cpu->mem, _t17, cpu->r[3]);
|
|
/* 028DD434 */ goto L_028DD440;
|
|
L_028DD438: ; // 0x28dd438
|
|
/* 028DD438 */ cpu->r[3] = 0x00000000u;
|
|
/* 028DD43C */ _t18 = cpu->r[28] + 0x00000000u;
|
|
/* 028DD43C */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
L_028DD440: ; // 0x28dd440
|
|
/* 028DD440 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD440 */ cpu->r[28] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DD444 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD444 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DD448 */ _t21 = cpu->r[1] + 0x00000024u;
|
|
/* 028DD448 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DD44C */ _t22 = cpu->r[1] + 0x00000018u;
|
|
/* 028DD44C */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DD450 */ cpu->lr = cpu->r[0];
|
|
/* 028DD454 */ _t23 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DD454 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028DD458 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028DD45C */ return;
|
|
}
|
|
|
|
// fn_028DD390 @ 0x28dd390
|
|
void Gambit_fn_028DD390(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23;
|
|
|
|
L_028DD390: ; // 0x28dd390
|
|
/* 028DD390 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028DD390 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD390 */ cpu->r[1] = _t0;
|
|
/* 028DD394 */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028DD394 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DD398 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DD39C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD39C */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028DD3A0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD3A0 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DD3A4 */ cpu->r[28] = 0x101D0000u;
|
|
/* 028DD3A8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DD3A8 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028DD3AC */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 028DD3AC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DD3B0 */ _t6 = cpu->r[28] + 0xFFFF9AD4u;
|
|
/* 028DD3B0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DD3B0 */ cpu->r[28] = _t6;
|
|
/* 028DD3B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD3B8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD3B8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DD3B8 */ if (_t8) goto L_028DD3BC; else goto L_028DD440;
|
|
L_028DD3BC: ; // 0x28dd3bc
|
|
/* 028DD3BC */ cpu->r[4] = cpu->r[30];
|
|
/* 028DD3C0 */ cpu->r[3] = 0x00000038u;
|
|
/* 028DD3C4 */ cpu->r[5] = 0x00000004u;
|
|
/* 028DD3C8 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028DD3CC */ cpu->r[31] = cpu->r[3];
|
|
/* 028DD3D0 */ cpu->r[29] = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DD3D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DD3D4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD3D4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028DD3D4 */ if (_t10) goto L_028DD3F4; else goto L_028DD3D8;
|
|
L_028DD3D8: ; // 0x28dd3d8
|
|
/* 028DD3D8 */ cpu->r[5] = 0x00000003u;
|
|
/* 028DD3DC */ cpu->r[4] = cpu->r[30];
|
|
/* 028DD3E0 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DD3E4 */ Gambit_fn_02821D88(cpu);
|
|
/* 028DD3E8 */ cpu->r[10] = 0x10140000u;
|
|
/* 028DD3EC */ cpu->r[10] = cpu->r[10] + 0xFFFFB4D8u;
|
|
/* 028DD3F0 */ _t11 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028DD3F0 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
L_028DD3F4: ; // 0x28dd3f4
|
|
/* 028DD3F4 */ cpu->r[9] = 0x101D0000u;
|
|
/* 028DD3F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DD3FC */ cpu->r[0] = 0x00000000u;
|
|
/* 028DD400 */ _t12 = cpu->r[9] + 0xFFFF9AD8u;
|
|
/* 028DD400 */ rbrew_write32(cpu->mem, _t12, cpu->r[29]);
|
|
/* 028DD404 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD404 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028DD404 */ if (_t14) goto L_028DD438; else goto L_028DD408;
|
|
L_028DD408: ; // 0x28dd408
|
|
/* 028DD408 */ cpu->r[11] = 0x10140000u;
|
|
/* 028DD40C */ cpu->r[0] = 0x00000001u;
|
|
/* 028DD410 */ cpu->r[11] = cpu->r[11] + 0xFFFFB440u;
|
|
/* 028DD414 */ cpu->r[12] = 0x10140000u;
|
|
/* 028DD418 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD418 */ rbrew_write32(cpu->mem, _t15, cpu->r[11]);
|
|
/* 028DD41C */ cpu->r[12] = cpu->r[12] + 0xFFFFB4B8u;
|
|
/* 028DD420 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DD424 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028DD428 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD428 */ rbrew_write32(cpu->mem, _t16, cpu->r[12]);
|
|
/* 028DD42C */ Gambit_fn_028DD244(cpu);
|
|
/* 028DD430 */ _t17 = cpu->r[28] + 0x00000000u;
|
|
/* 028DD430 */ rbrew_write32(cpu->mem, _t17, cpu->r[3]);
|
|
/* 028DD434 */ goto L_028DD440;
|
|
L_028DD438: ; // 0x28dd438
|
|
/* 028DD438 */ cpu->r[3] = 0x00000000u;
|
|
/* 028DD43C */ _t18 = cpu->r[28] + 0x00000000u;
|
|
/* 028DD43C */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
L_028DD440: ; // 0x28dd440
|
|
/* 028DD440 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD440 */ cpu->r[28] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DD444 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD444 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DD448 */ _t21 = cpu->r[1] + 0x00000024u;
|
|
/* 028DD448 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DD44C */ _t22 = cpu->r[1] + 0x00000018u;
|
|
/* 028DD44C */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DD450 */ cpu->lr = cpu->r[0];
|
|
/* 028DD454 */ _t23 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DD454 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028DD458 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028DD45C */ return;
|
|
}
|
|
|
|
// fn_028DD460 @ 0x28dd460
|
|
void Gambit_fn_028DD460(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028DD460: ; // 0x28dd460
|
|
/* 028DD460 */ cpu->r[0] = cpu->lr;
|
|
/* 028DD464 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DD464 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD464 */ cpu->r[1] = _t0;
|
|
/* 028DD468 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD468 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DD46C */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD46C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DD470 */ cpu->r[9] = 0x101D0000u;
|
|
/* 028DD474 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD474 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DD478 */ _t4 = cpu->r[9] + 0xFFFF9AD8u;
|
|
/* 028DD478 */ cpu->r[3] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028DD478 */ cpu->r[9] = _t4;
|
|
/* 028DD47C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD480 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD480 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DD480 */ if (_t6) goto L_028DD4C8; else goto L_028DD484;
|
|
L_028DD484: ; // 0x28dd484
|
|
/* 028DD484 */ cpu->r[30] = 0x00000000u;
|
|
/* 028DD488 */ _t7 = cpu->r[9] + 0x00000000u;
|
|
/* 028DD488 */ rbrew_write32(cpu->mem, _t7, cpu->r[30]);
|
|
/* 028DD48C */ _t8 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028DD48C */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DD490 */ _t9 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028DD490 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DD494 */ cpu->ctr = cpu->r[0];
|
|
/* 028DD498 */ cpu->r[4] = 0x00000002u;
|
|
/* 028DD49C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DD4A0 */ cpu->r[31] = 0x101D0000u;
|
|
/* 028DD4A4 */ _t10 = cpu->r[31] + 0xFFFF9AD4u;
|
|
/* 028DD4A4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DD4A4 */ cpu->r[31] = _t10;
|
|
/* 028DD4A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD4AC */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD4AC */ _t12 = _t11 & 0x00000001u;
|
|
/* 028DD4AC */ if (_t12) goto L_028DD4C4; else goto L_028DD4B0;
|
|
L_028DD4B0: ; // 0x28dd4b0
|
|
/* 028DD4B0 */ _t13 = cpu->r[3] + 0x00000008u;
|
|
/* 028DD4B0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DD4B4 */ _t14 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028DD4B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DD4B8 */ cpu->ctr = cpu->r[12];
|
|
/* 028DD4BC */ cpu->r[4] = 0x00000003u;
|
|
/* 028DD4C0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028DD4C4: ; // 0x28dd4c4
|
|
/* 028DD4C4 */ _t15 = cpu->r[31] + 0x00000000u;
|
|
/* 028DD4C4 */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
L_028DD4C8: ; // 0x28dd4c8
|
|
/* 028DD4C8 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD4C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DD4CC */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD4CC */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DD4D0 */ cpu->lr = cpu->r[0];
|
|
/* 028DD4D4 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD4D4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DD4D8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DD4DC */ return;
|
|
}
|
|
|
|
// fn_028DD464 @ 0x28dd464
|
|
void Gambit_fn_028DD464(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028DD464: ; // 0x28dd464
|
|
/* 028DD464 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DD464 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD464 */ cpu->r[1] = _t0;
|
|
/* 028DD468 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD468 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DD46C */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD46C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DD470 */ cpu->r[9] = 0x101D0000u;
|
|
/* 028DD474 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD474 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DD478 */ _t4 = cpu->r[9] + 0xFFFF9AD8u;
|
|
/* 028DD478 */ cpu->r[3] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028DD478 */ cpu->r[9] = _t4;
|
|
/* 028DD47C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD480 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD480 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DD480 */ if (_t6) goto L_028DD4C8; else goto L_028DD484;
|
|
L_028DD484: ; // 0x28dd484
|
|
/* 028DD484 */ cpu->r[30] = 0x00000000u;
|
|
/* 028DD488 */ _t7 = cpu->r[9] + 0x00000000u;
|
|
/* 028DD488 */ rbrew_write32(cpu->mem, _t7, cpu->r[30]);
|
|
/* 028DD48C */ _t8 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028DD48C */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DD490 */ _t9 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028DD490 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DD494 */ cpu->ctr = cpu->r[0];
|
|
/* 028DD498 */ cpu->r[4] = 0x00000002u;
|
|
/* 028DD49C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DD4A0 */ cpu->r[31] = 0x101D0000u;
|
|
/* 028DD4A4 */ _t10 = cpu->r[31] + 0xFFFF9AD4u;
|
|
/* 028DD4A4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DD4A4 */ cpu->r[31] = _t10;
|
|
/* 028DD4A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD4AC */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD4AC */ _t12 = _t11 & 0x00000001u;
|
|
/* 028DD4AC */ if (_t12) goto L_028DD4C4; else goto L_028DD4B0;
|
|
L_028DD4B0: ; // 0x28dd4b0
|
|
/* 028DD4B0 */ _t13 = cpu->r[3] + 0x00000008u;
|
|
/* 028DD4B0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DD4B4 */ _t14 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028DD4B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DD4B8 */ cpu->ctr = cpu->r[12];
|
|
/* 028DD4BC */ cpu->r[4] = 0x00000003u;
|
|
/* 028DD4C0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028DD4C4: ; // 0x28dd4c4
|
|
/* 028DD4C4 */ _t15 = cpu->r[31] + 0x00000000u;
|
|
/* 028DD4C4 */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
L_028DD4C8: ; // 0x28dd4c8
|
|
/* 028DD4C8 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD4C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DD4CC */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD4CC */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DD4D0 */ cpu->lr = cpu->r[0];
|
|
/* 028DD4D4 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD4D4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DD4D8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DD4DC */ return;
|
|
}
|
|
|
|
// fn_028DD4E0 @ 0x28dd4e0
|
|
void Gambit_fn_028DD4E0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32;
|
|
|
|
L_028DD4E0: ; // 0x28dd4e0
|
|
/* 028DD4E0 */ cpu->r[0] = cpu->lr;
|
|
/* 028DD4E4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DD4E4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD4E4 */ cpu->r[1] = _t0;
|
|
/* 028DD4E8 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD4E8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DD4EC */ cpu->r[31] = cpu->r[4];
|
|
/* 028DD4F0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD4F0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028DD4F4 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD4F4 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028DD4F8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DD4F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028DD4FC */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD4FC */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028DD500 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DD500 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DD504 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD504 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DD504 */ if (_t7) goto L_028DD598; else goto L_028DD508;
|
|
L_028DD508: ; // 0x28dd508
|
|
/* 028DD508 */ cpu->r[8] = 0x10140000u;
|
|
/* 028DD50C */ cpu->r[8] = cpu->r[8] + 0xFFFFB4E8u;
|
|
/* 028DD510 */ cpu->r[3] = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DD514 */ _t8 = cpu->r[30] + 0x00000008u;
|
|
/* 028DD514 */ rbrew_write32(cpu->mem, _t8, cpu->r[8]);
|
|
/* 028DD518 */ Gambit_fn_0280236C(cpu);
|
|
/* 028DD51C */ _t9 = cpu->r[30] + 0x00000034u;
|
|
/* 028DD51C */ cpu->r[9] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DD520 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028DD524 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD524 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DD524 */ if (_t11) goto L_028DD588; else goto L_028DD528;
|
|
L_028DD528: ; // 0x28dd528
|
|
/* 028DD528 */ _t12 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD528 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DD52C */ cpu->r[29] = 0x00000000u;
|
|
/* 028DD530 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[0]);
|
|
/* 028DD534 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD534 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028DD534 */ if (_t14) goto L_028DD538; else goto L_028DD580;
|
|
L_028DD538: ; // 0x28dd538
|
|
/* 028DD538 */ cpu->r[28] = 0x00000000u;
|
|
L_028DD53C: ; // 0x28dd53c
|
|
/* 028DD53C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 028DD540 */ cpu->r[3] = 0x00000000u;
|
|
/* 028DD544 */ _t15 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD544 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028DD544 */ if (_t16) goto L_028DD548; else goto L_028DD550;
|
|
L_028DD548: ; // 0x28dd548
|
|
/* 028DD548 */ _t17 = cpu->r[30] + 0x00000034u;
|
|
/* 028DD548 */ cpu->r[10] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DD54C */ _t18 = cpu->r[10] + cpu->r[28];
|
|
/* 028DD54C */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
L_028DD550: ; // 0x28dd550
|
|
/* 028DD550 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD554 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD554 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028DD554 */ if (_t20) goto L_028DD570; else goto L_028DD558;
|
|
L_028DD558: ; // 0x28dd558
|
|
/* 028DD558 */ _t21 = cpu->r[3] + 0x00000008u;
|
|
/* 028DD558 */ cpu->r[11] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DD55C */ _t22 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028DD55C */ cpu->r[12] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DD560 */ cpu->ctr = cpu->r[12];
|
|
/* 028DD564 */ cpu->r[4] = 0x00000003u;
|
|
/* 028DD568 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DD56C */ _t23 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD56C */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
L_028DD570: ; // 0x28dd570
|
|
/* 028DD570 */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 028DD574 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[0]);
|
|
/* 028DD578 */ cpu->r[28] = cpu->r[28] + 0x00000004u;
|
|
/* 028DD57C */ _t24 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD57C */ _t25 = _t24 & 0x00000001u;
|
|
/* 028DD57C */ if (_t25) goto L_028DD53C; else goto L_028DD580;
|
|
L_028DD580: ; // 0x28dd580
|
|
/* 028DD580 */ cpu->r[3] = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD584 */ Gambit_fn_02802424(cpu);
|
|
L_028DD588: ; // 0x28dd588
|
|
/* 028DD588 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DD588 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DD58C */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD58C */ _t27 = _t26 & 0x00000001u;
|
|
/* 028DD58C */ if (_t27) goto L_028DD598; else goto L_028DD590;
|
|
L_028DD590: ; // 0x28dd590
|
|
/* 028DD590 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DD594 */ Gambit_fn_02801BB0(cpu);
|
|
L_028DD598: ; // 0x28dd598
|
|
/* 028DD598 */ _t28 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD598 */ cpu->r[28] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028DD59C */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD59C */ cpu->r[29] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028DD5A0 */ _t30 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DD5A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028DD5A4 */ _t31 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD5A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028DD5A8 */ cpu->lr = cpu->r[0];
|
|
/* 028DD5AC */ _t32 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD5AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028DD5B0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DD5B4 */ return;
|
|
}
|
|
|
|
// fn_028DD4E4 @ 0x28dd4e4
|
|
void Gambit_fn_028DD4E4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32;
|
|
|
|
L_028DD4E4: ; // 0x28dd4e4
|
|
/* 028DD4E4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DD4E4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD4E4 */ cpu->r[1] = _t0;
|
|
/* 028DD4E8 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD4E8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DD4EC */ cpu->r[31] = cpu->r[4];
|
|
/* 028DD4F0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD4F0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028DD4F4 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD4F4 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028DD4F8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DD4F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028DD4FC */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD4FC */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028DD500 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DD500 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DD504 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD504 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DD504 */ if (_t7) goto L_028DD598; else goto L_028DD508;
|
|
L_028DD508: ; // 0x28dd508
|
|
/* 028DD508 */ cpu->r[8] = 0x10140000u;
|
|
/* 028DD50C */ cpu->r[8] = cpu->r[8] + 0xFFFFB4E8u;
|
|
/* 028DD510 */ cpu->r[3] = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DD514 */ _t8 = cpu->r[30] + 0x00000008u;
|
|
/* 028DD514 */ rbrew_write32(cpu->mem, _t8, cpu->r[8]);
|
|
/* 028DD518 */ Gambit_fn_0280236C(cpu);
|
|
/* 028DD51C */ _t9 = cpu->r[30] + 0x00000034u;
|
|
/* 028DD51C */ cpu->r[9] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DD520 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028DD524 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD524 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DD524 */ if (_t11) goto L_028DD588; else goto L_028DD528;
|
|
L_028DD528: ; // 0x28dd528
|
|
/* 028DD528 */ _t12 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD528 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DD52C */ cpu->r[29] = 0x00000000u;
|
|
/* 028DD530 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[0]);
|
|
/* 028DD534 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD534 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028DD534 */ if (_t14) goto L_028DD538; else goto L_028DD580;
|
|
L_028DD538: ; // 0x28dd538
|
|
/* 028DD538 */ cpu->r[28] = 0x00000000u;
|
|
L_028DD53C: ; // 0x28dd53c
|
|
/* 028DD53C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 028DD540 */ cpu->r[3] = 0x00000000u;
|
|
/* 028DD544 */ _t15 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD544 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028DD544 */ if (_t16) goto L_028DD548; else goto L_028DD550;
|
|
L_028DD548: ; // 0x28dd548
|
|
/* 028DD548 */ _t17 = cpu->r[30] + 0x00000034u;
|
|
/* 028DD548 */ cpu->r[10] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DD54C */ _t18 = cpu->r[10] + cpu->r[28];
|
|
/* 028DD54C */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
L_028DD550: ; // 0x28dd550
|
|
/* 028DD550 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD554 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD554 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028DD554 */ if (_t20) goto L_028DD570; else goto L_028DD558;
|
|
L_028DD558: ; // 0x28dd558
|
|
/* 028DD558 */ _t21 = cpu->r[3] + 0x00000008u;
|
|
/* 028DD558 */ cpu->r[11] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DD55C */ _t22 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028DD55C */ cpu->r[12] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DD560 */ cpu->ctr = cpu->r[12];
|
|
/* 028DD564 */ cpu->r[4] = 0x00000003u;
|
|
/* 028DD568 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DD56C */ _t23 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD56C */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
L_028DD570: ; // 0x28dd570
|
|
/* 028DD570 */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 028DD574 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[0]);
|
|
/* 028DD578 */ cpu->r[28] = cpu->r[28] + 0x00000004u;
|
|
/* 028DD57C */ _t24 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD57C */ _t25 = _t24 & 0x00000001u;
|
|
/* 028DD57C */ if (_t25) goto L_028DD53C; else goto L_028DD580;
|
|
L_028DD580: ; // 0x28dd580
|
|
/* 028DD580 */ cpu->r[3] = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD584 */ Gambit_fn_02802424(cpu);
|
|
L_028DD588: ; // 0x28dd588
|
|
/* 028DD588 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DD588 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DD58C */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD58C */ _t27 = _t26 & 0x00000001u;
|
|
/* 028DD58C */ if (_t27) goto L_028DD598; else goto L_028DD590;
|
|
L_028DD590: ; // 0x28dd590
|
|
/* 028DD590 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DD594 */ Gambit_fn_02801BB0(cpu);
|
|
L_028DD598: ; // 0x28dd598
|
|
/* 028DD598 */ _t28 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD598 */ cpu->r[28] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028DD59C */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD59C */ cpu->r[29] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028DD5A0 */ _t30 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DD5A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028DD5A4 */ _t31 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD5A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028DD5A8 */ cpu->lr = cpu->r[0];
|
|
/* 028DD5AC */ _t32 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD5AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028DD5B0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DD5B4 */ return;
|
|
}
|
|
|
|
// fn_028DD5B8 @ 0x28dd5b8
|
|
void Gambit_fn_028DD5B8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35;
|
|
|
|
L_028DD5B8: ; // 0x28dd5b8
|
|
/* 028DD5B8 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028DD5B8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD5B8 */ cpu->r[1] = _t0;
|
|
/* 028DD5BC */ /* nop */
|
|
/* 028DD5C0 */ cpu->r[0] = cpu->lr;
|
|
/* 028DD5C4 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DD5C4 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028DD5C8 */ _t2 = cpu->r[3] + 0x00000024u;
|
|
/* 028DD5C8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028DD5CC */ cpu->r[27] = cpu->r[4];
|
|
/* 028DD5D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028DD5D4 */ cpu->r[10] = cpu->r[3] + 0x0000001Cu;
|
|
/* 028DD5D8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD5D8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028DD5D8 */ if (_t4) goto L_028DD6B0; else goto L_028DD5DC;
|
|
L_028DD5DC: ; // 0x28dd5dc
|
|
/* 028DD5DC */ _t5 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028DD5DC */ cpu->r[29] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028DD5E0 */ _t6 = cpu->r[10] + 0x00000004u;
|
|
/* 028DD5E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DD5E4 */ cpu->r[31] = cpu->r[10] - cpu->r[29];
|
|
/* 028DD5E8 */ cpu->r[28] = cpu->r[0] - cpu->r[29];
|
|
/* 028DD5EC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 028DD5F0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD5F0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DD5F0 */ if (_t8) goto L_028DD6B0; else goto L_028DD5F4;
|
|
L_028DD5F4: ; // 0x28dd5f4
|
|
/* 028DD5F4 */ cpu->r[30] = 0x10110000u;
|
|
/* 028DD5F8 */ cpu->r[26] = 0x00080000u;
|
|
/* 028DD5FC */ _t9 = cpu->r[30] + 0x00007399u;
|
|
/* 028DD5FC */ cpu->r[30] = rbrew_read8(cpu->mem, _t9);
|
|
/* 028DD600 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
L_028DD604: ; // 0x28dd604
|
|
/* 028DD604 */ _t10 = cpu->r[28] + 0x00000004u;
|
|
/* 028DD604 */ cpu->r[5] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DD608 */ _t11 = cpu->r[5] + 0x00000014u;
|
|
/* 028DD608 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DD60C */ cpu->ctr = cpu->r[0];
|
|
/* 028DD610 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DD614 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DD618 */ _t12 = cpu->r[28] + 0x00000004u;
|
|
/* 028DD618 */ cpu->r[7] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DD61C */ _t13 = cpu->r[7] + 0x00000014u;
|
|
/* 028DD61C */ cpu->r[8] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DD620 */ cpu->ctr = cpu->r[8];
|
|
/* 028DD624 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DD628 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DD62C */ _t14 = cpu->r[27] + 0x00000004u;
|
|
/* 028DD62C */ cpu->r[9] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DD630 */ _t15 = cpu->r[9] + 0x00000014u;
|
|
/* 028DD630 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028DD634 */ cpu->ctr = cpu->r[10];
|
|
/* 028DD638 */ _t16 = cpu->r[28] + 0x00000000u;
|
|
/* 028DD638 */ cpu->r[25] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DD63C */ cpu->r[3] = cpu->r[27];
|
|
/* 028DD640 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DD644 */ _t17 = cpu->r[27] + 0x00000000u;
|
|
/* 028DD644 */ cpu->r[11] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DD648 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[25], cpu->r[11]);
|
|
/* 028DD64C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD64C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DD64C */ if (_t19) goto L_028DD684; else goto L_028DD650;
|
|
L_028DD650: ; // 0x28dd650
|
|
/* 028DD650 */ _t20 = cpu->r[28] + 0x00000000u;
|
|
/* 028DD650 */ cpu->r[8] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DD654 */ _t21 = cpu->r[27] + 0x00000000u;
|
|
/* 028DD654 */ cpu->r[7] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DD658 */ cpu->r[8] = cpu->r[8] + 0xFFFFFFFFu;
|
|
/* 028DD65C */ cpu->ctr = cpu->r[26];
|
|
/* 028DD660 */ cpu->r[7] = cpu->r[7] + 0xFFFFFFFFu;
|
|
L_028DD664: ; // 0x28dd664
|
|
/* 028DD664 */ _t22 = cpu->r[8] + 0x00000001u;
|
|
/* 028DD664 */ cpu->r[0] = rbrew_read8(cpu->mem, _t22);
|
|
/* 028DD664 */ cpu->r[8] = _t22;
|
|
/* 028DD668 */ _t23 = cpu->r[7] + 0x00000001u;
|
|
/* 028DD668 */ cpu->r[12] = rbrew_read8(cpu->mem, _t23);
|
|
/* 028DD668 */ cpu->r[7] = _t23;
|
|
/* 028DD66C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 028DD670 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD670 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028DD670 */ if (_t25) goto L_028DD674; else goto L_028DD69C;
|
|
L_028DD674: ; // 0x28dd674
|
|
/* 028DD674 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[30]);
|
|
/* 028DD678 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD678 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028DD678 */ if (_t27) goto L_028DD684; else goto L_028DD67C;
|
|
L_028DD67C: ; // 0x28dd67c
|
|
/* 028DD67C */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028DD67C */ _t28 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028DD67C */ _t29 = _t28 >> (0x00000002u & 31u);
|
|
/* 028DD67C */ _t30 = _t29 & 0x00000001u;
|
|
/* 028DD67C */ if (_t30) goto L_028DD664; else goto L_028DD680;
|
|
L_028DD680: ; // 0x28dd680
|
|
/* 028DD680 */ goto L_028DD69C;
|
|
L_028DD684: ; // 0x28dd684
|
|
/* 028DD684 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DD688 */ /* nop */
|
|
/* 028DD68C */ _t31 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DD68C */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028DD690 */ cpu->lr = cpu->r[0];
|
|
/* 028DD694 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028DD698 */ return;
|
|
L_028DD69C: ; // 0x28dd69c
|
|
/* 028DD69C */ cpu->r[12] = cpu->r[28] + cpu->r[29];
|
|
/* 028DD6A0 */ _t32 = cpu->r[12] + 0x00000004u;
|
|
/* 028DD6A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028DD6A4 */ cpu->r[28] = cpu->r[0] - cpu->r[29];
|
|
/* 028DD6A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 028DD6AC */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD6AC */ _t34 = _t33 & 0x00000001u;
|
|
/* 028DD6AC */ if (_t34) goto L_028DD6B0; else goto L_028DD604;
|
|
L_028DD6B0: ; // 0x28dd6b0
|
|
/* 028DD6B0 */ /* nop */
|
|
/* 028DD6B4 */ _t35 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DD6B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028DD6B8 */ cpu->lr = cpu->r[0];
|
|
/* 028DD6BC */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028DD6C0 */ cpu->r[3] = 0x00000000u;
|
|
/* 028DD6C4 */ return;
|
|
}
|
|
|
|
// fn_028DD6C8 @ 0x28dd6c8
|
|
void Gambit_fn_028DD6C8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028DD6C8: ; // 0x28dd6c8
|
|
/* 028DD6C8 */ cpu->r[0] = cpu->lr;
|
|
/* 028DD6CC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DD6CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD6CC */ cpu->r[1] = _t0;
|
|
/* 028DD6D0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD6D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DD6D4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD6D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028DD6D8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DD6DC */ cpu->r[31] = cpu->r[4];
|
|
/* 028DD6E0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD6E0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DD6E4 */ Gambit_fn_028DD5B8(cpu);
|
|
/* 028DD6E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD6EC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD6EC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DD6EC */ if (_t5) goto L_028DD70C; else goto L_028DD6F0;
|
|
L_028DD6F0: ; // 0x28dd6f0
|
|
/* 028DD6F0 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD6F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DD6F4 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD6F4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DD6F8 */ cpu->lr = cpu->r[0];
|
|
/* 028DD6FC */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD6FC */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DD700 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DD704 */ cpu->r[3] = 0x00000000u;
|
|
/* 028DD708 */ return;
|
|
L_028DD70C: ; // 0x28dd70c
|
|
/* 028DD70C */ _t9 = cpu->r[30] + 0x00000028u;
|
|
/* 028DD70C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DD710 */ cpu->r[3] = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DD714 */ cpu->r[4] = cpu->r[31] + cpu->r[0];
|
|
/* 028DD718 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028DD71C */ _t10 = cpu->r[30] + 0x00000024u;
|
|
/* 028DD71C */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DD720 */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028DD724 */ _t11 = cpu->r[30] + 0x00000024u;
|
|
/* 028DD724 */ rbrew_write32(cpu->mem, _t11, cpu->r[12]);
|
|
/* 028DD728 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD728 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DD72C */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD72C */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DD730 */ cpu->lr = cpu->r[0];
|
|
/* 028DD734 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD734 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DD738 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DD73C */ cpu->r[3] = 0x00000001u;
|
|
/* 028DD740 */ return;
|
|
}
|
|
|
|
// fn_028DD6CC @ 0x28dd6cc
|
|
void Gambit_fn_028DD6CC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028DD6CC: ; // 0x28dd6cc
|
|
/* 028DD6CC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DD6CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD6CC */ cpu->r[1] = _t0;
|
|
/* 028DD6D0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD6D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DD6D4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD6D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028DD6D8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DD6DC */ cpu->r[31] = cpu->r[4];
|
|
/* 028DD6E0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD6E0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DD6E4 */ Gambit_fn_028DD5B8(cpu);
|
|
/* 028DD6E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD6EC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD6EC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DD6EC */ if (_t5) goto L_028DD70C; else goto L_028DD6F0;
|
|
L_028DD6F0: ; // 0x28dd6f0
|
|
/* 028DD6F0 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD6F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DD6F4 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD6F4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DD6F8 */ cpu->lr = cpu->r[0];
|
|
/* 028DD6FC */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD6FC */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DD700 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DD704 */ cpu->r[3] = 0x00000000u;
|
|
/* 028DD708 */ return;
|
|
L_028DD70C: ; // 0x28dd70c
|
|
/* 028DD70C */ _t9 = cpu->r[30] + 0x00000028u;
|
|
/* 028DD70C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DD710 */ cpu->r[3] = cpu->r[30] + 0x0000001Cu;
|
|
/* 028DD714 */ cpu->r[4] = cpu->r[31] + cpu->r[0];
|
|
/* 028DD718 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028DD71C */ _t10 = cpu->r[30] + 0x00000024u;
|
|
/* 028DD71C */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DD720 */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028DD724 */ _t11 = cpu->r[30] + 0x00000024u;
|
|
/* 028DD724 */ rbrew_write32(cpu->mem, _t11, cpu->r[12]);
|
|
/* 028DD728 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD728 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DD72C */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD72C */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DD730 */ cpu->lr = cpu->r[0];
|
|
/* 028DD734 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD734 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DD738 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DD73C */ cpu->r[3] = 0x00000001u;
|
|
/* 028DD740 */ return;
|
|
}
|
|
|
|
// fn_028DD744 @ 0x28dd744
|
|
void Gambit_fn_028DD744(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47;
|
|
|
|
L_028DD744: ; // 0x28dd744
|
|
/* 028DD744 */ cpu->r[0] = cpu->lr;
|
|
/* 028DD748 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DD748 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD748 */ cpu->r[1] = _t0;
|
|
/* 028DD74C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD74C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DD750 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD750 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DD754 */ cpu->r[31] = cpu->r[4];
|
|
/* 028DD758 */ cpu->r[4] = 0x00000003u;
|
|
/* 028DD75C */ cpu->r[30] = cpu->r[3];
|
|
/* 028DD760 */ cpu->r[5] = cpu->r[31];
|
|
/* 028DD764 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD764 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DD768 */ cpu->r[3] = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD76C */ cpu->r[6] = 0x00000004u;
|
|
/* 028DD770 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DD770 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DD774 */ Gambit_fn_028023CC(cpu);
|
|
/* 028DD778 */ cpu->r[4] = cpu->r[31];
|
|
/* 028DD77C */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028DD780 */ cpu->r[5] = 0x00000004u;
|
|
/* 028DD784 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028DD788 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD78C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD78C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DD78C */ if (_t6) goto L_028DD794; else goto L_028DD790;
|
|
L_028DD790: ; // 0x28dd790
|
|
/* 028DD790 */ Gambit_fn_028EDB88(cpu);
|
|
L_028DD794: ; // 0x28dd794
|
|
/* 028DD794 */ _t7 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD794 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DD798 */ _t8 = cpu->r[30] + 0x00000030u;
|
|
/* 028DD798 */ cpu->r[6] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DD79C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[6]);
|
|
/* 028DD7A0 */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD7A0 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028DD7A0 */ if (_t10) goto L_028DD7A4; else goto L_028DD7BC;
|
|
L_028DD7A4: ; // 0x28dd7a4
|
|
/* 028DD7A4 */ _t11 = cpu->r[30] + 0x00000034u;
|
|
/* 028DD7A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DD7A8 */ cpu->r[7] = rbrew_rlwinm(cpu->r[10], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028DD7AC */ _t12 = cpu->r[7] + cpu->r[0];
|
|
/* 028DD7AC */ rbrew_write32(cpu->mem, _t12, cpu->r[3]);
|
|
/* 028DD7B0 */ _t13 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD7B0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DD7B4 */ cpu->r[9] = cpu->r[9] + 0x00000001u;
|
|
/* 028DD7B8 */ _t14 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD7B8 */ rbrew_write32(cpu->mem, _t14, cpu->r[9]);
|
|
L_028DD7BC: ; // 0x28dd7bc
|
|
/* 028DD7BC */ cpu->r[4] = cpu->r[31];
|
|
/* 028DD7C0 */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028DD7C4 */ cpu->r[5] = 0x00000004u;
|
|
/* 028DD7C8 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028DD7CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD7D0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD7D0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028DD7D0 */ if (_t16) goto L_028DD7D8; else goto L_028DD7D4;
|
|
L_028DD7D4: ; // 0x28dd7d4
|
|
/* 028DD7D4 */ Gambit_fn_028EDD44(cpu);
|
|
L_028DD7D8: ; // 0x28dd7d8
|
|
/* 028DD7D8 */ _t17 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD7D8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DD7DC */ _t18 = cpu->r[30] + 0x00000030u;
|
|
/* 028DD7DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DD7E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[0]);
|
|
/* 028DD7E4 */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD7E4 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028DD7E4 */ if (_t20) goto L_028DD7E8; else goto L_028DD800;
|
|
L_028DD7E8: ; // 0x28dd7e8
|
|
/* 028DD7E8 */ _t21 = cpu->r[30] + 0x00000034u;
|
|
/* 028DD7E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DD7EC */ cpu->r[12] = rbrew_rlwinm(cpu->r[10], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028DD7F0 */ _t22 = cpu->r[12] + cpu->r[0];
|
|
/* 028DD7F0 */ rbrew_write32(cpu->mem, _t22, cpu->r[3]);
|
|
/* 028DD7F4 */ _t23 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD7F4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028DD7F8 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028DD7FC */ _t24 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD7FC */ rbrew_write32(cpu->mem, _t24, cpu->r[10]);
|
|
L_028DD800: ; // 0x28dd800
|
|
/* 028DD800 */ cpu->r[4] = cpu->r[31];
|
|
/* 028DD804 */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028DD808 */ cpu->r[5] = 0x00000004u;
|
|
/* 028DD80C */ Gambit_fn_02801AC8(cpu);
|
|
/* 028DD810 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD814 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD814 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028DD814 */ if (_t26) goto L_028DD81C; else goto L_028DD818;
|
|
L_028DD818: ; // 0x28dd818
|
|
/* 028DD818 */ Gambit_fn_028EDEC8(cpu);
|
|
L_028DD81C: ; // 0x28dd81c
|
|
/* 028DD81C */ _t27 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD81C */ cpu->r[10] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028DD820 */ _t28 = cpu->r[30] + 0x00000030u;
|
|
/* 028DD820 */ cpu->r[11] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028DD824 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[11]);
|
|
/* 028DD828 */ _t29 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD828 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028DD828 */ if (_t30) goto L_028DD82C; else goto L_028DD844;
|
|
L_028DD82C: ; // 0x28dd82c
|
|
/* 028DD82C */ _t31 = cpu->r[30] + 0x00000034u;
|
|
/* 028DD82C */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028DD830 */ cpu->r[12] = rbrew_rlwinm(cpu->r[10], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028DD834 */ _t32 = cpu->r[12] + cpu->r[0];
|
|
/* 028DD834 */ rbrew_write32(cpu->mem, _t32, cpu->r[3]);
|
|
/* 028DD838 */ _t33 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD838 */ cpu->r[10] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028DD83C */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028DD840 */ _t34 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD840 */ rbrew_write32(cpu->mem, _t34, cpu->r[10]);
|
|
L_028DD844: ; // 0x28dd844
|
|
/* 028DD844 */ cpu->r[31] = 0x00000000u;
|
|
/* 028DD848 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[10]);
|
|
/* 028DD84C */ _t35 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD84C */ _t36 = _t35 & 0x00000001u;
|
|
/* 028DD84C */ if (_t36) goto L_028DD850; else goto L_028DD884;
|
|
L_028DD850: ; // 0x28dd850
|
|
/* 028DD850 */ cpu->r[29] = 0x00000000u;
|
|
L_028DD854: ; // 0x28dd854
|
|
/* 028DD854 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[10]);
|
|
/* 028DD858 */ cpu->r[4] = 0x00000000u;
|
|
/* 028DD85C */ _t37 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD85C */ _t38 = _t37 & 0x00000001u;
|
|
/* 028DD85C */ if (_t38) goto L_028DD860; else goto L_028DD868;
|
|
L_028DD860: ; // 0x28dd860
|
|
/* 028DD860 */ _t39 = cpu->r[30] + 0x00000034u;
|
|
/* 028DD860 */ cpu->r[5] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028DD864 */ _t40 = cpu->r[5] + cpu->r[29];
|
|
/* 028DD864 */ cpu->r[4] = rbrew_read32(cpu->mem, _t40);
|
|
L_028DD868: ; // 0x28dd868
|
|
/* 028DD868 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DD86C */ Gambit_fn_028DD6C8(cpu);
|
|
/* 028DD870 */ _t41 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD870 */ cpu->r[10] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028DD874 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028DD878 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[10]);
|
|
/* 028DD87C */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 028DD880 */ _t42 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD880 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028DD880 */ if (_t43) goto L_028DD854; else goto L_028DD884;
|
|
L_028DD884: ; // 0x28dd884
|
|
/* 028DD884 */ _t44 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD884 */ cpu->r[29] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028DD888 */ _t45 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DD888 */ cpu->r[0] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028DD88C */ _t46 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD88C */ cpu->r[30] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028DD890 */ cpu->lr = cpu->r[0];
|
|
/* 028DD894 */ _t47 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD894 */ cpu->r[31] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028DD898 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DD89C */ return;
|
|
}
|
|
|
|
// fn_028DD748 @ 0x28dd748
|
|
void Gambit_fn_028DD748(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47;
|
|
|
|
L_028DD748: ; // 0x28dd748
|
|
/* 028DD748 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DD748 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD748 */ cpu->r[1] = _t0;
|
|
/* 028DD74C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD74C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DD750 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD750 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DD754 */ cpu->r[31] = cpu->r[4];
|
|
/* 028DD758 */ cpu->r[4] = 0x00000003u;
|
|
/* 028DD75C */ cpu->r[30] = cpu->r[3];
|
|
/* 028DD760 */ cpu->r[5] = cpu->r[31];
|
|
/* 028DD764 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD764 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DD768 */ cpu->r[3] = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD76C */ cpu->r[6] = 0x00000004u;
|
|
/* 028DD770 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DD770 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DD774 */ Gambit_fn_028023CC(cpu);
|
|
/* 028DD778 */ cpu->r[4] = cpu->r[31];
|
|
/* 028DD77C */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028DD780 */ cpu->r[5] = 0x00000004u;
|
|
/* 028DD784 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028DD788 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD78C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD78C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DD78C */ if (_t6) goto L_028DD794; else goto L_028DD790;
|
|
L_028DD790: ; // 0x28dd790
|
|
/* 028DD790 */ Gambit_fn_028EDB88(cpu);
|
|
L_028DD794: ; // 0x28dd794
|
|
/* 028DD794 */ _t7 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD794 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DD798 */ _t8 = cpu->r[30] + 0x00000030u;
|
|
/* 028DD798 */ cpu->r[6] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DD79C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[6]);
|
|
/* 028DD7A0 */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD7A0 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028DD7A0 */ if (_t10) goto L_028DD7A4; else goto L_028DD7BC;
|
|
L_028DD7A4: ; // 0x28dd7a4
|
|
/* 028DD7A4 */ _t11 = cpu->r[30] + 0x00000034u;
|
|
/* 028DD7A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DD7A8 */ cpu->r[7] = rbrew_rlwinm(cpu->r[10], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028DD7AC */ _t12 = cpu->r[7] + cpu->r[0];
|
|
/* 028DD7AC */ rbrew_write32(cpu->mem, _t12, cpu->r[3]);
|
|
/* 028DD7B0 */ _t13 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD7B0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DD7B4 */ cpu->r[9] = cpu->r[9] + 0x00000001u;
|
|
/* 028DD7B8 */ _t14 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD7B8 */ rbrew_write32(cpu->mem, _t14, cpu->r[9]);
|
|
L_028DD7BC: ; // 0x28dd7bc
|
|
/* 028DD7BC */ cpu->r[4] = cpu->r[31];
|
|
/* 028DD7C0 */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028DD7C4 */ cpu->r[5] = 0x00000004u;
|
|
/* 028DD7C8 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028DD7CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD7D0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD7D0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028DD7D0 */ if (_t16) goto L_028DD7D8; else goto L_028DD7D4;
|
|
L_028DD7D4: ; // 0x28dd7d4
|
|
/* 028DD7D4 */ Gambit_fn_028EDD44(cpu);
|
|
L_028DD7D8: ; // 0x28dd7d8
|
|
/* 028DD7D8 */ _t17 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD7D8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DD7DC */ _t18 = cpu->r[30] + 0x00000030u;
|
|
/* 028DD7DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DD7E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[0]);
|
|
/* 028DD7E4 */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD7E4 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028DD7E4 */ if (_t20) goto L_028DD7E8; else goto L_028DD800;
|
|
L_028DD7E8: ; // 0x28dd7e8
|
|
/* 028DD7E8 */ _t21 = cpu->r[30] + 0x00000034u;
|
|
/* 028DD7E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DD7EC */ cpu->r[12] = rbrew_rlwinm(cpu->r[10], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028DD7F0 */ _t22 = cpu->r[12] + cpu->r[0];
|
|
/* 028DD7F0 */ rbrew_write32(cpu->mem, _t22, cpu->r[3]);
|
|
/* 028DD7F4 */ _t23 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD7F4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028DD7F8 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028DD7FC */ _t24 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD7FC */ rbrew_write32(cpu->mem, _t24, cpu->r[10]);
|
|
L_028DD800: ; // 0x28dd800
|
|
/* 028DD800 */ cpu->r[4] = cpu->r[31];
|
|
/* 028DD804 */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028DD808 */ cpu->r[5] = 0x00000004u;
|
|
/* 028DD80C */ Gambit_fn_02801AC8(cpu);
|
|
/* 028DD810 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD814 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD814 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028DD814 */ if (_t26) goto L_028DD81C; else goto L_028DD818;
|
|
L_028DD818: ; // 0x28dd818
|
|
/* 028DD818 */ Gambit_fn_028EDEC8(cpu);
|
|
L_028DD81C: ; // 0x28dd81c
|
|
/* 028DD81C */ _t27 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD81C */ cpu->r[10] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028DD820 */ _t28 = cpu->r[30] + 0x00000030u;
|
|
/* 028DD820 */ cpu->r[11] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028DD824 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[11]);
|
|
/* 028DD828 */ _t29 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD828 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028DD828 */ if (_t30) goto L_028DD82C; else goto L_028DD844;
|
|
L_028DD82C: ; // 0x28dd82c
|
|
/* 028DD82C */ _t31 = cpu->r[30] + 0x00000034u;
|
|
/* 028DD82C */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028DD830 */ cpu->r[12] = rbrew_rlwinm(cpu->r[10], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028DD834 */ _t32 = cpu->r[12] + cpu->r[0];
|
|
/* 028DD834 */ rbrew_write32(cpu->mem, _t32, cpu->r[3]);
|
|
/* 028DD838 */ _t33 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD838 */ cpu->r[10] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028DD83C */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028DD840 */ _t34 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD840 */ rbrew_write32(cpu->mem, _t34, cpu->r[10]);
|
|
L_028DD844: ; // 0x28dd844
|
|
/* 028DD844 */ cpu->r[31] = 0x00000000u;
|
|
/* 028DD848 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[10]);
|
|
/* 028DD84C */ _t35 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD84C */ _t36 = _t35 & 0x00000001u;
|
|
/* 028DD84C */ if (_t36) goto L_028DD850; else goto L_028DD884;
|
|
L_028DD850: ; // 0x28dd850
|
|
/* 028DD850 */ cpu->r[29] = 0x00000000u;
|
|
L_028DD854: ; // 0x28dd854
|
|
/* 028DD854 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[10]);
|
|
/* 028DD858 */ cpu->r[4] = 0x00000000u;
|
|
/* 028DD85C */ _t37 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD85C */ _t38 = _t37 & 0x00000001u;
|
|
/* 028DD85C */ if (_t38) goto L_028DD860; else goto L_028DD868;
|
|
L_028DD860: ; // 0x28dd860
|
|
/* 028DD860 */ _t39 = cpu->r[30] + 0x00000034u;
|
|
/* 028DD860 */ cpu->r[5] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028DD864 */ _t40 = cpu->r[5] + cpu->r[29];
|
|
/* 028DD864 */ cpu->r[4] = rbrew_read32(cpu->mem, _t40);
|
|
L_028DD868: ; // 0x28dd868
|
|
/* 028DD868 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DD86C */ Gambit_fn_028DD6C8(cpu);
|
|
/* 028DD870 */ _t41 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DD870 */ cpu->r[10] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028DD874 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028DD878 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[10]);
|
|
/* 028DD87C */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 028DD880 */ _t42 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DD880 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028DD880 */ if (_t43) goto L_028DD854; else goto L_028DD884;
|
|
L_028DD884: ; // 0x28dd884
|
|
/* 028DD884 */ _t44 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD884 */ cpu->r[29] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028DD888 */ _t45 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DD888 */ cpu->r[0] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028DD88C */ _t46 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD88C */ cpu->r[30] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028DD890 */ cpu->lr = cpu->r[0];
|
|
/* 028DD894 */ _t47 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD894 */ cpu->r[31] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028DD898 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DD89C */ return;
|
|
}
|
|
|
|
// fn_028DD8A0 @ 0x28dd8a0
|
|
void Gambit_fn_028DD8A0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23;
|
|
|
|
L_028DD8A0: ; // 0x28dd8a0
|
|
/* 028DD8A0 */ cpu->r[0] = cpu->lr;
|
|
/* 028DD8A4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DD8A4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD8A4 */ cpu->r[1] = _t0;
|
|
/* 028DD8A8 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD8A8 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 028DD8AC */ cpu->r[28] = cpu->r[4];
|
|
/* 028DD8B0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD8B0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DD8B4 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD8B4 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DD8B8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DD8B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DD8BC */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD8BC */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028DD8C0 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DD8C0 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DD8C4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD8C4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DD8C4 */ if (_t7) goto L_028DD928; else goto L_028DD8C8;
|
|
L_028DD8C8: ; // 0x28dd8c8
|
|
/* 028DD8C8 */ cpu->r[6] = 0x10140000u;
|
|
/* 028DD8CC */ cpu->r[6] = cpu->r[6] + 0xFFFFB4D8u;
|
|
/* 028DD8D0 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028DD8D4 */ _t8 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DD8D4 */ rbrew_write32(cpu->mem, _t8, cpu->r[6]);
|
|
/* 028DD8D8 */ _t9 = cpu->r[12] + 0xFFFF9AD8u;
|
|
/* 028DD8D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DD8D8 */ cpu->r[12] = _t9;
|
|
/* 028DD8DC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[0]);
|
|
/* 028DD8E0 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD8E0 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DD8E0 */ if (_t11) goto L_028DD8E4; else goto L_028DD90C;
|
|
L_028DD8E4: ; // 0x28dd8e4
|
|
/* 028DD8E4 */ cpu->r[30] = 0x101D0000u;
|
|
/* 028DD8E8 */ cpu->r[29] = 0x00000000u;
|
|
/* 028DD8EC */ _t12 = cpu->r[30] + 0xFFFF9AD4u;
|
|
/* 028DD8EC */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DD8F0 */ _t13 = cpu->r[12] + 0x00000000u;
|
|
/* 028DD8F0 */ rbrew_write32(cpu->mem, _t13, cpu->r[29]);
|
|
/* 028DD8F4 */ _t14 = cpu->r[3] + 0x00000008u;
|
|
/* 028DD8F4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DD8F8 */ _t15 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028DD8F8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028DD8FC */ cpu->ctr = cpu->r[10];
|
|
/* 028DD900 */ cpu->r[4] = 0x00000002u;
|
|
/* 028DD904 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DD908 */ _t16 = cpu->r[30] + 0xFFFF9AD4u;
|
|
/* 028DD908 */ rbrew_write32(cpu->mem, _t16, cpu->r[29]);
|
|
L_028DD90C: ; // 0x28dd90c
|
|
/* 028DD90C */ cpu->r[3] = cpu->r[31];
|
|
/* 028DD910 */ cpu->r[4] = 0x00000000u;
|
|
/* 028DD914 */ Gambit_fn_02821E68(cpu);
|
|
/* 028DD918 */ cpu->r[0] = rbrew_rlwinm(cpu->r[28], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DD918 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DD91C */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD91C */ _t18 = _t17 & 0x00000001u;
|
|
/* 028DD91C */ if (_t18) goto L_028DD928; else goto L_028DD920;
|
|
L_028DD920: ; // 0x28dd920
|
|
/* 028DD920 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DD924 */ Gambit_fn_02801BB0(cpu);
|
|
L_028DD928: ; // 0x28dd928
|
|
/* 028DD928 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD928 */ cpu->r[28] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DD92C */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD92C */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DD930 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DD930 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DD934 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD934 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DD938 */ cpu->lr = cpu->r[0];
|
|
/* 028DD93C */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD93C */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028DD940 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DD944 */ return;
|
|
}
|
|
|
|
// fn_028DD8A4 @ 0x28dd8a4
|
|
void Gambit_fn_028DD8A4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23;
|
|
|
|
L_028DD8A4: ; // 0x28dd8a4
|
|
/* 028DD8A4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DD8A4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD8A4 */ cpu->r[1] = _t0;
|
|
/* 028DD8A8 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD8A8 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 028DD8AC */ cpu->r[28] = cpu->r[4];
|
|
/* 028DD8B0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD8B0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DD8B4 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD8B4 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DD8B8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DD8B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DD8BC */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD8BC */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028DD8C0 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DD8C0 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DD8C4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD8C4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DD8C4 */ if (_t7) goto L_028DD928; else goto L_028DD8C8;
|
|
L_028DD8C8: ; // 0x28dd8c8
|
|
/* 028DD8C8 */ cpu->r[6] = 0x10140000u;
|
|
/* 028DD8CC */ cpu->r[6] = cpu->r[6] + 0xFFFFB4D8u;
|
|
/* 028DD8D0 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028DD8D4 */ _t8 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DD8D4 */ rbrew_write32(cpu->mem, _t8, cpu->r[6]);
|
|
/* 028DD8D8 */ _t9 = cpu->r[12] + 0xFFFF9AD8u;
|
|
/* 028DD8D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DD8D8 */ cpu->r[12] = _t9;
|
|
/* 028DD8DC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[0]);
|
|
/* 028DD8E0 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD8E0 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DD8E0 */ if (_t11) goto L_028DD8E4; else goto L_028DD90C;
|
|
L_028DD8E4: ; // 0x28dd8e4
|
|
/* 028DD8E4 */ cpu->r[30] = 0x101D0000u;
|
|
/* 028DD8E8 */ cpu->r[29] = 0x00000000u;
|
|
/* 028DD8EC */ _t12 = cpu->r[30] + 0xFFFF9AD4u;
|
|
/* 028DD8EC */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DD8F0 */ _t13 = cpu->r[12] + 0x00000000u;
|
|
/* 028DD8F0 */ rbrew_write32(cpu->mem, _t13, cpu->r[29]);
|
|
/* 028DD8F4 */ _t14 = cpu->r[3] + 0x00000008u;
|
|
/* 028DD8F4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DD8F8 */ _t15 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028DD8F8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028DD8FC */ cpu->ctr = cpu->r[10];
|
|
/* 028DD900 */ cpu->r[4] = 0x00000002u;
|
|
/* 028DD904 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DD908 */ _t16 = cpu->r[30] + 0xFFFF9AD4u;
|
|
/* 028DD908 */ rbrew_write32(cpu->mem, _t16, cpu->r[29]);
|
|
L_028DD90C: ; // 0x28dd90c
|
|
/* 028DD90C */ cpu->r[3] = cpu->r[31];
|
|
/* 028DD910 */ cpu->r[4] = 0x00000000u;
|
|
/* 028DD914 */ Gambit_fn_02821E68(cpu);
|
|
/* 028DD918 */ cpu->r[0] = rbrew_rlwinm(cpu->r[28], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DD918 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DD91C */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD91C */ _t18 = _t17 & 0x00000001u;
|
|
/* 028DD91C */ if (_t18) goto L_028DD928; else goto L_028DD920;
|
|
L_028DD920: ; // 0x28dd920
|
|
/* 028DD920 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DD924 */ Gambit_fn_02801BB0(cpu);
|
|
L_028DD928: ; // 0x28dd928
|
|
/* 028DD928 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028DD928 */ cpu->r[28] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DD92C */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD92C */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DD930 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DD930 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DD934 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028DD934 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DD938 */ cpu->lr = cpu->r[0];
|
|
/* 028DD93C */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD93C */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028DD940 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DD944 */ return;
|
|
}
|
|
|
|
// fn_028DD948 @ 0x28dd948
|
|
void Gambit_fn_028DD948(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028DD948: ; // 0x28dd948
|
|
/* 028DD948 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD94C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD94C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DD94C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DD94C */ goto L_028DD950;
|
|
L_028DD950: ; // 0x28dd950
|
|
/* 028DD950 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DD950 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DD954 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD954 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DD954 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DD954 */ goto L_028DD958;
|
|
L_028DD958: ; // 0x28dd958
|
|
/* 028DD958 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028DD95C @ 0x28dd95c
|
|
void Gambit_fn_028DD95C(CPUState* cpu) {
|
|
L_028DD95C: ; // 0x28dd95c
|
|
/* 028DD95C */ return;
|
|
}
|
|
|
|
// fn_028DD960 @ 0x28dd960
|
|
void Gambit_fn_028DD960(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028DD960: ; // 0x28dd960
|
|
/* 028DD960 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028DD960 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028DD964 */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 028DD964 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028DD968 */ cpu->r[12] = cpu->r[11] + cpu->r[12];
|
|
/* 028DD96C */ cpu->r[11] = 0x10110000u;
|
|
/* 028DD970 */ _t2 = cpu->r[11] + 0x00007399u;
|
|
/* 028DD970 */ cpu->r[0] = rbrew_read8(cpu->mem, _t2);
|
|
/* 028DD974 */ _t3 = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028DD974 */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[0]);
|
|
/* 028DD978 */ return;
|
|
}
|
|
|
|
// fn_028DD97C @ 0x28dd97c
|
|
void Gambit_fn_028DD97C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028DD97C: ; // 0x28dd97c
|
|
/* 028DD97C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD980 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD980 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DD980 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DD980 */ goto L_028DD984;
|
|
L_028DD984: ; // 0x28dd984
|
|
/* 028DD984 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DD984 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DD988 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD988 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DD988 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DD988 */ goto L_028DD98C;
|
|
L_028DD98C: ; // 0x28dd98c
|
|
/* 028DD98C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028DD990 @ 0x28dd990
|
|
void Gambit_fn_028DD990(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028DD990: ; // 0x28dd990
|
|
/* 028DD990 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD994 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD994 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DD994 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DD994 */ goto L_028DD998;
|
|
L_028DD998: ; // 0x28dd998
|
|
/* 028DD998 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DD998 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DD99C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD99C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DD99C */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DD99C */ goto L_028DD9A0;
|
|
L_028DD9A0: ; // 0x28dd9a0
|
|
/* 028DD9A0 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028DD9A4 @ 0x28dd9a4
|
|
void Gambit_fn_028DD9A4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028DD9A4: ; // 0x28dd9a4
|
|
/* 028DD9A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DD9A8 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD9A8 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DD9A8 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DD9A8 */ goto L_028DD9AC;
|
|
L_028DD9AC: ; // 0x28dd9ac
|
|
/* 028DD9AC */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DD9AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DD9B0 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD9B0 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DD9B0 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DD9B0 */ goto L_028DD9B4;
|
|
L_028DD9B4: ; // 0x28dd9b4
|
|
/* 028DD9B4 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028DD9B8 @ 0x28dd9b8
|
|
void Gambit_fn_028DD9B8(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028DD9B8: ; // 0x28dd9b8
|
|
/* 028DD9B8 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028DD9B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028DD9BC */ _t1 = cpu->r[3] + 0x00000000u;
|
|
/* 028DD9BC */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028DD9C0 */ return;
|
|
}
|
|
|
|
// fn_028DD9C4 @ 0x28dd9c4
|
|
void Gambit_fn_028DD9C4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028DD9C4: ; // 0x28dd9c4
|
|
/* 028DD9C4 */ cpu->r[0] = cpu->lr;
|
|
/* 028DD9C8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DD9C8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD9C8 */ cpu->r[1] = _t0;
|
|
/* 028DD9CC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD9CC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DD9D0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DD9D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DD9D4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD9D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DD9D8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD9D8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028DD9D8 */ if (_t4) goto L_028DD9DC; else goto L_028DD9EC;
|
|
L_028DD9DC: ; // 0x28dd9dc
|
|
/* 028DD9DC */ cpu->r[3] = 0x00000034u;
|
|
/* 028DD9E0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DD9E4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DD9E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DD9E8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD9E8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DD9E8 */ if (_t6) goto L_028DDA18; else goto L_028DD9EC;
|
|
L_028DD9EC: ; // 0x28dd9ec
|
|
/* 028DD9EC */ cpu->r[3] = cpu->r[31];
|
|
/* 028DD9F0 */ Gambit_fn_028E15B8(cpu);
|
|
/* 028DD9F4 */ cpu->r[0] = 0x00000000u;
|
|
/* 028DD9F8 */ cpu->r[11] = 0xFFFFFFFFu;
|
|
/* 028DD9FC */ _t7 = cpu->r[31] + 0x00000030u;
|
|
/* 028DD9FC */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028DDA00 */ _t8 = cpu->r[31] + 0x00000020u;
|
|
/* 028DDA00 */ rbrew_write32(cpu->mem, _t8, cpu->r[11]);
|
|
/* 028DDA04 */ _t9 = cpu->r[31] + 0x00000029u;
|
|
/* 028DDA04 */ rbrew_write8(cpu->mem, _t9, (uint8_t)cpu->r[0]);
|
|
/* 028DDA08 */ _t10 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028DDA08 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028DDA0C */ _t11 = cpu->r[31] + 0x00000024u;
|
|
/* 028DDA0C */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028DDA10 */ _t12 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028DDA10 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 028DDA14 */ _t13 = cpu->r[31] + 0x00000028u;
|
|
/* 028DDA14 */ rbrew_write8(cpu->mem, _t13, (uint8_t)cpu->r[0]);
|
|
L_028DDA18: ; // 0x28dda18
|
|
/* 028DDA18 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDA18 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DDA1C */ cpu->r[3] = cpu->r[31];
|
|
/* 028DDA20 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDA20 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028DDA24 */ cpu->lr = cpu->r[0];
|
|
/* 028DDA28 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DDA2C */ return;
|
|
}
|
|
|
|
// fn_028DD9C8 @ 0x28dd9c8
|
|
void Gambit_fn_028DD9C8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028DD9C8: ; // 0x28dd9c8
|
|
/* 028DD9C8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DD9C8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DD9C8 */ cpu->r[1] = _t0;
|
|
/* 028DD9CC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DD9CC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DD9D0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DD9D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DD9D4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DD9D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DD9D8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD9D8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028DD9D8 */ if (_t4) goto L_028DD9DC; else goto L_028DD9EC;
|
|
L_028DD9DC: ; // 0x28dd9dc
|
|
/* 028DD9DC */ cpu->r[3] = 0x00000034u;
|
|
/* 028DD9E0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DD9E4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DD9E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DD9E8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DD9E8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DD9E8 */ if (_t6) goto L_028DDA18; else goto L_028DD9EC;
|
|
L_028DD9EC: ; // 0x28dd9ec
|
|
/* 028DD9EC */ cpu->r[3] = cpu->r[31];
|
|
/* 028DD9F0 */ Gambit_fn_028E15B8(cpu);
|
|
/* 028DD9F4 */ cpu->r[0] = 0x00000000u;
|
|
/* 028DD9F8 */ cpu->r[11] = 0xFFFFFFFFu;
|
|
/* 028DD9FC */ _t7 = cpu->r[31] + 0x00000030u;
|
|
/* 028DD9FC */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028DDA00 */ _t8 = cpu->r[31] + 0x00000020u;
|
|
/* 028DDA00 */ rbrew_write32(cpu->mem, _t8, cpu->r[11]);
|
|
/* 028DDA04 */ _t9 = cpu->r[31] + 0x00000029u;
|
|
/* 028DDA04 */ rbrew_write8(cpu->mem, _t9, (uint8_t)cpu->r[0]);
|
|
/* 028DDA08 */ _t10 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028DDA08 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028DDA0C */ _t11 = cpu->r[31] + 0x00000024u;
|
|
/* 028DDA0C */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028DDA10 */ _t12 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028DDA10 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 028DDA14 */ _t13 = cpu->r[31] + 0x00000028u;
|
|
/* 028DDA14 */ rbrew_write8(cpu->mem, _t13, (uint8_t)cpu->r[0]);
|
|
L_028DDA18: ; // 0x28dda18
|
|
/* 028DDA18 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDA18 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DDA1C */ cpu->r[3] = cpu->r[31];
|
|
/* 028DDA20 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDA20 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028DDA24 */ cpu->lr = cpu->r[0];
|
|
/* 028DDA28 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DDA2C */ return;
|
|
}
|
|
|
|
// fn_028DDA30 @ 0x28dda30
|
|
void Gambit_fn_028DDA30(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028DDA30: ; // 0x28dda30
|
|
/* 028DDA30 */ goto L_028E1658;
|
|
L_028E1658: ; // 0x28e1658
|
|
/* 028E1658 */ cpu->r[0] = cpu->lr;
|
|
/* 028E165C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028E165C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028E165C */ cpu->r[1] = _t0;
|
|
/* 028E1660 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E1660 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028E1664 */ cpu->r[31] = cpu->r[3];
|
|
/* 028E1668 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028E1668 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028E166C */ _t3 = cpu->r[31] + 0x00000018u;
|
|
/* 028E166C */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028E1670 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028E1674 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028E1674 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028E1674 */ if (_t5) goto L_028E16AC; else goto L_028E1678;
|
|
L_028E1678: ; // 0x28e1678
|
|
/* 028E1678 */ _t6 = cpu->r[31] + 0x00000014u;
|
|
/* 028E1678 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028E167C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028E1680 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028E1684 */ _t7 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028E1684 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028E1688 */ Gambit_fn_02826B90(cpu);
|
|
/* 028E168C */ _t8 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028E168C */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028E1690 */ _t9 = cpu->r[12] + 0x0000003Cu;
|
|
/* 028E1690 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028E1694 */ cpu->ctr = cpu->r[0];
|
|
/* 028E1698 */ _t10 = cpu->r[31] + 0x00000018u;
|
|
/* 028E1698 */ cpu->r[4] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028E169C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028E16A0 */ cpu->r[9] = 0x00000000u;
|
|
/* 028E16A4 */ _t11 = cpu->r[31] + 0x00000014u;
|
|
/* 028E16A4 */ rbrew_write32(cpu->mem, _t11, cpu->r[9]);
|
|
/* 028E16A8 */ _t12 = cpu->r[31] + 0x00000018u;
|
|
/* 028E16A8 */ rbrew_write32(cpu->mem, _t12, cpu->r[9]);
|
|
L_028E16AC: ; // 0x28e16ac
|
|
/* 028E16AC */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028E16AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028E16B0 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E16B0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028E16B4 */ cpu->lr = cpu->r[0];
|
|
/* 028E16B8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028E16BC */ return;
|
|
}
|
|
|
|
// fn_028DDA34 @ 0x28dda34
|
|
void Gambit_fn_028DDA34(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028DDA34: ; // 0x28dda34
|
|
/* 028DDA34 */ cpu->r[0] = cpu->lr;
|
|
/* 028DDA38 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DDA38 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DDA38 */ cpu->r[1] = _t0;
|
|
/* 028DDA3C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028DDA3C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DDA40 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDA40 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DDA44 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DDA44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DDA48 */ cpu->r[30] = cpu->r[4];
|
|
/* 028DDA4C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDA4C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DDA50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDA50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DDA50 */ if (_t5) goto L_028DDA78; else goto L_028DDA54;
|
|
L_028DDA54: ; // 0x28dda54
|
|
/* 028DDA54 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DDA58 */ Gambit_fn_028DDA30(cpu);
|
|
/* 028DDA5C */ cpu->r[3] = cpu->r[31];
|
|
/* 028DDA60 */ cpu->r[4] = 0x00000002u;
|
|
/* 028DDA64 */ Gambit_fn_028E16C0(cpu);
|
|
/* 028DDA68 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DDA68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DDA6C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDA6C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DDA6C */ if (_t7) goto L_028DDA78; else goto L_028DDA70;
|
|
L_028DDA70: ; // 0x28dda70
|
|
/* 028DDA70 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DDA74 */ Gambit_fn_02801BB0(cpu);
|
|
L_028DDA78: ; // 0x28dda78
|
|
/* 028DDA78 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDA78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DDA7C */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028DDA7C */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DDA80 */ cpu->lr = cpu->r[0];
|
|
/* 028DDA84 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDA84 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DDA88 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DDA8C */ return;
|
|
}
|
|
|
|
// fn_028DDA38 @ 0x28dda38
|
|
void Gambit_fn_028DDA38(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028DDA38: ; // 0x28dda38
|
|
/* 028DDA38 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DDA38 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DDA38 */ cpu->r[1] = _t0;
|
|
/* 028DDA3C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028DDA3C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DDA40 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDA40 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DDA44 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DDA44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DDA48 */ cpu->r[30] = cpu->r[4];
|
|
/* 028DDA4C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDA4C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DDA50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDA50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DDA50 */ if (_t5) goto L_028DDA78; else goto L_028DDA54;
|
|
L_028DDA54: ; // 0x28dda54
|
|
/* 028DDA54 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DDA58 */ Gambit_fn_028DDA30(cpu);
|
|
/* 028DDA5C */ cpu->r[3] = cpu->r[31];
|
|
/* 028DDA60 */ cpu->r[4] = 0x00000002u;
|
|
/* 028DDA64 */ Gambit_fn_028E16C0(cpu);
|
|
/* 028DDA68 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DDA68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DDA6C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDA6C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DDA6C */ if (_t7) goto L_028DDA78; else goto L_028DDA70;
|
|
L_028DDA70: ; // 0x28dda70
|
|
/* 028DDA70 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DDA74 */ Gambit_fn_02801BB0(cpu);
|
|
L_028DDA78: ; // 0x28dda78
|
|
/* 028DDA78 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDA78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DDA7C */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028DDA7C */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DDA80 */ cpu->lr = cpu->r[0];
|
|
/* 028DDA84 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDA84 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DDA88 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DDA8C */ return;
|
|
}
|
|
|
|
// fn_028DDA90 @ 0x28dda90
|
|
void Gambit_fn_028DDA90(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028DDA90: ; // 0x28dda90
|
|
/* 028DDA90 */ cpu->r[0] = cpu->lr;
|
|
/* 028DDA94 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DDA94 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DDA94 */ cpu->r[1] = _t0;
|
|
/* 028DDA98 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDA98 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DDA9C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DDAA0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDAA0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DDAA4 */ Gambit_fn_028E171C(cpu);
|
|
/* 028DDAA8 */ cpu->r[12] = 0x00000000u;
|
|
/* 028DDAAC */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028DDAB0 */ _t3 = cpu->r[31] + 0x00000024u;
|
|
/* 028DDAB0 */ rbrew_write32(cpu->mem, _t3, cpu->r[12]);
|
|
/* 028DDAB4 */ _t4 = cpu->r[31] + 0x00000020u;
|
|
/* 028DDAB4 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DDAB8 */ _t5 = cpu->r[31] + 0x00000028u;
|
|
/* 028DDAB8 */ rbrew_write8(cpu->mem, _t5, (uint8_t)cpu->r[12]);
|
|
/* 028DDABC */ _t6 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028DDABC */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028DDAC0 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDAC0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DDAC4 */ cpu->lr = cpu->r[0];
|
|
/* 028DDAC8 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDAC8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DDACC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DDAD0 */ return;
|
|
}
|
|
|
|
// fn_028DDA94 @ 0x28dda94
|
|
void Gambit_fn_028DDA94(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028DDA94: ; // 0x28dda94
|
|
/* 028DDA94 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DDA94 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DDA94 */ cpu->r[1] = _t0;
|
|
/* 028DDA98 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDA98 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DDA9C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DDAA0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDAA0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DDAA4 */ Gambit_fn_028E171C(cpu);
|
|
/* 028DDAA8 */ cpu->r[12] = 0x00000000u;
|
|
/* 028DDAAC */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028DDAB0 */ _t3 = cpu->r[31] + 0x00000024u;
|
|
/* 028DDAB0 */ rbrew_write32(cpu->mem, _t3, cpu->r[12]);
|
|
/* 028DDAB4 */ _t4 = cpu->r[31] + 0x00000020u;
|
|
/* 028DDAB4 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DDAB8 */ _t5 = cpu->r[31] + 0x00000028u;
|
|
/* 028DDAB8 */ rbrew_write8(cpu->mem, _t5, (uint8_t)cpu->r[12]);
|
|
/* 028DDABC */ _t6 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028DDABC */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028DDAC0 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDAC0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DDAC4 */ cpu->lr = cpu->r[0];
|
|
/* 028DDAC8 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDAC8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DDACC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DDAD0 */ return;
|
|
}
|
|
|
|
// fn_028DDAD4 @ 0x28ddad4
|
|
void Gambit_fn_028DDAD4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028DDAD4: ; // 0x28ddad4
|
|
/* 028DDAD4 */ cpu->r[0] = cpu->lr;
|
|
/* 028DDAD8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DDAD8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DDAD8 */ cpu->r[1] = _t0;
|
|
/* 028DDADC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDADC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DDAE0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DDAE4 */ cpu->r[5] = 0x00000000u;
|
|
/* 028DDAE8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDAE8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DDAEC */ Gambit_fn_028E178C(cpu);
|
|
/* 028DDAF0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DDAF4 */ Gambit_fn_028DDA90(cpu);
|
|
/* 028DDAF8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDAF8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028DDAFC */ cpu->lr = cpu->r[0];
|
|
/* 028DDB00 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDB00 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028DDB04 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DDB08 */ return;
|
|
}
|
|
|
|
// fn_028DDAD8 @ 0x28ddad8
|
|
void Gambit_fn_028DDAD8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028DDAD8: ; // 0x28ddad8
|
|
/* 028DDAD8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DDAD8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DDAD8 */ cpu->r[1] = _t0;
|
|
/* 028DDADC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDADC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DDAE0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DDAE4 */ cpu->r[5] = 0x00000000u;
|
|
/* 028DDAE8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDAE8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DDAEC */ Gambit_fn_028E178C(cpu);
|
|
/* 028DDAF0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DDAF4 */ Gambit_fn_028DDA90(cpu);
|
|
/* 028DDAF8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDAF8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028DDAFC */ cpu->lr = cpu->r[0];
|
|
/* 028DDB00 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDB00 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028DDB04 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DDB08 */ return;
|
|
}
|
|
|
|
// fn_028DDB0C @ 0x28ddb0c
|
|
void Gambit_fn_028DDB0C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_028DDB0C: ; // 0x28ddb0c
|
|
/* 028DDB0C */ _t0 = cpu->r[3] + 0x00000020u;
|
|
/* 028DDB0C */ rbrew_write32(cpu->mem, _t0, cpu->r[5]);
|
|
/* 028DDB10 */ _t1 = cpu->r[3] + 0x00000024u;
|
|
/* 028DDB10 */ rbrew_write32(cpu->mem, _t1, cpu->r[6]);
|
|
/* 028DDB14 */ _t2 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028DDB14 */ rbrew_write32(cpu->mem, _t2, cpu->r[4]);
|
|
/* 028DDB18 */ return;
|
|
}
|
|
|
|
// fn_028DDB1C @ 0x28ddb1c
|
|
void Gambit_fn_028DDB1C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_028DDB1C: ; // 0x28ddb1c
|
|
/* 028DDB1C */ goto L_028E1890;
|
|
L_028E1890: ; // 0x28e1890
|
|
/* 028E1890 */ _t0 = cpu->r[3] + 0x00000018u;
|
|
/* 028E1890 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028E1894 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028E1898 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028E1898 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028E1898 */ if (_t2) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028E1898 */ goto L_028E189C;
|
|
L_028E189C: ; // 0x28e189c
|
|
/* 028E189C */ _t3 = cpu->r[3] + 0x00000014u;
|
|
/* 028E189C */ cpu->r[10] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028E18A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], cpu->r[10]);
|
|
/* 028E18A4 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028E18A4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028E18A4 */ _t6 = _t5 ^ 0x00000001u;
|
|
/* 028E18A4 */ if (_t6) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028E18A4 */ goto L_028E18A8;
|
|
L_028E18A8: ; // 0x28e18a8
|
|
/* 028E18A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[10]);
|
|
/* 028E18AC */ _t7 = cpu->r[4] + 0x00000000u;
|
|
/* 028E18AC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028E18B0 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028E18B0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028E18B0 */ if (_t9) goto L_028E18B4; else goto L_028E18BC;
|
|
L_028E18B4: ; // 0x28e18b4
|
|
/* 028E18B4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028E18B8 */ cpu->r[11] = cpu->r[11] + cpu->r[0];
|
|
L_028E18BC: ; // 0x28e18bc
|
|
/* 028E18BC */ _t10 = cpu->r[11] + 0x00000000u;
|
|
/* 028E18BC */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 028E18C0 */ _t11 = cpu->r[4] + 0x00000004u;
|
|
/* 028E18C0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028E18C4 */ _t12 = cpu->r[11] + 0x00000004u;
|
|
/* 028E18C4 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[0]);
|
|
/* 028E18C8 */ _t13 = cpu->r[4] + 0x00000008u;
|
|
/* 028E18C8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 028E18CC */ _t14 = cpu->r[11] + 0x00000008u;
|
|
/* 028E18CC */ rbrew_write_f32(cpu->mem, _t14, cpu->f[0]);
|
|
/* 028E18D0 */ _t15 = cpu->r[3] + 0x00000014u;
|
|
/* 028E18D0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028E18D4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[12]);
|
|
/* 028E18D8 */ _t16 = cpu->r[3] + 0x00000018u;
|
|
/* 028E18D8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028E18DC */ _t17 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028E18DC */ _t18 = _t17 & 0x00000001u;
|
|
/* 028E18DC */ if (_t18) goto L_028E18E0; else goto L_028E18E8;
|
|
L_028E18E0: ; // 0x28e18e0
|
|
/* 028E18E0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028E18E4 */ cpu->r[12] = cpu->r[12] + cpu->r[0];
|
|
L_028E18E8: ; // 0x28e18e8
|
|
/* 028E18E8 */ cpu->r[9] = 0x00000001u;
|
|
/* 028E18EC */ _t19 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028E18EC */ rbrew_write8(cpu->mem, _t19, (uint8_t)cpu->r[9]);
|
|
/* 028E18F0 */ return;
|
|
}
|
|
|
|
// fn_028DDB20 @ 0x28ddb20
|
|
void Gambit_fn_028DDB20(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028DDB20: ; // 0x28ddb20
|
|
/* 028DDB20 */ goto L_028E18F4;
|
|
L_028E18F4: ; // 0x28e18f4
|
|
/* 028E18F4 */ _t0 = cpu->r[3] + 0x00000018u;
|
|
/* 028E18F4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028E18F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028E18FC */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028E18FC */ _t2 = _t1 & 0x00000001u;
|
|
/* 028E18FC */ if (_t2) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028E18FC */ goto L_028E1900;
|
|
L_028E1900: ; // 0x28e1900
|
|
/* 028E1900 */ _t3 = cpu->r[3] + 0x00000014u;
|
|
/* 028E1900 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028E1904 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], cpu->r[0]);
|
|
/* 028E1908 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028E1908 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028E1908 */ _t6 = _t5 ^ 0x00000001u;
|
|
/* 028E1908 */ if (_t6) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028E1908 */ goto L_028E190C;
|
|
L_028E190C: ; // 0x28e190c
|
|
/* 028E190C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[0]);
|
|
/* 028E1910 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028E1910 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028E1910 */ if (_t8) goto L_028E1914; else goto L_028E191C;
|
|
L_028E1914: ; // 0x28e1914
|
|
/* 028E1914 */ cpu->r[11] = rbrew_rlwinm(cpu->r[4], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028E1918 */ cpu->r[12] = cpu->r[12] + cpu->r[11];
|
|
L_028E191C: ; // 0x28e191c
|
|
/* 028E191C */ cpu->r[0] = 0x00000000u;
|
|
/* 028E1920 */ _t9 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028E1920 */ rbrew_write8(cpu->mem, _t9, (uint8_t)cpu->r[0]);
|
|
/* 028E1924 */ return;
|
|
}
|
|
|
|
// fn_028DDB24 @ 0x28ddb24
|
|
void Gambit_fn_028DDB24(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35;
|
|
|
|
L_028DDB24: ; // 0x28ddb24
|
|
/* 028DDB24 */ cpu->r[0] = cpu->lr;
|
|
/* 028DDB28 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DDB28 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DDB28 */ cpu->r[1] = _t0;
|
|
/* 028DDB2C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDB2C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028DDB30 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDB30 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DDB34 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028DDB34 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028DDB38 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DDB38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DDB3C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DDB3C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DDB40 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDB40 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DDB40 */ if (_t6) goto L_028DDB44; else goto L_028DDB54;
|
|
L_028DDB44: ; // 0x28ddb44
|
|
/* 028DDB44 */ cpu->r[3] = 0x00000068u;
|
|
/* 028DDB48 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DDB4C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DDB4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DDB50 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDB50 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DDB50 */ if (_t8) goto L_028DDBE0; else goto L_028DDB54;
|
|
L_028DDB54: ; // 0x28ddb54
|
|
/* 028DDB54 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DDB58 */ cpu->r[29] = cpu->r[31] + 0x00000004u;
|
|
/* 028DDB58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DDB5C */ cpu->r[0] = cpu->r[0] + 0xFFFFB598u;
|
|
/* 028DDB60 */ cpu->r[30] = 0x00000000u;
|
|
/* 028DDB64 */ _t9 = cpu->r[31] + 0x00000000u;
|
|
/* 028DDB64 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028DDB68 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDB68 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DDB68 */ if (_t11) goto L_028DDB6C; else goto L_028DDB7C;
|
|
L_028DDB6C: ; // 0x28ddb6c
|
|
/* 028DDB6C */ cpu->r[3] = 0x00000018u;
|
|
/* 028DDB70 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DDB74 */ cpu->r[29] = cpu->r[3];
|
|
/* 028DDB74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DDB78 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDB78 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028DDB78 */ if (_t13) goto L_028DDBAC; else goto L_028DDB7C;
|
|
L_028DDB7C: ; // 0x28ddb7c
|
|
/* 028DDB7C */ cpu->r[3] = cpu->r[29];
|
|
/* 028DDB7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DDB80 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDB80 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028DDB80 */ if (_t15) goto L_028DDB84; else goto L_028DDB94;
|
|
L_028DDB84: ; // 0x28ddb84
|
|
/* 028DDB84 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028DDB88 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DDB8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DDB90 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDB90 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DDB90 */ if (_t17) goto L_028DDBA0; else goto L_028DDB94;
|
|
L_028DDB94: ; // 0x28ddb94
|
|
/* 028DDB94 */ _t18 = cpu->r[3] + 0x00000004u;
|
|
/* 028DDB94 */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
/* 028DDB98 */ _t19 = cpu->r[3] + 0x00000008u;
|
|
/* 028DDB98 */ rbrew_write32(cpu->mem, _t19, cpu->r[30]);
|
|
/* 028DDB9C */ _t20 = cpu->r[3] + 0x00000000u;
|
|
/* 028DDB9C */ rbrew_write32(cpu->mem, _t20, cpu->r[3]);
|
|
L_028DDBA0: ; // 0x28ddba0
|
|
/* 028DDBA0 */ _t21 = cpu->r[29] + 0x00000010u;
|
|
/* 028DDBA0 */ rbrew_write32(cpu->mem, _t21, cpu->r[30]);
|
|
/* 028DDBA4 */ _t22 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028DDBA4 */ rbrew_write32(cpu->mem, _t22, cpu->r[30]);
|
|
/* 028DDBA8 */ _t23 = cpu->r[29] + 0x00000014u;
|
|
/* 028DDBA8 */ rbrew_write32(cpu->mem, _t23, cpu->r[30]);
|
|
L_028DDBAC: ; // 0x28ddbac
|
|
/* 028DDBAC */ cpu->r[3] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028DDBAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DDBB0 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDBB0 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028DDBB0 */ if (_t25) goto L_028DDBB4; else goto L_028DDBC4;
|
|
L_028DDBB4: ; // 0x28ddbb4
|
|
/* 028DDBB4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028DDBB8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DDBBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DDBC0 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDBC0 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028DDBC0 */ if (_t27) goto L_028DDBCC; else goto L_028DDBC4;
|
|
L_028DDBC4: ; // 0x28ddbc4
|
|
/* 028DDBC4 */ _t28 = cpu->r[3] + 0x00000004u;
|
|
/* 028DDBC4 */ rbrew_write32(cpu->mem, _t28, cpu->r[30]);
|
|
/* 028DDBC8 */ _t29 = cpu->r[3] + 0x00000000u;
|
|
/* 028DDBC8 */ rbrew_write32(cpu->mem, _t29, cpu->r[30]);
|
|
L_028DDBCC: ; // 0x28ddbcc
|
|
/* 028DDBCC */ _t30 = cpu->r[31] + 0x00000024u;
|
|
/* 028DDBCC */ rbrew_write32(cpu->mem, _t30, cpu->r[30]);
|
|
/* 028DDBD0 */ cpu->r[0] = 0x00000001u;
|
|
/* 028DDBD4 */ cpu->r[3] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028DDBD8 */ _t31 = cpu->r[31] + 0x00000028u;
|
|
/* 028DDBD8 */ rbrew_write8(cpu->mem, _t31, (uint8_t)cpu->r[0]);
|
|
/* 028DDBDC */ Gambit_fn_02836EBC(cpu);
|
|
L_028DDBE0: ; // 0x28ddbe0
|
|
/* 028DDBE0 */ _t32 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDBE0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028DDBE4 */ _t33 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DDBE4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028DDBE8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DDBEC */ _t34 = cpu->r[1] + 0x00000010u;
|
|
/* 028DDBEC */ cpu->r[30] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028DDBF0 */ cpu->lr = cpu->r[0];
|
|
/* 028DDBF4 */ _t35 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDBF4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028DDBF8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DDBFC */ return;
|
|
}
|
|
|
|
// fn_028DDB28 @ 0x28ddb28
|
|
void Gambit_fn_028DDB28(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35;
|
|
|
|
L_028DDB28: ; // 0x28ddb28
|
|
/* 028DDB28 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DDB28 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DDB28 */ cpu->r[1] = _t0;
|
|
/* 028DDB2C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDB2C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028DDB30 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDB30 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DDB34 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028DDB34 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028DDB38 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DDB38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DDB3C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DDB3C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DDB40 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDB40 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DDB40 */ if (_t6) goto L_028DDB44; else goto L_028DDB54;
|
|
L_028DDB44: ; // 0x28ddb44
|
|
/* 028DDB44 */ cpu->r[3] = 0x00000068u;
|
|
/* 028DDB48 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DDB4C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DDB4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DDB50 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDB50 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DDB50 */ if (_t8) goto L_028DDBE0; else goto L_028DDB54;
|
|
L_028DDB54: ; // 0x28ddb54
|
|
/* 028DDB54 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DDB58 */ cpu->r[29] = cpu->r[31] + 0x00000004u;
|
|
/* 028DDB58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DDB5C */ cpu->r[0] = cpu->r[0] + 0xFFFFB598u;
|
|
/* 028DDB60 */ cpu->r[30] = 0x00000000u;
|
|
/* 028DDB64 */ _t9 = cpu->r[31] + 0x00000000u;
|
|
/* 028DDB64 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028DDB68 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDB68 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DDB68 */ if (_t11) goto L_028DDB6C; else goto L_028DDB7C;
|
|
L_028DDB6C: ; // 0x28ddb6c
|
|
/* 028DDB6C */ cpu->r[3] = 0x00000018u;
|
|
/* 028DDB70 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DDB74 */ cpu->r[29] = cpu->r[3];
|
|
/* 028DDB74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DDB78 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDB78 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028DDB78 */ if (_t13) goto L_028DDBAC; else goto L_028DDB7C;
|
|
L_028DDB7C: ; // 0x28ddb7c
|
|
/* 028DDB7C */ cpu->r[3] = cpu->r[29];
|
|
/* 028DDB7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DDB80 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDB80 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028DDB80 */ if (_t15) goto L_028DDB84; else goto L_028DDB94;
|
|
L_028DDB84: ; // 0x28ddb84
|
|
/* 028DDB84 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028DDB88 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DDB8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DDB90 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDB90 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DDB90 */ if (_t17) goto L_028DDBA0; else goto L_028DDB94;
|
|
L_028DDB94: ; // 0x28ddb94
|
|
/* 028DDB94 */ _t18 = cpu->r[3] + 0x00000004u;
|
|
/* 028DDB94 */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
/* 028DDB98 */ _t19 = cpu->r[3] + 0x00000008u;
|
|
/* 028DDB98 */ rbrew_write32(cpu->mem, _t19, cpu->r[30]);
|
|
/* 028DDB9C */ _t20 = cpu->r[3] + 0x00000000u;
|
|
/* 028DDB9C */ rbrew_write32(cpu->mem, _t20, cpu->r[3]);
|
|
L_028DDBA0: ; // 0x28ddba0
|
|
/* 028DDBA0 */ _t21 = cpu->r[29] + 0x00000010u;
|
|
/* 028DDBA0 */ rbrew_write32(cpu->mem, _t21, cpu->r[30]);
|
|
/* 028DDBA4 */ _t22 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028DDBA4 */ rbrew_write32(cpu->mem, _t22, cpu->r[30]);
|
|
/* 028DDBA8 */ _t23 = cpu->r[29] + 0x00000014u;
|
|
/* 028DDBA8 */ rbrew_write32(cpu->mem, _t23, cpu->r[30]);
|
|
L_028DDBAC: ; // 0x28ddbac
|
|
/* 028DDBAC */ cpu->r[3] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028DDBAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DDBB0 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDBB0 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028DDBB0 */ if (_t25) goto L_028DDBB4; else goto L_028DDBC4;
|
|
L_028DDBB4: ; // 0x28ddbb4
|
|
/* 028DDBB4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028DDBB8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DDBBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DDBC0 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDBC0 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028DDBC0 */ if (_t27) goto L_028DDBCC; else goto L_028DDBC4;
|
|
L_028DDBC4: ; // 0x28ddbc4
|
|
/* 028DDBC4 */ _t28 = cpu->r[3] + 0x00000004u;
|
|
/* 028DDBC4 */ rbrew_write32(cpu->mem, _t28, cpu->r[30]);
|
|
/* 028DDBC8 */ _t29 = cpu->r[3] + 0x00000000u;
|
|
/* 028DDBC8 */ rbrew_write32(cpu->mem, _t29, cpu->r[30]);
|
|
L_028DDBCC: ; // 0x28ddbcc
|
|
/* 028DDBCC */ _t30 = cpu->r[31] + 0x00000024u;
|
|
/* 028DDBCC */ rbrew_write32(cpu->mem, _t30, cpu->r[30]);
|
|
/* 028DDBD0 */ cpu->r[0] = 0x00000001u;
|
|
/* 028DDBD4 */ cpu->r[3] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028DDBD8 */ _t31 = cpu->r[31] + 0x00000028u;
|
|
/* 028DDBD8 */ rbrew_write8(cpu->mem, _t31, (uint8_t)cpu->r[0]);
|
|
/* 028DDBDC */ Gambit_fn_02836EBC(cpu);
|
|
L_028DDBE0: ; // 0x28ddbe0
|
|
/* 028DDBE0 */ _t32 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDBE0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028DDBE4 */ _t33 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DDBE4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028DDBE8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DDBEC */ _t34 = cpu->r[1] + 0x00000010u;
|
|
/* 028DDBEC */ cpu->r[30] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028DDBF0 */ cpu->lr = cpu->r[0];
|
|
/* 028DDBF4 */ _t35 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDBF4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028DDBF8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DDBFC */ return;
|
|
}
|
|
|
|
// fn_028DDC00 @ 0x28ddc00
|
|
void Gambit_fn_028DDC00(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57;
|
|
|
|
L_028DDC00: ; // 0x28ddc00
|
|
/* 028DDC00 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028DDC00 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DDC00 */ cpu->r[1] = _t0;
|
|
/* 028DDC04 */ /* nop */
|
|
/* 028DDC08 */ cpu->r[0] = cpu->lr;
|
|
/* 028DDC0C */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028DDC0C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028DDC10 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DDC14 */ _t2 = cpu->r[31] + 0x00000014u;
|
|
/* 028DDC14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028DDC18 */ cpu->r[30] = cpu->r[31] + 0x00000004u;
|
|
/* 028DDC1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DDC20 */ cpu->r[29] = 0x00000000u;
|
|
/* 028DDC24 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDC24 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028DDC24 */ if (_t4) goto L_028DDC88; else goto L_028DDC28;
|
|
L_028DDC28: ; // 0x28ddc28
|
|
/* 028DDC28 */ _t5 = cpu->r[30] + 0x00000004u;
|
|
/* 028DDC28 */ cpu->r[26] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028DDC2C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], cpu->r[30]);
|
|
/* 028DDC30 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDC30 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DDC30 */ if (_t7) goto L_028DDC74; else goto L_028DDC34;
|
|
L_028DDC34: ; // 0x28ddc34
|
|
/* 028DDC34 */ _t8 = cpu->r[26] + 0x00000004u;
|
|
/* 028DDC34 */ cpu->r[27] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DDC38 */ cpu->r[3] = cpu->r[26];
|
|
/* 028DDC3C */ Gambit_fn_02801EDC(cpu);
|
|
/* 028DDC40 */ _t9 = cpu->r[30] + 0x00000008u;
|
|
/* 028DDC40 */ cpu->r[11] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DDC44 */ cpu->r[11] = cpu->r[11] + 0xFFFFFFFFu;
|
|
/* 028DDC48 */ cpu->r[28] = cpu->r[26] + 0xFFFFFF9Cu;
|
|
/* 028DDC48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028DDC4C */ _t10 = cpu->r[30] + 0x00000008u;
|
|
/* 028DDC4C */ rbrew_write32(cpu->mem, _t10, cpu->r[11]);
|
|
/* 028DDC50 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDC50 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028DDC50 */ if (_t12) goto L_028DDC5C; else goto L_028DDC54;
|
|
L_028DDC54: ; // 0x28ddc54
|
|
/* 028DDC54 */ cpu->r[3] = cpu->r[28] + 0x00000054u;
|
|
/* 028DDC58 */ Gambit_fn_0280236C(cpu);
|
|
L_028DDC5C: ; // 0x28ddc5c
|
|
/* 028DDC5C */ _t13 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028DDC5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DDC60 */ cpu->r[26] = cpu->r[27];
|
|
/* 028DDC64 */ _t14 = cpu->r[28] + 0x00000000u;
|
|
/* 028DDC64 */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
/* 028DDC68 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], cpu->r[30]);
|
|
/* 028DDC6C */ _t15 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028DDC6C */ rbrew_write32(cpu->mem, _t15, cpu->r[28]);
|
|
/* 028DDC70 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDC70 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DDC70 */ if (_t17) goto L_028DDC74; else goto L_028DDC34;
|
|
L_028DDC74: ; // 0x28ddc74
|
|
/* 028DDC74 */ _t18 = cpu->r[30] + 0x00000010u;
|
|
/* 028DDC74 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DDC78 */ Gambit_fn_02801BB4(cpu);
|
|
/* 028DDC7C */ _t19 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028DDC7C */ rbrew_write32(cpu->mem, _t19, cpu->r[29]);
|
|
/* 028DDC80 */ _t20 = cpu->r[30] + 0x00000014u;
|
|
/* 028DDC80 */ rbrew_write32(cpu->mem, _t20, cpu->r[29]);
|
|
/* 028DDC84 */ _t21 = cpu->r[30] + 0x00000010u;
|
|
/* 028DDC84 */ rbrew_write32(cpu->mem, _t21, cpu->r[29]);
|
|
L_028DDC88: ; // 0x28ddc88
|
|
/* 028DDC88 */ _t22 = cpu->r[31] + 0x00000020u;
|
|
/* 028DDC88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DDC8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028DDC90 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDC90 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028DDC90 */ if (_t24) goto L_028DDD5C; else goto L_028DDC94;
|
|
L_028DDC94: ; // 0x28ddc94
|
|
/* 028DDC94 */ _t25 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028DDC94 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028DDC98 */ cpu->r[28] = 0x00000000u;
|
|
/* 028DDC9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], cpu->r[0]);
|
|
/* 028DDCA0 */ _t26 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DDCA0 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028DDCA0 */ if (_t27) goto L_028DDCA4; else goto L_028DDCFC;
|
|
L_028DDCA4: ; // 0x28ddca4
|
|
/* 028DDCA4 */ cpu->r[30] = 0x00000000u;
|
|
L_028DDCA8: ; // 0x28ddca8
|
|
/* 028DDCA8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[0]);
|
|
/* 028DDCAC */ _t28 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DDCAC */ _t29 = _t28 & 0x00000001u;
|
|
/* 028DDCAC */ if (_t29) goto L_028DDCB0; else goto L_028DDCD4;
|
|
L_028DDCB0: ; // 0x28ddcb0
|
|
/* 028DDCB0 */ cpu->r[3] = cpu->r[12] + cpu->r[30];
|
|
/* 028DDCB4 */ Gambit_fn_028DDA30(cpu);
|
|
/* 028DDCB8 */ _t30 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028DDCB8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028DDCBC */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028DDCC0 */ cpu->r[30] = cpu->r[30] + 0x00000034u;
|
|
/* 028DDCC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], cpu->r[0]);
|
|
/* 028DDCC8 */ _t31 = cpu->r[31] + 0x00000020u;
|
|
/* 028DDCC8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028DDCCC */ _t32 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DDCCC */ _t33 = _t32 & 0x00000001u;
|
|
/* 028DDCCC */ if (_t33) goto L_028DDCA8; else goto L_028DDCD0;
|
|
L_028DDCD0: ; // 0x28ddcd0
|
|
/* 028DDCD0 */ goto L_028DDCF4;
|
|
L_028DDCD4: ; // 0x28ddcd4
|
|
/* 028DDCD4 */ cpu->r[3] = cpu->r[12];
|
|
/* 028DDCD8 */ Gambit_fn_028DDA30(cpu);
|
|
/* 028DDCDC */ _t34 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028DDCDC */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028DDCE0 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028DDCE4 */ cpu->r[30] = cpu->r[30] + 0x00000034u;
|
|
/* 028DDCE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], cpu->r[0]);
|
|
/* 028DDCEC */ _t35 = cpu->r[31] + 0x00000020u;
|
|
/* 028DDCEC */ cpu->r[12] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028DDCF0 */ _t36 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DDCF0 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028DDCF0 */ if (_t37) goto L_028DDCA8; else goto L_028DDCF4;
|
|
L_028DDCF4: ; // 0x28ddcf4
|
|
/* 028DDCF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028DDCF8 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDCF8 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028DDCF8 */ if (_t39) goto L_028DDD5C; else goto L_028DDCFC;
|
|
L_028DDCFC: ; // 0x28ddcfc
|
|
/* 028DDCFC */ cpu->r[30] = 0x00000000u;
|
|
/* 028DDD00 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028DDD04 */ _t40 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DDD04 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028DDD04 */ if (_t41) goto L_028DDD08; else goto L_028DDD30;
|
|
L_028DDD08: ; // 0x28ddd08
|
|
/* 028DDD08 */ cpu->r[28] = 0x00000000u;
|
|
L_028DDD0C: ; // 0x28ddd0c
|
|
/* 028DDD0C */ cpu->r[3] = cpu->r[12] + cpu->r[28];
|
|
/* 028DDD10 */ cpu->r[4] = 0x00000002u;
|
|
/* 028DDD14 */ Gambit_fn_028DDA34(cpu);
|
|
/* 028DDD18 */ _t42 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028DDD18 */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028DDD1C */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028DDD20 */ cpu->r[28] = cpu->r[28] + 0x00000034u;
|
|
/* 028DDD24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028DDD28 */ _t43 = cpu->r[31] + 0x00000020u;
|
|
/* 028DDD28 */ cpu->r[12] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028DDD2C */ _t44 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DDD2C */ _t45 = _t44 & 0x00000001u;
|
|
/* 028DDD2C */ if (_t45) goto L_028DDD0C; else goto L_028DDD30;
|
|
L_028DDD30: ; // 0x28ddd30
|
|
/* 028DDD30 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028DDD34 */ _t46 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028DDD34 */ cpu->r[3] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028DDD38 */ cpu->r[4] = cpu->r[12];
|
|
/* 028DDD3C */ Gambit_fn_02826B90(cpu);
|
|
/* 028DDD40 */ _t47 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028DDD40 */ cpu->r[8] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028DDD44 */ _t48 = cpu->r[8] + 0x0000003Cu;
|
|
/* 028DDD44 */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028DDD48 */ cpu->ctr = cpu->r[0];
|
|
/* 028DDD4C */ _t49 = cpu->r[31] + 0x00000020u;
|
|
/* 028DDD4C */ cpu->r[4] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028DDD50 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DDD54 */ _t50 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028DDD54 */ rbrew_write32(cpu->mem, _t50, cpu->r[29]);
|
|
/* 028DDD58 */ _t51 = cpu->r[31] + 0x00000020u;
|
|
/* 028DDD58 */ rbrew_write32(cpu->mem, _t51, cpu->r[29]);
|
|
L_028DDD5C: ; // 0x28ddd5c
|
|
/* 028DDD5C */ _t52 = cpu->r[31] + 0x00000024u;
|
|
/* 028DDD5C */ cpu->r[10] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028DDD60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028DDD64 */ _t53 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDD64 */ _t54 = _t53 & 0x00000001u;
|
|
/* 028DDD64 */ if (_t54) goto L_028DDD78; else goto L_028DDD68;
|
|
L_028DDD68: ; // 0x28ddd68
|
|
/* 028DDD68 */ Gambit_fn_028C2A0C(cpu);
|
|
/* 028DDD6C */ _t55 = cpu->r[31] + 0x00000024u;
|
|
/* 028DDD6C */ cpu->r[4] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028DDD70 */ Gambit_fn_028BAC44(cpu);
|
|
/* 028DDD74 */ _t56 = cpu->r[31] + 0x00000024u;
|
|
/* 028DDD74 */ rbrew_write32(cpu->mem, _t56, cpu->r[29]);
|
|
L_028DDD78: ; // 0x28ddd78
|
|
/* 028DDD78 */ /* nop */
|
|
/* 028DDD7C */ _t57 = cpu->r[1] + 0x00000024u;
|
|
/* 028DDD7C */ cpu->r[0] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028DDD80 */ cpu->lr = cpu->r[0];
|
|
/* 028DDD84 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028DDD88 */ return;
|
|
}
|
|
|
|
// fn_028DDD8C @ 0x28ddd8c
|
|
void Gambit_fn_028DDD8C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028DDD8C: ; // 0x28ddd8c
|
|
/* 028DDD8C */ cpu->r[0] = cpu->lr;
|
|
/* 028DDD90 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DDD90 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DDD90 */ cpu->r[1] = _t0;
|
|
/* 028DDD94 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028DDD94 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DDD98 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDD98 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DDD9C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DDD9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DDDA0 */ cpu->r[30] = cpu->r[4];
|
|
/* 028DDDA4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDDA4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DDDA8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDDA8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DDDA8 */ if (_t5) goto L_028DDDDC; else goto L_028DDDAC;
|
|
L_028DDDAC: ; // 0x28dddac
|
|
/* 028DDDAC */ cpu->r[0] = 0x10140000u;
|
|
/* 028DDDB0 */ cpu->r[0] = cpu->r[0] + 0xFFFFB598u;
|
|
/* 028DDDB4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DDDB8 */ _t6 = cpu->r[31] + 0x00000000u;
|
|
/* 028DDDB8 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028DDDBC */ Gambit_fn_028DDC00(cpu);
|
|
/* 028DDDC0 */ cpu->r[3] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028DDDC4 */ cpu->r[4] = 0x00000002u;
|
|
/* 028DDDC8 */ Gambit_fn_02836FA8(cpu);
|
|
/* 028DDDCC */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DDDCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DDDD0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDDD0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DDDD0 */ if (_t8) goto L_028DDDDC; else goto L_028DDDD4;
|
|
L_028DDDD4: ; // 0x28dddd4
|
|
/* 028DDDD4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DDDD8 */ Gambit_fn_02801BB0(cpu);
|
|
L_028DDDDC: ; // 0x28ddddc
|
|
/* 028DDDDC */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDDDC */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DDDE0 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028DDDE0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DDDE4 */ cpu->lr = cpu->r[0];
|
|
/* 028DDDE8 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDDE8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DDDEC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DDDF0 */ return;
|
|
}
|
|
|
|
// fn_028DDD90 @ 0x28ddd90
|
|
void Gambit_fn_028DDD90(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028DDD90: ; // 0x28ddd90
|
|
/* 028DDD90 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DDD90 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DDD90 */ cpu->r[1] = _t0;
|
|
/* 028DDD94 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028DDD94 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DDD98 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDD98 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DDD9C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DDD9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DDDA0 */ cpu->r[30] = cpu->r[4];
|
|
/* 028DDDA4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDDA4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DDDA8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDDA8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DDDA8 */ if (_t5) goto L_028DDDDC; else goto L_028DDDAC;
|
|
L_028DDDAC: ; // 0x28dddac
|
|
/* 028DDDAC */ cpu->r[0] = 0x10140000u;
|
|
/* 028DDDB0 */ cpu->r[0] = cpu->r[0] + 0xFFFFB598u;
|
|
/* 028DDDB4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DDDB8 */ _t6 = cpu->r[31] + 0x00000000u;
|
|
/* 028DDDB8 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028DDDBC */ Gambit_fn_028DDC00(cpu);
|
|
/* 028DDDC0 */ cpu->r[3] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028DDDC4 */ cpu->r[4] = 0x00000002u;
|
|
/* 028DDDC8 */ Gambit_fn_02836FA8(cpu);
|
|
/* 028DDDCC */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DDDCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DDDD0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDDD0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DDDD0 */ if (_t8) goto L_028DDDDC; else goto L_028DDDD4;
|
|
L_028DDDD4: ; // 0x28dddd4
|
|
/* 028DDDD4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DDDD8 */ Gambit_fn_02801BB0(cpu);
|
|
L_028DDDDC: ; // 0x28ddddc
|
|
/* 028DDDDC */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDDDC */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DDDE0 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028DDDE0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DDDE4 */ cpu->lr = cpu->r[0];
|
|
/* 028DDDE8 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDDE8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DDDEC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DDDF0 */ return;
|
|
}
|
|
|
|
// fn_028DDDF4 @ 0x28dddf4
|
|
void Gambit_fn_028DDDF4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54;
|
|
|
|
L_028DDDF4: ; // 0x28dddf4
|
|
/* 028DDDF4 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028DDDF4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DDDF4 */ cpu->r[1] = _t0;
|
|
/* 028DDDF8 */ /* nop */
|
|
/* 028DDDFC */ cpu->r[0] = cpu->lr;
|
|
/* 028DDE00 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DDE00 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028DDE04 */ cpu->r[29] = cpu->r[5];
|
|
/* 028DDE08 */ cpu->r[28] = cpu->r[3];
|
|
/* 028DDE0C */ _t2 = cpu->r[28] + 0x00000014u;
|
|
/* 028DDE0C */ cpu->r[8] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028DDE10 */ cpu->r[31] = cpu->r[4];
|
|
/* 028DDE14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028DDE18 */ cpu->r[30] = cpu->r[6];
|
|
/* 028DDE1C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDE1C */ _t4 = _t3 & 0x00000001u;
|
|
/* 028DDE1C */ if (_t4) goto L_028DDE20; else goto L_028DDE80;
|
|
L_028DDE20: ; // 0x28dde20
|
|
/* 028DDE20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DDE24 */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DDE24 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DDE24 */ if (_t6) goto L_028DDE28; else goto L_028DDE80;
|
|
L_028DDE28: ; // 0x28dde28
|
|
/* 028DDE28 */ cpu->r[27] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x0000006Cu);
|
|
/* 028DDE2C */ cpu->r[5] = 0x00000004u;
|
|
/* 028DDE30 */ cpu->r[4] = cpu->r[30];
|
|
/* 028DDE34 */ cpu->r[3] = cpu->r[27];
|
|
/* 028DDE38 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028DDE3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DDE40 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDE40 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DDE40 */ if (_t8) goto L_028DDE80; else goto L_028DDE44;
|
|
L_028DDE44: ; // 0x28dde44
|
|
/* 028DDE44 */ cpu->r[0] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028DDE44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DDE48 */ _t9 = cpu->r[28] + 0x00000010u;
|
|
/* 028DDE48 */ rbrew_write32(cpu->mem, _t9, cpu->r[3]);
|
|
/* 028DDE4C */ _t10 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DDE4C */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DDE4C */ if (_t11) goto L_028DDE50; else goto L_028DDE6C;
|
|
L_028DDE50: ; // 0x28dde50
|
|
/* 028DDE50 */ cpu->ctr = cpu->r[0];
|
|
/* 028DDE54 */ cpu->r[12] = 0x00000000u;
|
|
/* 028DDE58 */ cpu->r[5] = cpu->r[3] + 0x0000006Cu;
|
|
L_028DDE5C: ; // 0x28dde5c
|
|
/* 028DDE5C */ _t12 = cpu->r[3] + cpu->r[12];
|
|
/* 028DDE5C */ rbrew_write32(cpu->mem, _t12, cpu->r[5]);
|
|
/* 028DDE60 */ cpu->r[12] = cpu->r[12] + 0x0000006Cu;
|
|
/* 028DDE64 */ cpu->r[5] = cpu->r[5] + 0x0000006Cu;
|
|
/* 028DDE68 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028DDE68 */ _t13 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028DDE68 */ _t14 = _t13 >> (0x00000002u & 31u);
|
|
/* 028DDE68 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028DDE68 */ if (_t15) goto L_028DDE5C; else goto L_028DDE6C;
|
|
L_028DDE6C: ; // 0x28dde6c
|
|
/* 028DDE6C */ cpu->r[9] = cpu->r[3] + cpu->r[27];
|
|
/* 028DDE70 */ cpu->r[10] = 0x00000000u;
|
|
/* 028DDE74 */ _t16 = cpu->r[9] + 0xFFFFFF94u;
|
|
/* 028DDE74 */ rbrew_write32(cpu->mem, _t16, cpu->r[10]);
|
|
/* 028DDE78 */ _t17 = cpu->r[28] + 0x00000018u;
|
|
/* 028DDE78 */ rbrew_write32(cpu->mem, _t17, cpu->r[31]);
|
|
/* 028DDE7C */ _t18 = cpu->r[28] + 0x00000014u;
|
|
/* 028DDE7C */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
L_028DDE80: ; // 0x28dde80
|
|
/* 028DDE80 */ _t19 = cpu->r[28] + 0x00000020u;
|
|
/* 028DDE80 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DDE84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DDE88 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDE88 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028DDE88 */ if (_t21) goto L_028DDE8C; else goto L_028DDF48;
|
|
L_028DDE8C: ; // 0x28dde8c
|
|
/* 028DDE8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DDE90 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DDE94 */ _t22 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DDE94 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028DDE94 */ if (_t23) goto L_028DDE98; else goto L_028DDF08;
|
|
L_028DDE98: ; // 0x28dde98
|
|
/* 028DDE98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DDE9C */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDE9C */ _t25 = _t24 & 0x00000001u;
|
|
/* 028DDE9C */ if (_t25) goto L_028DDEA0; else goto L_028DDEAC;
|
|
L_028DDEA0: ; // 0x28ddea0
|
|
/* 028DDEA0 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028DDEA4 */ _t26 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028DDEA4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028DDEA8 */ Gambit_fn_02826F20(cpu);
|
|
L_028DDEAC: ; // 0x28ddeac
|
|
/* 028DDEAC */ _t27 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028DDEAC */ cpu->r[12] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028DDEB0 */ _t28 = cpu->r[12] + 0x00000034u;
|
|
/* 028DDEB0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028DDEB4 */ cpu->ctr = cpu->r[8];
|
|
/* 028DDEB8 */ cpu->r[5] = 0x00000004u;
|
|
/* 028DDEBC */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[29] * (int32_t)0x00000034u);
|
|
/* 028DDEC0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DDEC4 */ cpu->r[27] = cpu->r[3];
|
|
/* 028DDEC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DDECC */ cpu->r[31] = cpu->r[29];
|
|
/* 028DDED0 */ cpu->r[0] = 0x00000000u;
|
|
/* 028DDED4 */ _t29 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DDED4 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028DDED4 */ if (_t30) goto L_028DDEDC; else goto L_028DDED8;
|
|
L_028DDED8: ; // 0x28dded8
|
|
/* 028DDED8 */ cpu->r[31] = 0x00000001u;
|
|
L_028DDEDC: ; // 0x28ddedc
|
|
/* 028DDEDC */ cpu->r[26] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x00000034u);
|
|
L_028DDEE0: ; // 0x28ddee0
|
|
/* 028DDEE0 */ cpu->r[3] = cpu->r[27] + cpu->r[26];
|
|
/* 028DDEE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DDEE4 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDEE4 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028DDEE4 */ if (_t32) goto L_028DDEEC; else goto L_028DDEE8;
|
|
L_028DDEE8: ; // 0x28ddee8
|
|
/* 028DDEE8 */ Gambit_fn_028DD9C4(cpu);
|
|
L_028DDEEC: ; // 0x28ddeec
|
|
/* 028DDEEC */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028DDEEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DDEF0 */ cpu->r[26] = cpu->r[26] + 0x00000034u;
|
|
/* 028DDEF4 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDEF4 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028DDEF4 */ if (_t34) goto L_028DDEF8; else goto L_028DDEE0;
|
|
L_028DDEF8: ; // 0x28ddef8
|
|
/* 028DDEF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028DDEFC */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDEFC */ _t36 = _t35 & 0x00000001u;
|
|
/* 028DDEFC */ if (_t36) goto L_028DDF08; else goto L_028DDF00;
|
|
L_028DDF00: ; // 0x28ddf00
|
|
/* 028DDF00 */ _t37 = cpu->r[28] + 0x00000020u;
|
|
/* 028DDF00 */ rbrew_write32(cpu->mem, _t37, cpu->r[27]);
|
|
/* 028DDF04 */ _t38 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028DDF04 */ rbrew_write32(cpu->mem, _t38, cpu->r[29]);
|
|
L_028DDF08: ; // 0x28ddf08
|
|
/* 028DDF08 */ _t39 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028DDF08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028DDF0C */ cpu->r[31] = 0x00000000u;
|
|
/* 028DDF10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[0]);
|
|
/* 028DDF14 */ _t40 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DDF14 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028DDF14 */ if (_t41) goto L_028DDF18; else goto L_028DDF48;
|
|
L_028DDF18: ; // 0x28ddf18
|
|
/* 028DDF18 */ cpu->r[29] = 0x00000000u;
|
|
L_028DDF1C: ; // 0x28ddf1c
|
|
/* 028DDF1C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[0]);
|
|
/* 028DDF20 */ _t42 = cpu->r[28] + 0x00000020u;
|
|
/* 028DDF20 */ cpu->r[3] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028DDF24 */ _t43 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DDF24 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028DDF24 */ if (_t44) goto L_028DDF28; else goto L_028DDF2C;
|
|
L_028DDF28: ; // 0x28ddf28
|
|
/* 028DDF28 */ cpu->r[3] = cpu->r[3] + cpu->r[29];
|
|
L_028DDF2C: ; // 0x28ddf2c
|
|
/* 028DDF2C */ cpu->r[4] = cpu->r[30];
|
|
/* 028DDF30 */ Gambit_fn_028DDAD4(cpu);
|
|
/* 028DDF34 */ _t45 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028DDF34 */ cpu->r[0] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028DDF38 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028DDF3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[0]);
|
|
/* 028DDF40 */ cpu->r[29] = cpu->r[29] + 0x00000034u;
|
|
/* 028DDF44 */ _t46 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DDF44 */ _t47 = _t46 & 0x00000001u;
|
|
/* 028DDF44 */ if (_t47) goto L_028DDF1C; else goto L_028DDF48;
|
|
L_028DDF48: ; // 0x28ddf48
|
|
/* 028DDF48 */ _t48 = cpu->r[28] + 0x00000024u;
|
|
/* 028DDF48 */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028DDF4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DDF50 */ _t49 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDF50 */ _t50 = _t49 & 0x00000001u;
|
|
/* 028DDF50 */ if (_t50) goto L_028DDF54; else goto L_028DDF80;
|
|
L_028DDF54: ; // 0x28ddf54
|
|
/* 028DDF54 */ cpu->r[11] = 0x10140000u;
|
|
/* 028DDF58 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DDF5C */ cpu->r[11] = cpu->r[11] + 0xFFFFB500u;
|
|
/* 028DDF60 */ cpu->r[0] = cpu->r[0] + 0xFFFFB580u;
|
|
/* 028DDF64 */ _t51 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDF64 */ rbrew_write32(cpu->mem, _t51, cpu->r[11]);
|
|
/* 028DDF68 */ _t52 = cpu->r[1] + 0x00000008u;
|
|
/* 028DDF68 */ rbrew_write32(cpu->mem, _t52, cpu->r[0]);
|
|
/* 028DDF6C */ Gambit_fn_028C2A0C(cpu);
|
|
/* 028DDF70 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028DDF74 */ cpu->r[4] = cpu->r[30];
|
|
/* 028DDF78 */ Gambit_fn_028BA754(cpu);
|
|
/* 028DDF7C */ _t53 = cpu->r[28] + 0x00000024u;
|
|
/* 028DDF7C */ rbrew_write32(cpu->mem, _t53, cpu->r[3]);
|
|
L_028DDF80: ; // 0x28ddf80
|
|
/* 028DDF80 */ /* nop */
|
|
/* 028DDF84 */ _t54 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DDF84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028DDF88 */ cpu->lr = cpu->r[0];
|
|
/* 028DDF8C */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028DDF90 */ return;
|
|
}
|
|
|
|
// fn_028DDF94 @ 0x28ddf94
|
|
void Gambit_fn_028DDF94(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29;
|
|
|
|
L_028DDF94: ; // 0x28ddf94
|
|
/* 028DDF94 */ cpu->r[0] = cpu->lr;
|
|
/* 028DDF98 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DDF98 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DDF98 */ cpu->r[1] = _t0;
|
|
/* 028DDF9C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028DDF9C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DDFA0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDFA0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DDFA4 */ cpu->r[31] = cpu->r[4];
|
|
/* 028DDFA8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DDFAC */ cpu->r[3] = cpu->r[31] + 0x00000040u;
|
|
/* 028DDFB0 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDFB0 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DDFB4 */ _t4 = cpu->r[1] + 0x00000008u;
|
|
/* 028DDFB4 */ rbrew_write32(cpu->mem, _t4, cpu->r[28]);
|
|
/* 028DDFB8 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DDFB8 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DDFBC */ Gambit_fn_028BBF4C(cpu);
|
|
/* 028DDFC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DDFC4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDFC4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DDFC4 */ if (_t7) goto L_028DDFDC; else goto L_028DDFC8;
|
|
L_028DDFC8: ; // 0x28ddfc8
|
|
/* 028DDFC8 */ cpu->r[6] = 0x10140000u;
|
|
/* 028DDFCC */ _t8 = cpu->r[31] + 0x00000050u;
|
|
/* 028DDFCC */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028DDFD0 */ _t9 = cpu->r[6] + 0xFFFFB594u;
|
|
/* 028DDFD0 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028DDFD4 */ cpu->r[3] = cpu->r[31] + 0x00000040u;
|
|
/* 028DDFD8 */ Gambit_fn_028BBFC8(cpu);
|
|
L_028DDFDC: ; // 0x28ddfdc
|
|
/* 028DDFDC */ cpu->r[28] = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DDFE0 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DDFE4 */ Gambit_fn_02836FFC(cpu);
|
|
/* 028DDFE8 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028DDFEC */ _t10 = cpu->r[31] + 0x0000003Cu;
|
|
/* 028DDFEC */ cpu->r[4] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DDFF0 */ _t11 = cpu->r[3] + 0xFFFF9AE0u;
|
|
/* 028DDFF0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DDFF4 */ Gambit_fn_028E4190(cpu);
|
|
/* 028DDFF8 */ _t12 = cpu->r[31] + 0x00000060u;
|
|
/* 028DDFF8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DDFFC */ cpu->r[29] = cpu->r[31] + 0x00000054u;
|
|
/* 028DE000 */ _t13 = cpu->r[31] + 0x00000058u;
|
|
/* 028DE000 */ cpu->r[7] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DE004 */ cpu->r[10] = cpu->r[29] - cpu->r[0];
|
|
/* 028DE008 */ cpu->r[12] = cpu->r[7] - cpu->r[0];
|
|
/* 028DE00C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[10]);
|
|
/* 028DE010 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE010 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028DE010 */ if (_t15) goto L_028DE030; else goto L_028DE014;
|
|
L_028DE014: ; // 0x28de014
|
|
/* 028DE014 */ cpu->r[5] = 0x00000000u;
|
|
L_028DE018: ; // 0x28de018
|
|
/* 028DE018 */ cpu->r[11] = cpu->r[12] + cpu->r[0];
|
|
/* 028DE01C */ _t16 = cpu->r[12] + 0x00000028u;
|
|
/* 028DE01C */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[5]);
|
|
/* 028DE020 */ _t17 = cpu->r[11] + 0x00000004u;
|
|
/* 028DE020 */ cpu->r[8] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DE024 */ cpu->r[12] = cpu->r[8] - cpu->r[0];
|
|
/* 028DE028 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[10]);
|
|
/* 028DE02C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE02C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DE02C */ if (_t19) goto L_028DE030; else goto L_028DE018;
|
|
L_028DE030: ; // 0x28de030
|
|
/* 028DE030 */ cpu->r[3] = cpu->r[31] + 0x00000064u;
|
|
/* 028DE034 */ Gambit_fn_02801EDC(cpu);
|
|
/* 028DE038 */ _t20 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028DE038 */ cpu->r[9] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DE03C */ cpu->r[9] = cpu->r[9] + 0xFFFFFFFFu;
|
|
/* 028DE040 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DE044 */ _t21 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028DE044 */ rbrew_write32(cpu->mem, _t21, cpu->r[9]);
|
|
/* 028DE048 */ Gambit_fn_0280236C(cpu);
|
|
/* 028DE04C */ _t22 = cpu->r[30] + 0x00000010u;
|
|
/* 028DE04C */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DE050 */ _t23 = cpu->r[31] + 0x00000000u;
|
|
/* 028DE050 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 028DE054 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DE058 */ _t24 = cpu->r[30] + 0x00000010u;
|
|
/* 028DE058 */ rbrew_write32(cpu->mem, _t24, cpu->r[31]);
|
|
/* 028DE05C */ Gambit_fn_02837030(cpu);
|
|
/* 028DE060 */ _t25 = cpu->r[1] + 0x00000008u;
|
|
/* 028DE060 */ cpu->r[28] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028DE064 */ _t26 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DE064 */ cpu->r[29] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028DE068 */ _t27 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DE068 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028DE06C */ _t28 = cpu->r[1] + 0x00000010u;
|
|
/* 028DE06C */ cpu->r[30] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028DE070 */ cpu->lr = cpu->r[0];
|
|
/* 028DE074 */ _t29 = cpu->r[1] + 0x00000014u;
|
|
/* 028DE074 */ cpu->r[31] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028DE078 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DE07C */ return;
|
|
}
|
|
|
|
// fn_028DDF98 @ 0x28ddf98
|
|
void Gambit_fn_028DDF98(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29;
|
|
|
|
L_028DDF98: ; // 0x28ddf98
|
|
/* 028DDF98 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DDF98 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DDF98 */ cpu->r[1] = _t0;
|
|
/* 028DDF9C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028DDF9C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DDFA0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DDFA0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DDFA4 */ cpu->r[31] = cpu->r[4];
|
|
/* 028DDFA8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DDFAC */ cpu->r[3] = cpu->r[31] + 0x00000040u;
|
|
/* 028DDFB0 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DDFB0 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DDFB4 */ _t4 = cpu->r[1] + 0x00000008u;
|
|
/* 028DDFB4 */ rbrew_write32(cpu->mem, _t4, cpu->r[28]);
|
|
/* 028DDFB8 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DDFB8 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DDFBC */ Gambit_fn_028BBF4C(cpu);
|
|
/* 028DDFC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DDFC4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DDFC4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DDFC4 */ if (_t7) goto L_028DDFDC; else goto L_028DDFC8;
|
|
L_028DDFC8: ; // 0x28ddfc8
|
|
/* 028DDFC8 */ cpu->r[6] = 0x10140000u;
|
|
/* 028DDFCC */ _t8 = cpu->r[31] + 0x00000050u;
|
|
/* 028DDFCC */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028DDFD0 */ _t9 = cpu->r[6] + 0xFFFFB594u;
|
|
/* 028DDFD0 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028DDFD4 */ cpu->r[3] = cpu->r[31] + 0x00000040u;
|
|
/* 028DDFD8 */ Gambit_fn_028BBFC8(cpu);
|
|
L_028DDFDC: ; // 0x28ddfdc
|
|
/* 028DDFDC */ cpu->r[28] = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DDFE0 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DDFE4 */ Gambit_fn_02836FFC(cpu);
|
|
/* 028DDFE8 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028DDFEC */ _t10 = cpu->r[31] + 0x0000003Cu;
|
|
/* 028DDFEC */ cpu->r[4] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DDFF0 */ _t11 = cpu->r[3] + 0xFFFF9AE0u;
|
|
/* 028DDFF0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DDFF4 */ Gambit_fn_028E4190(cpu);
|
|
/* 028DDFF8 */ _t12 = cpu->r[31] + 0x00000060u;
|
|
/* 028DDFF8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DDFFC */ cpu->r[29] = cpu->r[31] + 0x00000054u;
|
|
/* 028DE000 */ _t13 = cpu->r[31] + 0x00000058u;
|
|
/* 028DE000 */ cpu->r[7] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DE004 */ cpu->r[10] = cpu->r[29] - cpu->r[0];
|
|
/* 028DE008 */ cpu->r[12] = cpu->r[7] - cpu->r[0];
|
|
/* 028DE00C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[10]);
|
|
/* 028DE010 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE010 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028DE010 */ if (_t15) goto L_028DE030; else goto L_028DE014;
|
|
L_028DE014: ; // 0x28de014
|
|
/* 028DE014 */ cpu->r[5] = 0x00000000u;
|
|
L_028DE018: ; // 0x28de018
|
|
/* 028DE018 */ cpu->r[11] = cpu->r[12] + cpu->r[0];
|
|
/* 028DE01C */ _t16 = cpu->r[12] + 0x00000028u;
|
|
/* 028DE01C */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[5]);
|
|
/* 028DE020 */ _t17 = cpu->r[11] + 0x00000004u;
|
|
/* 028DE020 */ cpu->r[8] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DE024 */ cpu->r[12] = cpu->r[8] - cpu->r[0];
|
|
/* 028DE028 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[10]);
|
|
/* 028DE02C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE02C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DE02C */ if (_t19) goto L_028DE030; else goto L_028DE018;
|
|
L_028DE030: ; // 0x28de030
|
|
/* 028DE030 */ cpu->r[3] = cpu->r[31] + 0x00000064u;
|
|
/* 028DE034 */ Gambit_fn_02801EDC(cpu);
|
|
/* 028DE038 */ _t20 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028DE038 */ cpu->r[9] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DE03C */ cpu->r[9] = cpu->r[9] + 0xFFFFFFFFu;
|
|
/* 028DE040 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DE044 */ _t21 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028DE044 */ rbrew_write32(cpu->mem, _t21, cpu->r[9]);
|
|
/* 028DE048 */ Gambit_fn_0280236C(cpu);
|
|
/* 028DE04C */ _t22 = cpu->r[30] + 0x00000010u;
|
|
/* 028DE04C */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DE050 */ _t23 = cpu->r[31] + 0x00000000u;
|
|
/* 028DE050 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 028DE054 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DE058 */ _t24 = cpu->r[30] + 0x00000010u;
|
|
/* 028DE058 */ rbrew_write32(cpu->mem, _t24, cpu->r[31]);
|
|
/* 028DE05C */ Gambit_fn_02837030(cpu);
|
|
/* 028DE060 */ _t25 = cpu->r[1] + 0x00000008u;
|
|
/* 028DE060 */ cpu->r[28] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028DE064 */ _t26 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DE064 */ cpu->r[29] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028DE068 */ _t27 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DE068 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028DE06C */ _t28 = cpu->r[1] + 0x00000010u;
|
|
/* 028DE06C */ cpu->r[30] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028DE070 */ cpu->lr = cpu->r[0];
|
|
/* 028DE074 */ _t29 = cpu->r[1] + 0x00000014u;
|
|
/* 028DE074 */ cpu->r[31] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028DE078 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DE07C */ return;
|
|
}
|
|
|
|
// fn_028DE080 @ 0x28de080
|
|
void Gambit_fn_028DE080(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36;
|
|
|
|
L_028DE080: ; // 0x28de080
|
|
/* 028DE080 */ cpu->r[0] = cpu->lr;
|
|
/* 028DE084 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028DE084 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DE084 */ cpu->r[1] = _t0;
|
|
/* 028DE088 */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028DE088 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028DE08C */ /* nop */
|
|
/* 028DE090 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028DE090 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028DE094 */ _t3 = cpu->r[1] + 0x00000020u;
|
|
/* 028DE094 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[31]);
|
|
/* 028DE098 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028DE098 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028DE09C */ _t5 = cpu->r[1] + 0x00000008u;
|
|
/* 028DE09C */ rbrew_write32(cpu->mem, _t5, cpu->r[28]);
|
|
/* 028DE0A0 */ _t6 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DE0A0 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028DE0A4 */ cpu->r[28] = cpu->r[3];
|
|
/* 028DE0A8 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DE0A8 */ rbrew_write32(cpu->mem, _t7, cpu->r[29]);
|
|
/* 028DE0AC */ _t8 = cpu->r[28] + 0x00000008u;
|
|
/* 028DE0AC */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DE0B0 */ cpu->r[31] = cpu->r[28] + 0xFFFFFFA0u;
|
|
/* 028DE0B4 */ cpu->r[29] = cpu->r[12] + 0xFFFFFF9Cu;
|
|
/* 028DE0B8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028DE0BC */ _t9 = cpu->r[12] + 0x00000004u;
|
|
/* 028DE0BC */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DE0C0 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE0C0 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DE0C0 */ if (_t11) goto L_028DE12C; else goto L_028DE0C4;
|
|
L_028DE0C4: ; // 0x28de0c4
|
|
/* 028DE0C4 */ cpu->r[11] = 0x10140000u;
|
|
/* 028DE0C8 */ _t12 = cpu->r[11] + 0xFFFFB594u;
|
|
/* 028DE0C8 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t12);
|
|
L_028DE0CC: ; // 0x28de0cc
|
|
/* 028DE0CC */ cpu->r[3] = cpu->r[29] + 0x00000040u;
|
|
/* 028DE0D0 */ Gambit_fn_028BBF4C(cpu);
|
|
/* 028DE0D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DE0D8 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE0D8 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028DE0D8 */ if (_t14) goto L_028DE110; else goto L_028DE0DC;
|
|
L_028DE0DC: ; // 0x28de0dc
|
|
/* 028DE0DC */ _t15 = cpu->r[29] + 0x0000003Cu;
|
|
/* 028DE0DC */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028DE0E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028DE0E4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE0E4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DE0E4 */ if (_t17) goto L_028DE11C; else goto L_028DE0E8;
|
|
L_028DE0E8: ; // 0x28de0e8
|
|
/* 028DE0E8 */ _t18 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028DE0E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DE0EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DE0F0 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE0F0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028DE0F0 */ if (_t20) goto L_028DE100; else goto L_028DE0F4;
|
|
L_028DE0F4: ; // 0x28de0f4
|
|
/* 028DE0F4 */ _t21 = cpu->r[10] + 0x00000078u;
|
|
/* 028DE0F4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028DE0F8 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[31]);
|
|
/* 028DE0FC */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE0FC */ _t23 = _t22 & 0x00000001u;
|
|
/* 028DE0FC */ if (_t23) goto L_028DE100; else goto L_028DE11C;
|
|
L_028DE100: ; // 0x28de100
|
|
/* 028DE100 */ cpu->f[2] = cpu->f[31];
|
|
/* 028DE104 */ _t24 = cpu->r[29] + 0x00000050u;
|
|
/* 028DE104 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 028DE108 */ cpu->r[3] = cpu->r[29] + 0x00000040u;
|
|
/* 028DE10C */ Gambit_fn_028BBFC8(cpu);
|
|
L_028DE110: ; // 0x28de110
|
|
/* 028DE110 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DE114 */ cpu->r[4] = cpu->r[29];
|
|
/* 028DE118 */ Gambit_fn_028DDF94(cpu);
|
|
L_028DE11C: ; // 0x28de11c
|
|
/* 028DE11C */ cpu->r[29] = cpu->r[30] + 0xFFFFFF9Cu;
|
|
/* 028DE120 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028DE124 */ _t25 = cpu->r[30] + 0x00000004u;
|
|
/* 028DE124 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028DE128 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE128 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028DE128 */ if (_t27) goto L_028DE12C; else goto L_028DE0CC;
|
|
L_028DE12C: ; // 0x28de12c
|
|
/* 028DE12C */ _t28 = cpu->r[1] + 0x00000008u;
|
|
/* 028DE12C */ cpu->r[28] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028DE130 */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DE130 */ cpu->r[29] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028DE134 */ _t30 = cpu->r[1] + 0x00000020u;
|
|
/* 028DE134 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t30);
|
|
/* 028DE138 */ _t31 = cpu->r[1] + 0x00000010u;
|
|
/* 028DE138 */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028DE13C */ _t32 = cpu->r[1] + 0x00000018u;
|
|
/* 028DE13C */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t32);
|
|
/* 028DE140 */ _t33 = cpu->r[1] + 0x00000014u;
|
|
/* 028DE140 */ cpu->r[31] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028DE144 */ _t34 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DE144 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028DE144 */ if (_t35) goto L_028DE148; // else: addr-0 trap, fall-through
|
|
L_028DE148: ; // 0x28de148
|
|
/* 028DE148 */ _t36 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DE148 */ cpu->r[0] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028DE14C */ cpu->lr = cpu->r[0];
|
|
/* 028DE150 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028DE154 */ return;
|
|
}
|
|
|
|
// fn_028DE084 @ 0x28de084
|
|
void Gambit_fn_028DE084(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36;
|
|
|
|
L_028DE084: ; // 0x28de084
|
|
/* 028DE084 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028DE084 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DE084 */ cpu->r[1] = _t0;
|
|
/* 028DE088 */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028DE088 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028DE08C */ /* nop */
|
|
/* 028DE090 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028DE090 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028DE094 */ _t3 = cpu->r[1] + 0x00000020u;
|
|
/* 028DE094 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[31]);
|
|
/* 028DE098 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028DE098 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028DE09C */ _t5 = cpu->r[1] + 0x00000008u;
|
|
/* 028DE09C */ rbrew_write32(cpu->mem, _t5, cpu->r[28]);
|
|
/* 028DE0A0 */ _t6 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DE0A0 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028DE0A4 */ cpu->r[28] = cpu->r[3];
|
|
/* 028DE0A8 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DE0A8 */ rbrew_write32(cpu->mem, _t7, cpu->r[29]);
|
|
/* 028DE0AC */ _t8 = cpu->r[28] + 0x00000008u;
|
|
/* 028DE0AC */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DE0B0 */ cpu->r[31] = cpu->r[28] + 0xFFFFFFA0u;
|
|
/* 028DE0B4 */ cpu->r[29] = cpu->r[12] + 0xFFFFFF9Cu;
|
|
/* 028DE0B8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028DE0BC */ _t9 = cpu->r[12] + 0x00000004u;
|
|
/* 028DE0BC */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DE0C0 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE0C0 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DE0C0 */ if (_t11) goto L_028DE12C; else goto L_028DE0C4;
|
|
L_028DE0C4: ; // 0x28de0c4
|
|
/* 028DE0C4 */ cpu->r[11] = 0x10140000u;
|
|
/* 028DE0C8 */ _t12 = cpu->r[11] + 0xFFFFB594u;
|
|
/* 028DE0C8 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t12);
|
|
L_028DE0CC: ; // 0x28de0cc
|
|
/* 028DE0CC */ cpu->r[3] = cpu->r[29] + 0x00000040u;
|
|
/* 028DE0D0 */ Gambit_fn_028BBF4C(cpu);
|
|
/* 028DE0D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DE0D8 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE0D8 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028DE0D8 */ if (_t14) goto L_028DE110; else goto L_028DE0DC;
|
|
L_028DE0DC: ; // 0x28de0dc
|
|
/* 028DE0DC */ _t15 = cpu->r[29] + 0x0000003Cu;
|
|
/* 028DE0DC */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028DE0E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028DE0E4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE0E4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DE0E4 */ if (_t17) goto L_028DE11C; else goto L_028DE0E8;
|
|
L_028DE0E8: ; // 0x28de0e8
|
|
/* 028DE0E8 */ _t18 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028DE0E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DE0EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DE0F0 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE0F0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028DE0F0 */ if (_t20) goto L_028DE100; else goto L_028DE0F4;
|
|
L_028DE0F4: ; // 0x28de0f4
|
|
/* 028DE0F4 */ _t21 = cpu->r[10] + 0x00000078u;
|
|
/* 028DE0F4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028DE0F8 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[31]);
|
|
/* 028DE0FC */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE0FC */ _t23 = _t22 & 0x00000001u;
|
|
/* 028DE0FC */ if (_t23) goto L_028DE100; else goto L_028DE11C;
|
|
L_028DE100: ; // 0x28de100
|
|
/* 028DE100 */ cpu->f[2] = cpu->f[31];
|
|
/* 028DE104 */ _t24 = cpu->r[29] + 0x00000050u;
|
|
/* 028DE104 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 028DE108 */ cpu->r[3] = cpu->r[29] + 0x00000040u;
|
|
/* 028DE10C */ Gambit_fn_028BBFC8(cpu);
|
|
L_028DE110: ; // 0x28de110
|
|
/* 028DE110 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DE114 */ cpu->r[4] = cpu->r[29];
|
|
/* 028DE118 */ Gambit_fn_028DDF94(cpu);
|
|
L_028DE11C: ; // 0x28de11c
|
|
/* 028DE11C */ cpu->r[29] = cpu->r[30] + 0xFFFFFF9Cu;
|
|
/* 028DE120 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028DE124 */ _t25 = cpu->r[30] + 0x00000004u;
|
|
/* 028DE124 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028DE128 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE128 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028DE128 */ if (_t27) goto L_028DE12C; else goto L_028DE0CC;
|
|
L_028DE12C: ; // 0x28de12c
|
|
/* 028DE12C */ _t28 = cpu->r[1] + 0x00000008u;
|
|
/* 028DE12C */ cpu->r[28] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028DE130 */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DE130 */ cpu->r[29] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028DE134 */ _t30 = cpu->r[1] + 0x00000020u;
|
|
/* 028DE134 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t30);
|
|
/* 028DE138 */ _t31 = cpu->r[1] + 0x00000010u;
|
|
/* 028DE138 */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028DE13C */ _t32 = cpu->r[1] + 0x00000018u;
|
|
/* 028DE13C */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t32);
|
|
/* 028DE140 */ _t33 = cpu->r[1] + 0x00000014u;
|
|
/* 028DE140 */ cpu->r[31] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028DE144 */ _t34 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DE144 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028DE144 */ if (_t35) goto L_028DE148; // else: addr-0 trap, fall-through
|
|
L_028DE148: ; // 0x28de148
|
|
/* 028DE148 */ _t36 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DE148 */ cpu->r[0] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028DE14C */ cpu->lr = cpu->r[0];
|
|
/* 028DE150 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028DE154 */ return;
|
|
}
|
|
|
|
// fn_028DE158 @ 0x28de158
|
|
void Gambit_fn_028DE158(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41;
|
|
|
|
L_028DE158: ; // 0x28de158
|
|
/* 028DE158 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 028DE158 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DE158 */ cpu->r[1] = _t0;
|
|
/* 028DE15C */ /* nop */
|
|
/* 028DE160 */ cpu->r[0] = cpu->lr;
|
|
/* 028DE164 */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 028DE164 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028DE168 */ cpu->r[29] = cpu->r[6];
|
|
/* 028DE16C */ _t2 = cpu->r[3] + 0x00000008u;
|
|
/* 028DE16C */ cpu->r[6] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028DE170 */ cpu->r[26] = cpu->r[3] + 0xFFFFFFA0u;
|
|
/* 028DE174 */ cpu->r[30] = cpu->r[6] + 0xFFFFFF9Cu;
|
|
/* 028DE178 */ cpu->r[27] = cpu->r[4];
|
|
/* 028DE17C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[26]);
|
|
/* 028DE180 */ cpu->r[28] = cpu->r[5];
|
|
/* 028DE184 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE184 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028DE184 */ if (_t4) goto L_028DE268; else goto L_028DE188;
|
|
L_028DE188: ; // 0x28de188
|
|
/* 028DE188 */ cpu->r[7] = 0xFFFFFFFFu;
|
|
/* 028DE18C */ cpu->r[31] = 0x10110000u;
|
|
/* 028DE190 */ cpu->r[7] = cpu->r[29] ^ cpu->r[7];
|
|
/* 028DE194 */ cpu->r[25] = 0x00080000u;
|
|
/* 028DE198 */ _t5 = cpu->r[31] + 0x00007399u;
|
|
/* 028DE198 */ cpu->r[31] = rbrew_read8(cpu->mem, _t5);
|
|
/* 028DE19C */ cpu->r[8] = rbrew_clz32(cpu->r[7]);
|
|
/* 028DE1A0 */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
/* 028DE1A4 */ cpu->r[24] = rbrew_rlwinm(cpu->r[8], 0x0000001Bu, 0x00000005u, 0x0000001Fu);
|
|
L_028DE1A8: ; // 0x28de1a8
|
|
/* 028DE1A8 */ _t6 = cpu->r[30] + 0x00000004u;
|
|
/* 028DE1A8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DE1AC */ _t7 = cpu->r[9] + 0x00000014u;
|
|
/* 028DE1AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DE1B0 */ cpu->ctr = cpu->r[0];
|
|
/* 028DE1B4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DE1B8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DE1BC */ _t8 = cpu->r[30] + 0x00000004u;
|
|
/* 028DE1BC */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DE1C0 */ _t9 = cpu->r[11] + 0x00000014u;
|
|
/* 028DE1C0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DE1C4 */ cpu->ctr = cpu->r[4];
|
|
/* 028DE1C8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DE1CC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DE1D0 */ _t10 = cpu->r[27] + 0x00000004u;
|
|
/* 028DE1D0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DE1D4 */ _t11 = cpu->r[5] + 0x00000014u;
|
|
/* 028DE1D4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DE1D8 */ cpu->ctr = cpu->r[6];
|
|
/* 028DE1DC */ _t12 = cpu->r[30] + 0x00000000u;
|
|
/* 028DE1DC */ cpu->r[23] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DE1E0 */ cpu->r[3] = cpu->r[27];
|
|
/* 028DE1E4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DE1E8 */ _t13 = cpu->r[27] + 0x00000000u;
|
|
/* 028DE1E8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DE1EC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[23], cpu->r[8]);
|
|
/* 028DE1F0 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE1F0 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028DE1F0 */ if (_t15) goto L_028DE238; else goto L_028DE1F4;
|
|
L_028DE1F4: ; // 0x28de1f4
|
|
/* 028DE1F4 */ _t16 = cpu->r[27] + 0x00000000u;
|
|
/* 028DE1F4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DE1F8 */ cpu->ctr = cpu->r[25];
|
|
/* 028DE1FC */ _t17 = cpu->r[30] + 0x00000000u;
|
|
/* 028DE1FC */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DE200 */ cpu->r[4] = cpu->r[4] + 0xFFFFFFFFu;
|
|
L_028DE204: ; // 0x28de204
|
|
/* 028DE204 */ _t18 = cpu->r[12] + 0x00000000u;
|
|
/* 028DE204 */ cpu->r[0] = rbrew_read8(cpu->mem, _t18);
|
|
/* 028DE208 */ _t19 = cpu->r[4] + 0x00000001u;
|
|
/* 028DE208 */ cpu->r[9] = rbrew_read8(cpu->mem, _t19);
|
|
/* 028DE208 */ cpu->r[4] = _t19;
|
|
/* 028DE20C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[9]);
|
|
/* 028DE210 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE210 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028DE210 */ if (_t21) goto L_028DE214; else goto L_028DE258;
|
|
L_028DE214: ; // 0x28de214
|
|
/* 028DE214 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[31]);
|
|
/* 028DE218 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE218 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028DE218 */ if (_t23) goto L_028DE238; else goto L_028DE21C;
|
|
L_028DE21C: ; // 0x28de21c
|
|
/* 028DE21C */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028DE220 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028DE220 */ _t24 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028DE220 */ _t25 = _t24 >> (0x00000002u & 31u);
|
|
/* 028DE220 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028DE220 */ if (_t26) goto L_028DE204; else goto L_028DE224;
|
|
L_028DE224: ; // 0x28de224
|
|
/* 028DE224 */ _t27 = cpu->r[30] + 0x00000068u;
|
|
/* 028DE224 */ cpu->r[12] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028DE228 */ cpu->r[30] = cpu->r[12] + 0xFFFFFF9Cu;
|
|
/* 028DE22C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[26]);
|
|
/* 028DE230 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE230 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028DE230 */ if (_t29) goto L_028DE234; else goto L_028DE1A8;
|
|
L_028DE234: ; // 0x28de234
|
|
/* 028DE234 */ goto L_028DE268;
|
|
L_028DE238: ; // 0x28de238
|
|
/* 028DE238 */ _t30 = cpu->r[30] + 0x0000004Cu;
|
|
/* 028DE238 */ cpu->r[10] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028DE23C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[28]);
|
|
/* 028DE240 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE240 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028DE240 */ if (_t32) goto L_028DE244; else goto L_028DE258;
|
|
L_028DE244: ; // 0x28de244
|
|
/* 028DE244 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], 0x00000000u);
|
|
/* 028DE248 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE248 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028DE248 */ if (_t34) goto L_028DE24C; else goto L_028DE26C;
|
|
L_028DE24C: ; // 0x28de24c
|
|
/* 028DE24C */ _t35 = cpu->r[30] + 0x00000048u;
|
|
/* 028DE24C */ cpu->r[0] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028DE250 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[29]);
|
|
/* 028DE254 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE254 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028DE254 */ if (_t37) goto L_028DE26C; else goto L_028DE258;
|
|
L_028DE258: ; // 0x28de258
|
|
/* 028DE258 */ _t38 = cpu->r[30] + 0x00000068u;
|
|
/* 028DE258 */ cpu->r[12] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028DE25C */ cpu->r[30] = cpu->r[12] + 0xFFFFFF9Cu;
|
|
/* 028DE260 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[26]);
|
|
/* 028DE264 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE264 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028DE264 */ if (_t40) goto L_028DE268; else goto L_028DE1A8;
|
|
L_028DE268: ; // 0x28de268
|
|
/* 028DE268 */ cpu->r[30] = 0x00000000u;
|
|
L_028DE26C: ; // 0x28de26c
|
|
/* 028DE26C */ cpu->r[3] = cpu->r[30];
|
|
/* 028DE270 */ /* nop */
|
|
/* 028DE274 */ _t41 = cpu->r[1] + 0x00000034u;
|
|
/* 028DE274 */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028DE278 */ cpu->lr = cpu->r[0];
|
|
/* 028DE27C */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 028DE280 */ return;
|
|
}
|
|
|
|
// fn_028DE284 @ 0x28de284
|
|
void Gambit_fn_028DE284(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23;
|
|
|
|
L_028DE284: ; // 0x28de284
|
|
/* 028DE284 */ _t0 = cpu->r[3] + 0x00000020u;
|
|
/* 028DE284 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028DE288 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028DE28C */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE28C */ _t2 = _t1 & 0x00000001u;
|
|
/* 028DE28C */ if (_t2) goto L_028DE308; else goto L_028DE290;
|
|
L_028DE290: ; // 0x28de290
|
|
/* 028DE290 */ _t3 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028DE290 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028DE294 */ cpu->r[8] = 0x00000000u;
|
|
/* 028DE298 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], cpu->r[0]);
|
|
/* 028DE29C */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DE29C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DE29C */ if (_t5) goto L_028DE2A0; else goto L_028DE308;
|
|
L_028DE2A0: ; // 0x28de2a0
|
|
/* 028DE2A0 */ cpu->r[7] = 0x00000001u;
|
|
/* 028DE2A4 */ cpu->r[12] = 0x00000000u;
|
|
L_028DE2A8: ; // 0x28de2a8
|
|
/* 028DE2A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[0]);
|
|
/* 028DE2AC */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DE2AC */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DE2AC */ if (_t7) goto L_028DE2B0; else goto L_028DE2C4;
|
|
L_028DE2B0: ; // 0x28de2b0
|
|
/* 028DE2B0 */ cpu->r[10] = cpu->r[11] + cpu->r[12];
|
|
/* 028DE2B4 */ _t8 = cpu->r[10] + 0x00000029u;
|
|
/* 028DE2B4 */ cpu->r[10] = rbrew_read8(cpu->mem, _t8);
|
|
/* 028DE2B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028DE2BC */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE2BC */ _t10 = _t9 & 0x00000001u;
|
|
/* 028DE2BC */ if (_t10) goto L_028DE2C0; else goto L_028DE2F8;
|
|
L_028DE2C0: ; // 0x28de2c0
|
|
/* 028DE2C0 */ goto L_028DE2D0;
|
|
L_028DE2C4: ; // 0x28de2c4
|
|
/* 028DE2C4 */ _t11 = cpu->r[11] + 0x00000029u;
|
|
/* 028DE2C4 */ cpu->r[10] = rbrew_read8(cpu->mem, _t11);
|
|
/* 028DE2C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028DE2CC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE2CC */ _t13 = _t12 & 0x00000001u;
|
|
/* 028DE2CC */ if (_t13) goto L_028DE2D0; else goto L_028DE2F8;
|
|
L_028DE2D0: ; // 0x28de2d0
|
|
/* 028DE2D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[0]);
|
|
/* 028DE2D4 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DE2D4 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028DE2D4 */ if (_t15) goto L_028DE2D8; else goto L_028DE2DC;
|
|
L_028DE2D8: ; // 0x28de2d8
|
|
/* 028DE2D8 */ cpu->r[11] = cpu->r[11] + cpu->r[12];
|
|
L_028DE2DC: ; // 0x28de2dc
|
|
/* 028DE2DC */ _t16 = cpu->r[11] + 0x00000029u;
|
|
/* 028DE2DC */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[7]);
|
|
/* 028DE2E0 */ _t17 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028DE2E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DE2E4 */ _t18 = cpu->r[3] + 0x00000020u;
|
|
/* 028DE2E4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DE2E8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[0]);
|
|
/* 028DE2EC */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DE2EC */ _t20 = _t19 & 0x00000001u;
|
|
/* 028DE2EC */ _t21 = _t20 ^ 0x00000001u;
|
|
/* 028DE2EC */ if (_t21) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DE2EC */ goto L_028DE2F0;
|
|
L_028DE2F0: ; // 0x28de2f0
|
|
/* 028DE2F0 */ cpu->r[3] = cpu->r[3] + cpu->r[12];
|
|
/* 028DE2F4 */ return;
|
|
L_028DE2F8: ; // 0x28de2f8
|
|
/* 028DE2F8 */ cpu->r[8] = cpu->r[8] + 0x00000001u;
|
|
/* 028DE2FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], cpu->r[0]);
|
|
/* 028DE300 */ cpu->r[12] = cpu->r[12] + 0x00000034u;
|
|
/* 028DE304 */ _t22 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DE304 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028DE304 */ if (_t23) goto L_028DE2A8; else goto L_028DE308;
|
|
L_028DE308: ; // 0x28de308
|
|
/* 028DE308 */ cpu->r[3] = 0x00000000u;
|
|
/* 028DE30C */ return;
|
|
}
|
|
|
|
// fn_028DE310 @ 0x28de310
|
|
void Gambit_fn_028DE310(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21;
|
|
|
|
L_028DE310: ; // 0x28de310
|
|
/* 028DE310 */ cpu->r[0] = cpu->lr;
|
|
/* 028DE314 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DE314 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DE314 */ cpu->r[1] = _t0;
|
|
/* 028DE318 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028DE318 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DE31C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DE320 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028DE320 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028DE324 */ cpu->r[30] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028DE328 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DE32C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DE32C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DE330 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DE330 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DE334 */ cpu->r[29] = cpu->r[4];
|
|
/* 028DE338 */ Gambit_fn_02836FFC(cpu);
|
|
/* 028DE33C */ cpu->r[3] = cpu->r[31];
|
|
/* 028DE340 */ Gambit_fn_028DE284(cpu);
|
|
/* 028DE344 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DE344 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DE348 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE348 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DE348 */ if (_t6) goto L_028DE34C; else goto L_028DE374;
|
|
L_028DE34C: ; // 0x28de34c
|
|
/* 028DE34C */ cpu->r[3] = cpu->r[30];
|
|
/* 028DE350 */ Gambit_fn_02837030(cpu);
|
|
/* 028DE354 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DE354 */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DE358 */ _t8 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DE358 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DE35C */ _t9 = cpu->r[1] + 0x00000010u;
|
|
/* 028DE35C */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DE360 */ cpu->lr = cpu->r[0];
|
|
/* 028DE364 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028DE364 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DE368 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DE36C */ cpu->r[3] = 0x00000000u;
|
|
/* 028DE370 */ return;
|
|
L_028DE374: ; // 0x28de374
|
|
/* 028DE374 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DE378 */ Gambit_fn_028DDA90(cpu);
|
|
/* 028DE37C */ cpu->r[3] = cpu->r[29] + 0x00000040u;
|
|
/* 028DE380 */ Gambit_fn_028BC334(cpu);
|
|
/* 028DE384 */ _t11 = cpu->r[29] + 0x00000048u;
|
|
/* 028DE384 */ cpu->r[5] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DE388 */ cpu->r[4] = cpu->r[3];
|
|
/* 028DE38C */ _t12 = cpu->r[29] + 0x0000004Cu;
|
|
/* 028DE38C */ cpu->r[6] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DE390 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DE394 */ Gambit_fn_028DDB0C(cpu);
|
|
/* 028DE398 */ _t13 = cpu->r[29] + 0x0000003Cu;
|
|
/* 028DE398 */ cpu->r[3] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DE39C */ cpu->r[4] = cpu->r[31];
|
|
/* 028DE3A0 */ Gambit_fn_028E257C(cpu);
|
|
/* 028DE3A4 */ _t14 = cpu->r[29] + 0x00000060u;
|
|
/* 028DE3A4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DE3A8 */ cpu->r[3] = cpu->r[29] + 0x00000054u;
|
|
/* 028DE3AC */ cpu->r[4] = cpu->r[31] + cpu->r[11];
|
|
/* 028DE3B0 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028DE3B4 */ _t15 = cpu->r[29] + 0x0000005Cu;
|
|
/* 028DE3B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028DE3B8 */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028DE3BC */ cpu->r[0] = 0x00000001u;
|
|
/* 028DE3C0 */ _t16 = cpu->r[29] + 0x0000005Cu;
|
|
/* 028DE3C0 */ rbrew_write32(cpu->mem, _t16, cpu->r[12]);
|
|
/* 028DE3C4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DE3C8 */ _t17 = cpu->r[31] + 0x00000028u;
|
|
/* 028DE3C8 */ rbrew_write8(cpu->mem, _t17, (uint8_t)cpu->r[0]);
|
|
/* 028DE3CC */ Gambit_fn_02837030(cpu);
|
|
/* 028DE3D0 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DE3D0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DE3D4 */ _t19 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DE3D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DE3D8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DE3DC */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028DE3DC */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DE3E0 */ cpu->lr = cpu->r[0];
|
|
/* 028DE3E4 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028DE3E4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DE3E8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DE3EC */ return;
|
|
}
|
|
|
|
// fn_028DE314 @ 0x28de314
|
|
void Gambit_fn_028DE314(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21;
|
|
|
|
L_028DE314: ; // 0x28de314
|
|
/* 028DE314 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DE314 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DE314 */ cpu->r[1] = _t0;
|
|
/* 028DE318 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028DE318 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DE31C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DE320 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028DE320 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028DE324 */ cpu->r[30] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028DE328 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DE32C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DE32C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028DE330 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DE330 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DE334 */ cpu->r[29] = cpu->r[4];
|
|
/* 028DE338 */ Gambit_fn_02836FFC(cpu);
|
|
/* 028DE33C */ cpu->r[3] = cpu->r[31];
|
|
/* 028DE340 */ Gambit_fn_028DE284(cpu);
|
|
/* 028DE344 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DE344 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DE348 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE348 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DE348 */ if (_t6) goto L_028DE34C; else goto L_028DE374;
|
|
L_028DE34C: ; // 0x28de34c
|
|
/* 028DE34C */ cpu->r[3] = cpu->r[30];
|
|
/* 028DE350 */ Gambit_fn_02837030(cpu);
|
|
/* 028DE354 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DE354 */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DE358 */ _t8 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DE358 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DE35C */ _t9 = cpu->r[1] + 0x00000010u;
|
|
/* 028DE35C */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DE360 */ cpu->lr = cpu->r[0];
|
|
/* 028DE364 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028DE364 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DE368 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DE36C */ cpu->r[3] = 0x00000000u;
|
|
/* 028DE370 */ return;
|
|
L_028DE374: ; // 0x28de374
|
|
/* 028DE374 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DE378 */ Gambit_fn_028DDA90(cpu);
|
|
/* 028DE37C */ cpu->r[3] = cpu->r[29] + 0x00000040u;
|
|
/* 028DE380 */ Gambit_fn_028BC334(cpu);
|
|
/* 028DE384 */ _t11 = cpu->r[29] + 0x00000048u;
|
|
/* 028DE384 */ cpu->r[5] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DE388 */ cpu->r[4] = cpu->r[3];
|
|
/* 028DE38C */ _t12 = cpu->r[29] + 0x0000004Cu;
|
|
/* 028DE38C */ cpu->r[6] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DE390 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DE394 */ Gambit_fn_028DDB0C(cpu);
|
|
/* 028DE398 */ _t13 = cpu->r[29] + 0x0000003Cu;
|
|
/* 028DE398 */ cpu->r[3] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DE39C */ cpu->r[4] = cpu->r[31];
|
|
/* 028DE3A0 */ Gambit_fn_028E257C(cpu);
|
|
/* 028DE3A4 */ _t14 = cpu->r[29] + 0x00000060u;
|
|
/* 028DE3A4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DE3A8 */ cpu->r[3] = cpu->r[29] + 0x00000054u;
|
|
/* 028DE3AC */ cpu->r[4] = cpu->r[31] + cpu->r[11];
|
|
/* 028DE3B0 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028DE3B4 */ _t15 = cpu->r[29] + 0x0000005Cu;
|
|
/* 028DE3B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028DE3B8 */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028DE3BC */ cpu->r[0] = 0x00000001u;
|
|
/* 028DE3C0 */ _t16 = cpu->r[29] + 0x0000005Cu;
|
|
/* 028DE3C0 */ rbrew_write32(cpu->mem, _t16, cpu->r[12]);
|
|
/* 028DE3C4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DE3C8 */ _t17 = cpu->r[31] + 0x00000028u;
|
|
/* 028DE3C8 */ rbrew_write8(cpu->mem, _t17, (uint8_t)cpu->r[0]);
|
|
/* 028DE3CC */ Gambit_fn_02837030(cpu);
|
|
/* 028DE3D0 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DE3D0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DE3D4 */ _t19 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DE3D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DE3D8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DE3DC */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028DE3DC */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DE3E0 */ cpu->lr = cpu->r[0];
|
|
/* 028DE3E4 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028DE3E4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DE3E8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DE3EC */ return;
|
|
}
|
|
|
|
// fn_028DE3F0 @ 0x28de3f0
|
|
void Gambit_fn_028DE3F0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112, _t113, _t114, _t115, _t116, _t117, _t118, _t119, _t120, _t121, _t122, _t123, _t124, _t125, _t126, _t127, _t128, _t129, _t130, _t131, _t132, _t133, _t134, _t135, _t136, _t137, _t138, _t139, _t140, _t141, _t142, _t143, _t144, _t145, _t146, _t147, _t148, _t149, _t150, _t151, _t152, _t153, _t154, _t155, _t156, _t157, _t158, _t159, _t160, _t161, _t162, _t163, _t164, _t165, _t166, _t167, _t168, _t169, _t170, _t171;
|
|
|
|
L_028DE3F0: ; // 0x28de3f0
|
|
/* 028DE3F0 */ _t0 = cpu->r[1] + 0xFFFFFF90u;
|
|
/* 028DE3F0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DE3F0 */ cpu->r[1] = _t0;
|
|
/* 028DE3F4 */ /* nop */
|
|
/* 028DE3F8 */ _t1 = cpu->r[1] + 0x00000060u;
|
|
/* 028DE3F8 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028DE3FC */ /* nop */
|
|
/* 028DE400 */ _t2 = cpu->r[1] + 0x00000068u;
|
|
/* 028DE400 */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028DE404 */ cpu->r[0] = cpu->lr;
|
|
/* 028DE408 */ _t3 = cpu->r[1] + 0x00000074u;
|
|
/* 028DE408 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DE40C */ cpu->r[29] = cpu->r[5];
|
|
/* 028DE410 */ cpu->r[27] = cpu->r[3];
|
|
/* 028DE414 */ _t4 = cpu->r[27] + 0x00000024u;
|
|
/* 028DE414 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028DE418 */ cpu->r[28] = cpu->r[4];
|
|
/* 028DE41C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DE420 */ cpu->r[23] = 0x00000000u;
|
|
/* 028DE424 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE424 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DE424 */ if (_t6) goto L_028DE780; else goto L_028DE428;
|
|
L_028DE428: ; // 0x28de428
|
|
/* 028DE428 */ cpu->r[26] = cpu->r[27] + 0x0000002Cu;
|
|
/* 028DE42C */ cpu->r[3] = cpu->r[26];
|
|
/* 028DE430 */ Gambit_fn_02836FFC(cpu);
|
|
/* 028DE434 */ _t7 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028DE434 */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DE438 */ _t8 = cpu->r[27] + 0x00000018u;
|
|
/* 028DE438 */ cpu->r[9] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DE43C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], cpu->r[9]);
|
|
/* 028DE440 */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DE440 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028DE440 */ if (_t10) goto L_028DE444; else goto L_028DE778;
|
|
L_028DE444: ; // 0x28de444
|
|
/* 028DE444 */ _t11 = cpu->r[27] + 0x00000010u;
|
|
/* 028DE444 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DE448 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028DE44C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE44C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028DE44C */ if (_t13) goto L_028DE458; else goto L_028DE450;
|
|
L_028DE450: ; // 0x28de450
|
|
/* 028DE450 */ _t14 = cpu->r[30] + 0x00000000u;
|
|
/* 028DE450 */ cpu->r[11] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DE454 */ _t15 = cpu->r[27] + 0x00000010u;
|
|
/* 028DE454 */ rbrew_write32(cpu->mem, _t15, cpu->r[11]);
|
|
L_028DE458: ; // 0x28de458
|
|
/* 028DE458 */ cpu->r[7] = 0x10140000u;
|
|
/* 028DE45C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028DE460 */ cpu->r[25] = 0x10110000u;
|
|
/* 028DE464 */ _t16 = cpu->r[7] + 0xFFFFB594u;
|
|
/* 028DE464 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028DE468 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE468 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028DE468 */ if (_t18) goto L_028DE694; else goto L_028DE46C;
|
|
L_028DE46C: ; // 0x28de46c
|
|
/* 028DE46C */ cpu->r[19] = cpu->r[30];
|
|
/* 028DE46C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[19], 0x00000000u);
|
|
/* 028DE470 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE470 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028DE470 */ if (_t20) goto L_028DE474; else goto L_028DE484;
|
|
L_028DE474: ; // 0x28de474
|
|
/* 028DE474 */ cpu->r[3] = 0x00000064u;
|
|
/* 028DE478 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DE47C */ cpu->r[19] = cpu->r[3];
|
|
/* 028DE47C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[19], 0x00000000u);
|
|
/* 028DE480 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE480 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028DE480 */ if (_t22) goto L_028DE668; else goto L_028DE484;
|
|
L_028DE484: ; // 0x28de484
|
|
/* 028DE484 */ cpu->r[20] = cpu->r[19];
|
|
/* 028DE484 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[20], 0x00000000u);
|
|
/* 028DE488 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE488 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028DE488 */ if (_t24) goto L_028DE48C; else goto L_028DE49C;
|
|
L_028DE48C: ; // 0x28de48c
|
|
/* 028DE48C */ cpu->r[3] = 0x0000003Cu;
|
|
/* 028DE490 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DE494 */ cpu->r[20] = cpu->r[3];
|
|
/* 028DE494 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[20], 0x00000000u);
|
|
/* 028DE498 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE498 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028DE498 */ if (_t26) goto L_028DE608; else goto L_028DE49C;
|
|
L_028DE49C: ; // 0x28de49c
|
|
/* 028DE49C */ cpu->r[17] = cpu->r[20];
|
|
/* 028DE49C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[17], 0x00000000u);
|
|
/* 028DE4A0 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE4A0 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028DE4A0 */ if (_t28) goto L_028DE4A4; else goto L_028DE4B4;
|
|
L_028DE4A4: ; // 0x28de4a4
|
|
/* 028DE4A4 */ cpu->r[3] = 0x0000003Cu;
|
|
/* 028DE4A8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DE4AC */ cpu->r[17] = cpu->r[3];
|
|
/* 028DE4AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[17], 0x00000000u);
|
|
/* 028DE4B0 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE4B0 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028DE4B0 */ if (_t30) goto L_028DE5FC; else goto L_028DE4B4;
|
|
L_028DE4B4: ; // 0x28de4b4
|
|
/* 028DE4B4 */ cpu->r[3] = cpu->r[17];
|
|
/* 028DE4B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DE4B8 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE4B8 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028DE4B8 */ if (_t32) goto L_028DE4BC; else goto L_028DE520;
|
|
L_028DE4BC: ; // 0x28de4bc
|
|
/* 028DE4BC */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028DE4C0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DE4C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DE4C8 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE4C8 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028DE4C8 */ if (_t34) goto L_028DE4CC; else goto L_028DE520;
|
|
L_028DE4CC: ; // 0x28de4cc
|
|
/* 028DE4CC */ cpu->r[0] = 0x10140000u;
|
|
/* 028DE4D0 */ cpu->r[18] = 0x101F0000u;
|
|
/* 028DE4D4 */ _t35 = cpu->r[25] + 0x00007399u;
|
|
/* 028DE4D4 */ cpu->r[31] = rbrew_read8(cpu->mem, _t35);
|
|
/* 028DE4D8 */ cpu->r[0] = cpu->r[0] + 0xFFFFB550u;
|
|
/* 028DE4DC */ cpu->r[18] = cpu->r[18] + 0x000066E8u;
|
|
/* 028DE4E0 */ _t36 = cpu->r[17] + 0x00000004u;
|
|
/* 028DE4E0 */ rbrew_write32(cpu->mem, _t36, cpu->r[0]);
|
|
/* 028DE4E4 */ _t37 = cpu->r[18] + 0x00000004u;
|
|
/* 028DE4E4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028DE4E8 */ _t38 = cpu->r[7] + 0x00000014u;
|
|
/* 028DE4E8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028DE4EC */ _t39 = cpu->r[17] + 0x00000000u;
|
|
/* 028DE4EC */ cpu->r[22] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028DE4F0 */ cpu->ctr = cpu->r[8];
|
|
/* 028DE4F4 */ cpu->r[16] = cpu->r[7] + 0x00000010u;
|
|
/* 028DE4F8 */ cpu->r[3] = cpu->r[18];
|
|
/* 028DE4FC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DE500 */ _t40 = cpu->r[18] + 0x00000000u;
|
|
/* 028DE500 */ cpu->r[21] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028DE504 */ cpu->r[6] = cpu->r[21];
|
|
/* 028DE508 */ _t41 = cpu->r[6] + 0x00000000u;
|
|
/* 028DE508 */ cpu->r[9] = rbrew_read8(cpu->mem, _t41);
|
|
/* 028DE50C */ cpu->r[24] = 0x00000000u;
|
|
/* 028DE510 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[31]);
|
|
/* 028DE514 */ cpu->r[7] = 0x00080000u;
|
|
/* 028DE518 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE518 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028DE518 */ if (_t43) goto L_028DE51C; else goto L_028DE590;
|
|
L_028DE51C: ; // 0x28de51c
|
|
/* 028DE51C */ goto L_028DE5C4;
|
|
L_028DE520: ; // 0x28de520
|
|
/* 028DE520 */ cpu->r[12] = cpu->r[17] + 0x0000000Cu;
|
|
/* 028DE524 */ cpu->r[5] = 0x00000030u;
|
|
/* 028DE528 */ cpu->r[0] = 0x10140000u;
|
|
/* 028DE52C */ _t44 = cpu->r[3] + 0x00000000u;
|
|
/* 028DE52C */ rbrew_write32(cpu->mem, _t44, cpu->r[12]);
|
|
/* 028DE530 */ cpu->r[0] = cpu->r[0] + 0xFFFFB518u;
|
|
/* 028DE534 */ _t45 = cpu->r[3] + 0x00000008u;
|
|
/* 028DE534 */ rbrew_write32(cpu->mem, _t45, cpu->r[5]);
|
|
/* 028DE538 */ _t46 = cpu->r[3] + 0x00000004u;
|
|
/* 028DE538 */ rbrew_write32(cpu->mem, _t46, cpu->r[0]);
|
|
/* 028DE53C */ cpu->r[0] = 0x10140000u;
|
|
/* 028DE540 */ _t47 = cpu->r[25] + 0x00007399u;
|
|
/* 028DE540 */ cpu->r[31] = rbrew_read8(cpu->mem, _t47);
|
|
/* 028DE544 */ cpu->r[0] = cpu->r[0] + 0xFFFFB550u;
|
|
/* 028DE548 */ cpu->r[18] = 0x101F0000u;
|
|
/* 028DE54C */ _t48 = cpu->r[17] + 0x0000003Bu;
|
|
/* 028DE54C */ rbrew_write8(cpu->mem, _t48, (uint8_t)cpu->r[31]);
|
|
/* 028DE550 */ cpu->r[18] = cpu->r[18] + 0x000066E8u;
|
|
/* 028DE554 */ _t49 = cpu->r[17] + 0x00000004u;
|
|
/* 028DE554 */ rbrew_write32(cpu->mem, _t49, cpu->r[0]);
|
|
/* 028DE558 */ _t50 = cpu->r[18] + 0x00000004u;
|
|
/* 028DE558 */ cpu->r[7] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028DE55C */ _t51 = cpu->r[7] + 0x00000014u;
|
|
/* 028DE55C */ cpu->r[8] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028DE560 */ _t52 = cpu->r[17] + 0x00000000u;
|
|
/* 028DE560 */ cpu->r[22] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028DE564 */ cpu->ctr = cpu->r[8];
|
|
/* 028DE568 */ cpu->r[16] = cpu->r[7] + 0x00000010u;
|
|
/* 028DE56C */ cpu->r[3] = cpu->r[18];
|
|
/* 028DE570 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DE574 */ _t53 = cpu->r[18] + 0x00000000u;
|
|
/* 028DE574 */ cpu->r[21] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028DE578 */ cpu->r[6] = cpu->r[21];
|
|
/* 028DE57C */ _t54 = cpu->r[6] + 0x00000000u;
|
|
/* 028DE57C */ cpu->r[9] = rbrew_read8(cpu->mem, _t54);
|
|
/* 028DE580 */ cpu->r[24] = 0x00000000u;
|
|
/* 028DE584 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[31]);
|
|
/* 028DE588 */ cpu->r[7] = 0x00080000u;
|
|
/* 028DE58C */ _t55 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE58C */ _t56 = _t55 & 0x00000001u;
|
|
/* 028DE58C */ if (_t56) goto L_028DE5C4; else goto L_028DE590;
|
|
L_028DE590: ; // 0x28de590
|
|
/* 028DE590 */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
/* 028DE594 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], cpu->r[7]);
|
|
/* 028DE598 */ cpu->r[6] = cpu->r[6] + 0x00000001u;
|
|
/* 028DE59C */ _t57 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DE59C */ _t58 = _t57 & 0x00000001u;
|
|
/* 028DE59C */ if (_t58) goto L_028DE5C0; else goto L_028DE5A0;
|
|
L_028DE5A0: ; // 0x28de5a0
|
|
/* 028DE5A0 */ _t59 = cpu->r[6] + 0x00000000u;
|
|
/* 028DE5A0 */ cpu->r[0] = rbrew_read8(cpu->mem, _t59);
|
|
/* 028DE5A4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[31]);
|
|
/* 028DE5A8 */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE5A8 */ _t61 = _t60 & 0x00000001u;
|
|
/* 028DE5A8 */ if (_t61) goto L_028DE5AC; else goto L_028DE590;
|
|
L_028DE5AC: ; // 0x28de5ac
|
|
/* 028DE5AC */ _t62 = cpu->r[17] + 0x00000008u;
|
|
/* 028DE5AC */ cpu->r[6] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028DE5B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], cpu->r[6]);
|
|
/* 028DE5B4 */ _t63 = cpu->r[16] + 0x00000004u;
|
|
/* 028DE5B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028DE5B8 */ _t64 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DE5B8 */ _t65 = _t64 & 0x00000001u;
|
|
/* 028DE5B8 */ if (_t65) goto L_028DE5D8; else goto L_028DE5BC;
|
|
L_028DE5BC: ; // 0x28de5bc
|
|
/* 028DE5BC */ goto L_028DE5D4;
|
|
L_028DE5C0: ; // 0x28de5c0
|
|
/* 028DE5C0 */ cpu->r[24] = 0x00000000u;
|
|
L_028DE5C4: ; // 0x28de5c4
|
|
/* 028DE5C4 */ _t66 = cpu->r[17] + 0x00000008u;
|
|
/* 028DE5C4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028DE5C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], cpu->r[6]);
|
|
/* 028DE5CC */ _t67 = cpu->r[16] + 0x00000004u;
|
|
/* 028DE5CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028DE5D0 */ _t68 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DE5D0 */ _t69 = _t68 & 0x00000001u;
|
|
/* 028DE5D0 */ if (_t69) goto L_028DE5D8; else goto L_028DE5D4;
|
|
L_028DE5D4: ; // 0x28de5d4
|
|
/* 028DE5D4 */ cpu->r[24] = cpu->r[6] + 0xFFFFFFFFu;
|
|
L_028DE5D8: ; // 0x28de5d8
|
|
/* 028DE5D8 */ cpu->ctr = cpu->r[0];
|
|
/* 028DE5DC */ cpu->r[3] = cpu->r[18];
|
|
/* 028DE5E0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DE5E4 */ cpu->r[6] = 0x00000000u;
|
|
/* 028DE5E8 */ cpu->r[5] = cpu->r[24];
|
|
/* 028DE5EC */ cpu->r[4] = cpu->r[21];
|
|
/* 028DE5F0 */ cpu->r[3] = cpu->r[22];
|
|
/* 028DE5F4 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028DE5F8 */ _t70 = cpu->r[22] + cpu->r[24];
|
|
/* 028DE5F8 */ rbrew_write8(cpu->mem, _t70, (uint8_t)cpu->r[31]);
|
|
L_028DE5FC: ; // 0x28de5fc
|
|
/* 028DE5FC */ cpu->r[0] = 0x10140000u;
|
|
/* 028DE600 */ cpu->r[0] = cpu->r[0] + 0xFFFFB568u;
|
|
/* 028DE604 */ _t71 = cpu->r[20] + 0x00000004u;
|
|
/* 028DE604 */ rbrew_write32(cpu->mem, _t71, cpu->r[0]);
|
|
L_028DE608: ; // 0x28de608
|
|
/* 028DE608 */ cpu->r[3] = cpu->r[19] + 0x00000040u;
|
|
/* 028DE60C */ _t72 = cpu->r[19] + 0x0000003Cu;
|
|
/* 028DE60C */ rbrew_write32(cpu->mem, _t72, cpu->r[23]);
|
|
/* 028DE610 */ Gambit_fn_028BBF0C(cpu);
|
|
/* 028DE614 */ cpu->r[5] = 0xFFFFFFFFu;
|
|
/* 028DE618 */ _t73 = cpu->r[19] + 0x0000004Cu;
|
|
/* 028DE618 */ rbrew_write32(cpu->mem, _t73, cpu->r[23]);
|
|
/* 028DE61C */ cpu->r[31] = cpu->r[19] + 0x00000054u;
|
|
/* 028DE61C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DE620 */ _t74 = cpu->r[19] + 0x00000050u;
|
|
/* 028DE620 */ rbrew_write_f32(cpu->mem, _t74, cpu->f[31]);
|
|
/* 028DE624 */ _t75 = cpu->r[19] + 0x00000048u;
|
|
/* 028DE624 */ rbrew_write32(cpu->mem, _t75, cpu->r[5]);
|
|
/* 028DE628 */ _t76 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE628 */ _t77 = _t76 & 0x00000001u;
|
|
/* 028DE628 */ if (_t77) goto L_028DE62C; else goto L_028DE63C;
|
|
L_028DE62C: ; // 0x28de62c
|
|
/* 028DE62C */ cpu->r[3] = 0x00000010u;
|
|
/* 028DE630 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DE634 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DE634 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DE638 */ _t78 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE638 */ _t79 = _t78 & 0x00000001u;
|
|
/* 028DE638 */ if (_t79) goto L_028DE668; else goto L_028DE63C;
|
|
L_028DE63C: ; // 0x28de63c
|
|
/* 028DE63C */ cpu->r[3] = cpu->r[31];
|
|
/* 028DE63C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DE640 */ _t80 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE640 */ _t81 = _t80 & 0x00000001u;
|
|
/* 028DE640 */ if (_t81) goto L_028DE644; else goto L_028DE654;
|
|
L_028DE644: ; // 0x28de644
|
|
/* 028DE644 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028DE648 */ Gambit_fn_02801A78(cpu);
|
|
/* 028DE64C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DE650 */ _t82 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE650 */ _t83 = _t82 & 0x00000001u;
|
|
/* 028DE650 */ if (_t83) goto L_028DE660; else goto L_028DE654;
|
|
L_028DE654: ; // 0x28de654
|
|
/* 028DE654 */ _t84 = cpu->r[3] + 0x00000004u;
|
|
/* 028DE654 */ rbrew_write32(cpu->mem, _t84, cpu->r[3]);
|
|
/* 028DE658 */ _t85 = cpu->r[3] + 0x00000008u;
|
|
/* 028DE658 */ rbrew_write32(cpu->mem, _t85, cpu->r[23]);
|
|
/* 028DE65C */ _t86 = cpu->r[3] + 0x00000000u;
|
|
/* 028DE65C */ rbrew_write32(cpu->mem, _t86, cpu->r[3]);
|
|
L_028DE660: ; // 0x28de660
|
|
/* 028DE660 */ cpu->r[6] = 0xFFFFFFFFu;
|
|
/* 028DE664 */ _t87 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028DE664 */ rbrew_write32(cpu->mem, _t87, cpu->r[6]);
|
|
L_028DE668: ; // 0x28de668
|
|
/* 028DE668 */ _t88 = cpu->r[30] + 0x00000064u;
|
|
/* 028DE668 */ rbrew_write32(cpu->mem, _t88, cpu->r[23]);
|
|
/* 028DE66C */ cpu->r[3] = cpu->r[27] + 0x00000004u;
|
|
/* 028DE670 */ cpu->r[4] = cpu->r[30] + 0x00000064u;
|
|
/* 028DE674 */ _t89 = cpu->r[30] + 0x00000068u;
|
|
/* 028DE674 */ rbrew_write32(cpu->mem, _t89, cpu->r[23]);
|
|
/* 028DE678 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028DE67C */ _t90 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028DE67C */ cpu->r[7] = rbrew_read32(cpu->mem, _t90);
|
|
/* 028DE680 */ cpu->r[7] = cpu->r[7] + 0x00000001u;
|
|
/* 028DE684 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028DE688 */ _t91 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028DE688 */ rbrew_write32(cpu->mem, _t91, cpu->r[7]);
|
|
/* 028DE68C */ _t92 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE68C */ _t93 = _t92 & 0x00000001u;
|
|
/* 028DE68C */ if (_t93) goto L_028DE690; else goto L_028DE6BC;
|
|
L_028DE690: ; // 0x28de690
|
|
/* 028DE690 */ goto L_028DE778;
|
|
L_028DE694: ; // 0x28de694
|
|
/* 028DE694 */ cpu->r[3] = cpu->r[27] + 0x00000004u;
|
|
/* 028DE698 */ cpu->r[4] = 0x00000064u;
|
|
/* 028DE69C */ cpu->r[30] = 0x00000000u;
|
|
/* 028DE6A0 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028DE6A4 */ _t94 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028DE6A4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t94);
|
|
/* 028DE6A8 */ cpu->r[7] = cpu->r[7] + 0x00000001u;
|
|
/* 028DE6AC */ cpu->r[3] = cpu->r[26];
|
|
/* 028DE6B0 */ _t95 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028DE6B0 */ rbrew_write32(cpu->mem, _t95, cpu->r[7]);
|
|
/* 028DE6B4 */ Gambit_fn_02837030(cpu);
|
|
/* 028DE6B8 */ goto L_028DE780;
|
|
L_028DE6BC: ; // 0x28de6bc
|
|
/* 028DE6BC */ cpu->r[0] = 0x0000002Cu;
|
|
/* 028DE6C0 */ cpu->r[31] = 0x101D0000u;
|
|
/* 028DE6C4 */ _t96 = cpu->r[30] + 0x00000060u;
|
|
/* 028DE6C4 */ rbrew_write32(cpu->mem, _t96, cpu->r[0]);
|
|
/* 028DE6C8 */ _t97 = cpu->r[31] + 0xFFFF9AE0u;
|
|
/* 028DE6C8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t97);
|
|
/* 028DE6C8 */ cpu->r[31] = _t97;
|
|
/* 028DE6CC */ Gambit_fn_028E4110(cpu);
|
|
/* 028DE6D0 */ cpu->r[22] = cpu->r[3];
|
|
/* 028DE6D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], 0x00000000u);
|
|
/* 028DE6D4 */ _t98 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE6D4 */ _t99 = _t98 & 0x00000001u;
|
|
/* 028DE6D4 */ if (_t99) goto L_028DE750; else goto L_028DE6D8;
|
|
L_028DE6D8: ; // 0x28de6d8
|
|
/* 028DE6D8 */ _t100 = cpu->r[31] + 0x00000000u;
|
|
/* 028DE6D8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t100);
|
|
/* 028DE6DC */ _t101 = cpu->r[9] + 0x00000044u;
|
|
/* 028DE6DC */ cpu->r[31] = rbrew_read32(cpu->mem, _t101);
|
|
/* 028DE6E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DE6E4 */ _t102 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE6E4 */ _t103 = _t102 & 0x00000001u;
|
|
/* 028DE6E4 */ if (_t103) goto L_028DE708; else goto L_028DE6E8;
|
|
L_028DE6E8: ; // 0x28de6e8
|
|
/* 028DE6E8 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DE6EC */ Gambit_fn_028BD9A0(cpu);
|
|
/* 028DE6F0 */ cpu->r[4] = cpu->r[3];
|
|
/* 028DE6F4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DE6F8 */ Gambit_fn_028E5E38(cpu);
|
|
/* 028DE6FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DE700 */ _t104 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE700 */ _t105 = _t104 & 0x00000001u;
|
|
/* 028DE700 */ if (_t105) goto L_028DE708; else goto L_028DE704;
|
|
L_028DE704: ; // 0x28de704
|
|
/* 028DE704 */ _t106 = cpu->r[22] + 0x00000074u;
|
|
/* 028DE704 */ rbrew_write32(cpu->mem, _t106, cpu->r[3]);
|
|
L_028DE708: ; // 0x28de708
|
|
/* 028DE708 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DE70C */ Gambit_fn_028BD990(cpu);
|
|
/* 028DE710 */ _t107 = cpu->r[28] + 0x00000128u;
|
|
/* 028DE710 */ cpu->r[10] = rbrew_read32(cpu->mem, _t107);
|
|
/* 028DE714 */ _t108 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028DE714 */ cpu->r[8] = rbrew_read16(cpu->mem, _t108);
|
|
/* 028DE718 */ cpu->r[4] = cpu->r[3];
|
|
/* 028DE71C */ _t109 = cpu->r[1] + 0x00000014u;
|
|
/* 028DE71C */ rbrew_write32(cpu->mem, _t109, cpu->r[10]);
|
|
/* 028DE720 */ cpu->r[0] = cpu->r[8] | 0x00000001u;
|
|
/* 028DE724 */ _t110 = cpu->r[27] + 0x00000024u;
|
|
/* 028DE724 */ cpu->r[3] = rbrew_read32(cpu->mem, _t110);
|
|
/* 028DE728 */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 028DE72C */ _t111 = cpu->r[1] + 0x00000018u;
|
|
/* 028DE72C */ rbrew_write32(cpu->mem, _t111, cpu->r[22]);
|
|
/* 028DE730 */ _t112 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DE730 */ rbrew_write16(cpu->mem, _t112, (uint16_t)cpu->r[0]);
|
|
/* 028DE734 */ Gambit_fn_028BB2E0(cpu);
|
|
/* 028DE738 */ _t113 = cpu->r[1] + 0x00000008u;
|
|
/* 028DE738 */ rbrew_write32(cpu->mem, _t113, cpu->r[3]);
|
|
/* 028DE73C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028DE740 */ _t114 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DE740 */ rbrew_write32(cpu->mem, _t114, cpu->r[4]);
|
|
/* 028DE744 */ Gambit_fn_028BBF4C(cpu);
|
|
/* 028DE748 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DE74C */ _t115 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE74C */ _t116 = _t115 & 0x00000001u;
|
|
/* 028DE74C */ if (_t116) goto L_028DE750; else goto L_028DE7A4;
|
|
L_028DE750: ; // 0x28de750
|
|
/* 028DE750 */ cpu->r[3] = cpu->r[30] + 0x00000064u;
|
|
/* 028DE754 */ Gambit_fn_02801EDC(cpu);
|
|
/* 028DE758 */ _t117 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028DE758 */ cpu->r[8] = rbrew_read32(cpu->mem, _t117);
|
|
/* 028DE75C */ cpu->r[8] = cpu->r[8] + 0xFFFFFFFFu;
|
|
/* 028DE760 */ cpu->r[3] = cpu->r[30] + 0x00000054u;
|
|
/* 028DE764 */ _t118 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028DE764 */ rbrew_write32(cpu->mem, _t118, cpu->r[8]);
|
|
/* 028DE768 */ Gambit_fn_0280236C(cpu);
|
|
/* 028DE76C */ _t119 = cpu->r[27] + 0x00000010u;
|
|
/* 028DE76C */ cpu->r[9] = rbrew_read32(cpu->mem, _t119);
|
|
/* 028DE770 */ _t120 = cpu->r[30] + 0x00000000u;
|
|
/* 028DE770 */ rbrew_write32(cpu->mem, _t120, cpu->r[9]);
|
|
/* 028DE774 */ _t121 = cpu->r[27] + 0x00000010u;
|
|
/* 028DE774 */ rbrew_write32(cpu->mem, _t121, cpu->r[30]);
|
|
L_028DE778: ; // 0x28de778
|
|
/* 028DE778 */ cpu->r[3] = cpu->r[26];
|
|
/* 028DE77C */ Gambit_fn_02837030(cpu);
|
|
L_028DE780: ; // 0x28de780
|
|
/* 028DE780 */ /* nop */
|
|
/* 028DE784 */ _t122 = cpu->r[1] + 0x00000068u;
|
|
/* 028DE784 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t122);
|
|
/* 028DE788 */ _t123 = cpu->r[1] + 0x00000060u;
|
|
/* 028DE788 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t123);
|
|
/* 028DE78C */ cpu->r[3] = 0x00000000u;
|
|
/* 028DE790 */ _t124 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DE790 */ _t125 = _t124 & 0x00000001u;
|
|
/* 028DE790 */ if (_t125) goto L_028DE794; // else: addr-0 trap, fall-through
|
|
L_028DE794: ; // 0x28de794
|
|
/* 028DE794 */ _t126 = cpu->r[1] + 0x00000074u;
|
|
/* 028DE794 */ cpu->r[0] = rbrew_read32(cpu->mem, _t126);
|
|
/* 028DE798 */ cpu->lr = cpu->r[0];
|
|
/* 028DE79C */ cpu->r[1] = cpu->r[1] + 0x00000070u;
|
|
/* 028DE7A0 */ return;
|
|
L_028DE7A4: ; // 0x28de7a4
|
|
/* 028DE7A4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DE7A8 */ Gambit_fn_028BD9A0(cpu);
|
|
/* 028DE7AC */ _t127 = cpu->r[3] + 0x00000004u;
|
|
/* 028DE7AC */ cpu->r[10] = rbrew_read32(cpu->mem, _t127);
|
|
/* 028DE7B0 */ _t128 = cpu->r[10] + 0x00000014u;
|
|
/* 028DE7B0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t128);
|
|
/* 028DE7B4 */ cpu->ctr = cpu->r[11];
|
|
/* 028DE7B8 */ _t129 = cpu->r[30] + 0x00000000u;
|
|
/* 028DE7B8 */ cpu->r[24] = rbrew_read32(cpu->mem, _t129);
|
|
/* 028DE7BC */ cpu->r[23] = cpu->r[3];
|
|
/* 028DE7C0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DE7C4 */ _t130 = cpu->r[23] + 0x00000000u;
|
|
/* 028DE7C4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t130);
|
|
/* 028DE7C8 */ _t131 = cpu->r[25] + 0x00007399u;
|
|
/* 028DE7C8 */ cpu->r[31] = rbrew_read8(cpu->mem, _t131);
|
|
/* 028DE7CC */ _t132 = cpu->r[11] + 0x00000000u;
|
|
/* 028DE7CC */ cpu->r[12] = rbrew_read8(cpu->mem, _t132);
|
|
/* 028DE7D0 */ cpu->r[0] = 0x00080000u;
|
|
/* 028DE7D4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[31]);
|
|
/* 028DE7D8 */ cpu->r[25] = 0x00000000u;
|
|
/* 028DE7DC */ _t133 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE7DC */ _t134 = _t133 & 0x00000001u;
|
|
/* 028DE7DC */ if (_t134) goto L_028DE818; else goto L_028DE7E0;
|
|
L_028DE7E0: ; // 0x28de7e0
|
|
/* 028DE7E0 */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
/* 028DE7E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], cpu->r[0]);
|
|
/* 028DE7E8 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 028DE7EC */ _t135 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028DE7EC */ _t136 = _t135 & 0x00000001u;
|
|
/* 028DE7EC */ if (_t136) goto L_028DE814; else goto L_028DE7F0;
|
|
L_028DE7F0: ; // 0x28de7f0
|
|
/* 028DE7F0 */ _t137 = cpu->r[11] + 0x00000000u;
|
|
/* 028DE7F0 */ cpu->r[5] = rbrew_read8(cpu->mem, _t137);
|
|
/* 028DE7F4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[31]);
|
|
/* 028DE7F8 */ _t138 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE7F8 */ _t139 = _t138 & 0x00000001u;
|
|
/* 028DE7F8 */ if (_t139) goto L_028DE7FC; else goto L_028DE7E0;
|
|
L_028DE7FC: ; // 0x28de7fc
|
|
/* 028DE7FC */ _t140 = cpu->r[30] + 0x00000008u;
|
|
/* 028DE7FC */ cpu->r[10] = rbrew_read32(cpu->mem, _t140);
|
|
/* 028DE800 */ _t141 = cpu->r[23] + 0x00000004u;
|
|
/* 028DE800 */ cpu->r[7] = rbrew_read32(cpu->mem, _t141);
|
|
/* 028DE804 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], cpu->r[10]);
|
|
/* 028DE808 */ _t142 = cpu->r[7] + 0x00000014u;
|
|
/* 028DE808 */ cpu->r[0] = rbrew_read32(cpu->mem, _t142);
|
|
/* 028DE80C */ _t143 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DE80C */ _t144 = _t143 & 0x00000001u;
|
|
/* 028DE80C */ if (_t144) goto L_028DE810; else goto L_028DE82C;
|
|
L_028DE810: ; // 0x28de810
|
|
/* 028DE810 */ goto L_028DE830;
|
|
L_028DE814: ; // 0x28de814
|
|
/* 028DE814 */ cpu->r[25] = 0x00000000u;
|
|
L_028DE818: ; // 0x28de818
|
|
/* 028DE818 */ _t145 = cpu->r[30] + 0x00000008u;
|
|
/* 028DE818 */ cpu->r[10] = rbrew_read32(cpu->mem, _t145);
|
|
/* 028DE81C */ _t146 = cpu->r[23] + 0x00000004u;
|
|
/* 028DE81C */ cpu->r[7] = rbrew_read32(cpu->mem, _t146);
|
|
/* 028DE820 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], cpu->r[10]);
|
|
/* 028DE824 */ _t147 = cpu->r[7] + 0x00000014u;
|
|
/* 028DE824 */ cpu->r[0] = rbrew_read32(cpu->mem, _t147);
|
|
/* 028DE828 */ _t148 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DE828 */ _t149 = _t148 & 0x00000001u;
|
|
/* 028DE828 */ if (_t149) goto L_028DE830; else goto L_028DE82C;
|
|
L_028DE82C: ; // 0x28de82c
|
|
/* 028DE82C */ cpu->r[25] = cpu->r[10] + 0xFFFFFFFFu;
|
|
L_028DE830: ; // 0x28de830
|
|
/* 028DE830 */ cpu->ctr = cpu->r[0];
|
|
/* 028DE834 */ cpu->r[3] = cpu->r[23];
|
|
/* 028DE838 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DE83C */ _t150 = cpu->r[23] + 0x00000000u;
|
|
/* 028DE83C */ cpu->r[4] = rbrew_read32(cpu->mem, _t150);
|
|
/* 028DE840 */ cpu->r[6] = 0x00000000u;
|
|
/* 028DE844 */ cpu->r[5] = cpu->r[25];
|
|
/* 028DE848 */ cpu->r[3] = cpu->r[24];
|
|
/* 028DE84C */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028DE850 */ _t151 = cpu->r[24] + cpu->r[25];
|
|
/* 028DE850 */ rbrew_write8(cpu->mem, _t151, (uint8_t)cpu->r[31]);
|
|
/* 028DE854 */ _t152 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028DE854 */ rbrew_write32(cpu->mem, _t152, cpu->r[22]);
|
|
/* 028DE858 */ _t153 = cpu->r[1] + 0x00000008u;
|
|
/* 028DE858 */ cpu->r[0] = rbrew_read32(cpu->mem, _t153);
|
|
/* 028DE85C */ _t154 = cpu->r[30] + 0x00000040u;
|
|
/* 028DE85C */ rbrew_write32(cpu->mem, _t154, cpu->r[0]);
|
|
/* 028DE860 */ _t155 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DE860 */ cpu->r[0] = rbrew_read32(cpu->mem, _t155);
|
|
/* 028DE864 */ _t156 = cpu->r[30] + 0x00000048u;
|
|
/* 028DE864 */ rbrew_write32(cpu->mem, _t156, cpu->r[29]);
|
|
/* 028DE868 */ _t157 = cpu->r[30] + 0x00000044u;
|
|
/* 028DE868 */ rbrew_write32(cpu->mem, _t157, cpu->r[0]);
|
|
/* 028DE86C */ _t158 = cpu->r[28] + 0x00000128u;
|
|
/* 028DE86C */ cpu->r[5] = rbrew_read32(cpu->mem, _t158);
|
|
/* 028DE870 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028DE874 */ _t159 = cpu->r[30] + 0x0000004Cu;
|
|
/* 028DE874 */ rbrew_write32(cpu->mem, _t159, cpu->r[5]);
|
|
/* 028DE878 */ Gambit_fn_028BC334(cpu);
|
|
/* 028DE87C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DE87C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DE880 */ _t160 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE880 */ _t161 = _t160 & 0x00000001u;
|
|
/* 028DE880 */ if (_t161) goto L_028DE90C; else goto L_028DE884;
|
|
L_028DE884: ; // 0x28de884
|
|
/* 028DE884 */ cpu->f[1] = cpu->f[31];
|
|
/* 028DE888 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DE88C */ Gambit_fn_028BE6D4(cpu);
|
|
/* 028DE890 */ cpu->f[1] = cpu->f[31];
|
|
/* 028DE894 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DE898 */ Gambit_fn_028BE758(cpu);
|
|
/* 028DE89C */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028DE8A0 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DE8A4 */ Gambit_fn_028BEE84(cpu);
|
|
/* 028DE8A8 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028DE8AC */ cpu->r[3] = cpu->r[31];
|
|
/* 028DE8B0 */ Gambit_fn_028BE7E0(cpu);
|
|
/* 028DE8B4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DE8B8 */ Gambit_fn_028BEECC(cpu);
|
|
/* 028DE8BC */ cpu->r[3] = cpu->r[31];
|
|
/* 028DE8C0 */ Gambit_fn_028BE834(cpu);
|
|
/* 028DE8C4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DE8C8 */ Gambit_fn_028BF1BC(cpu);
|
|
/* 028DE8CC */ cpu->r[3] = cpu->r[31];
|
|
/* 028DE8D0 */ Gambit_fn_028BE88C(cpu);
|
|
/* 028DE8D4 */ _t162 = cpu->r[28] + 0x00000028u;
|
|
/* 028DE8D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t162);
|
|
/* 028DE8D8 */ cpu->r[3] = cpu->r[31] + 0x00000140u;
|
|
/* 028DE8DC */ cpu->r[4] = cpu->r[28] + 0x00000180u;
|
|
/* 028DE8E0 */ _t163 = cpu->r[31] + 0x00000028u;
|
|
/* 028DE8E0 */ rbrew_write32(cpu->mem, _t163, cpu->r[0]);
|
|
/* 028DE8E4 */ Gambit_fn_028E1584(cpu);
|
|
/* 028DE8E8 */ cpu->r[3] = cpu->r[31] + 0x00000140u;
|
|
/* 028DE8EC */ cpu->r[4] = 0x00000000u;
|
|
/* 028DE8F0 */ Gambit_fn_028E1560(cpu);
|
|
/* 028DE8F4 */ _t164 = cpu->r[27] + 0x00000028u;
|
|
/* 028DE8F4 */ cpu->r[10] = rbrew_read8(cpu->mem, _t164);
|
|
/* 028DE8F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028DE8FC */ _t165 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE8FC */ _t166 = _t165 & 0x00000001u;
|
|
/* 028DE8FC */ if (_t166) goto L_028DE90C; else goto L_028DE900;
|
|
L_028DE900: ; // 0x28de900
|
|
/* 028DE900 */ cpu->r[3] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028DE904 */ cpu->r[4] = cpu->r[28] + 0x0000002Cu;
|
|
/* 028DE908 */ Gambit_fn_028BD324(cpu);
|
|
L_028DE90C: ; // 0x28de90c
|
|
/* 028DE90C */ cpu->r[3] = cpu->r[26];
|
|
/* 028DE910 */ Gambit_fn_02837030(cpu);
|
|
/* 028DE914 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DE918 */ /* nop */
|
|
/* 028DE91C */ _t167 = cpu->r[1] + 0x00000068u;
|
|
/* 028DE91C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t167);
|
|
/* 028DE920 */ _t168 = cpu->r[1] + 0x00000060u;
|
|
/* 028DE920 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t168);
|
|
/* 028DE924 */ _t169 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DE924 */ _t170 = _t169 & 0x00000001u;
|
|
/* 028DE924 */ if (_t170) goto L_028DE928; // else: addr-0 trap, fall-through
|
|
L_028DE928: ; // 0x28de928
|
|
/* 028DE928 */ _t171 = cpu->r[1] + 0x00000074u;
|
|
/* 028DE928 */ cpu->r[0] = rbrew_read32(cpu->mem, _t171);
|
|
/* 028DE92C */ cpu->lr = cpu->r[0];
|
|
/* 028DE930 */ cpu->r[1] = cpu->r[1] + 0x00000070u;
|
|
/* 028DE934 */ return;
|
|
}
|
|
|
|
// fn_028DE938 @ 0x28de938
|
|
void Gambit_fn_028DE938(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028DE938: ; // 0x28de938
|
|
/* 028DE938 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028DE938 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DE938 */ cpu->r[1] = _t0;
|
|
/* 028DE93C */ cpu->r[0] = cpu->lr;
|
|
/* 028DE940 */ /* nop */
|
|
/* 028DE944 */ cpu->r[31] = cpu->r[4];
|
|
/* 028DE948 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028DE948 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028DE94C */ cpu->r[29] = cpu->r[3];
|
|
/* 028DE950 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DE954 */ Gambit_fn_028BEFE8(cpu);
|
|
/* 028DE958 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DE95C */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE95C */ _t3 = _t2 & 0x00000001u;
|
|
/* 028DE95C */ if (_t3) goto L_028DE99C; else goto L_028DE960;
|
|
L_028DE960: ; // 0x28de960
|
|
/* 028DE960 */ cpu->r[28] = cpu->r[29] + 0x0000002Cu;
|
|
/* 028DE964 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DE968 */ cpu->r[30] = 0xFFFFFFFFu;
|
|
/* 028DE96C */ Gambit_fn_02836FFC(cpu);
|
|
/* 028DE970 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DE974 */ Gambit_fn_028BD9A0(cpu);
|
|
/* 028DE978 */ _t4 = cpu->r[31] + 0x00000128u;
|
|
/* 028DE978 */ cpu->r[5] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028DE97C */ cpu->r[4] = cpu->r[3];
|
|
/* 028DE980 */ cpu->r[6] = cpu->r[30];
|
|
/* 028DE984 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DE988 */ Gambit_fn_028DE158(cpu);
|
|
/* 028DE98C */ cpu->r[27] = cpu->r[3];
|
|
/* 028DE98C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028DE990 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DE994 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE994 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DE994 */ if (_t6) goto L_028DEA04; else goto L_028DE998;
|
|
L_028DE998: ; // 0x28de998
|
|
/* 028DE998 */ goto L_028DE9D8;
|
|
L_028DE99C: ; // 0x28de99c
|
|
/* 028DE99C */ Gambit_fn_028C2A0C(cpu);
|
|
/* 028DE9A0 */ cpu->r[28] = cpu->r[29] + 0x0000002Cu;
|
|
/* 028DE9A4 */ _t7 = cpu->r[3] + 0x00000004u;
|
|
/* 028DE9A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DE9A8 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DE9AC */ Gambit_fn_02836FFC(cpu);
|
|
/* 028DE9B0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DE9B4 */ Gambit_fn_028BD9A0(cpu);
|
|
/* 028DE9B8 */ _t8 = cpu->r[31] + 0x00000128u;
|
|
/* 028DE9B8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DE9BC */ cpu->r[4] = cpu->r[3];
|
|
/* 028DE9C0 */ cpu->r[6] = cpu->r[30];
|
|
/* 028DE9C4 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DE9C8 */ Gambit_fn_028DE158(cpu);
|
|
/* 028DE9CC */ cpu->r[27] = cpu->r[3];
|
|
/* 028DE9CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028DE9D0 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DE9D4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DE9D4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028DE9D4 */ if (_t10) goto L_028DEA04; else goto L_028DE9D8;
|
|
L_028DE9D8: ; // 0x28de9d8
|
|
/* 028DE9D8 */ cpu->r[4] = cpu->r[27];
|
|
/* 028DE9DC */ Gambit_fn_028DE310(cpu);
|
|
/* 028DE9E0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DE9E4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DE9E8 */ Gambit_fn_02837030(cpu);
|
|
/* 028DE9EC */ cpu->r[3] = cpu->r[31];
|
|
/* 028DE9F0 */ /* nop */
|
|
/* 028DE9F4 */ _t11 = cpu->r[1] + 0x00000024u;
|
|
/* 028DE9F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DE9F8 */ cpu->lr = cpu->r[0];
|
|
/* 028DE9FC */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028DEA00 */ return;
|
|
L_028DEA04: ; // 0x28dea04
|
|
/* 028DEA04 */ cpu->r[5] = cpu->r[30];
|
|
/* 028DEA08 */ cpu->r[4] = cpu->r[31];
|
|
/* 028DEA0C */ Gambit_fn_028DE3F0(cpu);
|
|
/* 028DEA10 */ cpu->r[27] = cpu->r[3];
|
|
/* 028DEA10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028DEA14 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DEA14 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028DEA14 */ if (_t13) goto L_028DEA18; else goto L_028DEA38;
|
|
L_028DEA18: ; // 0x28dea18
|
|
/* 028DEA18 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DEA1C */ Gambit_fn_02837030(cpu);
|
|
/* 028DEA20 */ /* nop */
|
|
/* 028DEA24 */ _t14 = cpu->r[1] + 0x00000024u;
|
|
/* 028DEA24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DEA28 */ cpu->lr = cpu->r[0];
|
|
/* 028DEA2C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028DEA30 */ cpu->r[3] = 0x00000000u;
|
|
/* 028DEA34 */ return;
|
|
L_028DEA38: ; // 0x28dea38
|
|
/* 028DEA38 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DEA3C */ cpu->r[4] = cpu->r[27];
|
|
/* 028DEA40 */ Gambit_fn_028DE310(cpu);
|
|
/* 028DEA44 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DEA44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DEA48 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DEA48 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028DEA48 */ if (_t16) goto L_028DEA4C; else goto L_028DEA58;
|
|
L_028DEA4C: ; // 0x28dea4c
|
|
/* 028DEA4C */ cpu->r[3] = cpu->r[29];
|
|
/* 028DEA50 */ cpu->r[4] = cpu->r[27];
|
|
/* 028DEA54 */ Gambit_fn_028DDF94(cpu);
|
|
L_028DEA58: ; // 0x28dea58
|
|
/* 028DEA58 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DEA5C */ Gambit_fn_02837030(cpu);
|
|
/* 028DEA60 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DEA64 */ /* nop */
|
|
/* 028DEA68 */ _t17 = cpu->r[1] + 0x00000024u;
|
|
/* 028DEA68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DEA6C */ cpu->lr = cpu->r[0];
|
|
/* 028DEA70 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028DEA74 */ return;
|
|
}
|
|
|
|
// fn_028DEA78 @ 0x28dea78
|
|
void Gambit_fn_028DEA78(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028DEA78: ; // 0x28dea78
|
|
/* 028DEA78 */ _t0 = cpu->r[3] + 0x00000020u;
|
|
/* 028DEA78 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028DEA7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028DEA80 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DEA80 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028DEA80 */ if (_t2) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DEA80 */ goto L_028DEA84;
|
|
L_028DEA84: ; // 0x28dea84
|
|
/* 028DEA84 */ _t3 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028DEA84 */ cpu->r[10] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028DEA88 */ cpu->r[9] = 0x00000000u;
|
|
/* 028DEA8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], cpu->r[10]);
|
|
/* 028DEA90 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DEA90 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DEA90 */ _t6 = _t5 ^ 0x00000001u;
|
|
/* 028DEA90 */ if (_t6) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DEA90 */ goto L_028DEA94;
|
|
L_028DEA94: ; // 0x28dea94
|
|
/* 028DEA94 */ cpu->r[7] = 0x00000000u;
|
|
/* 028DEA98 */ cpu->r[8] = cpu->r[7];
|
|
L_028DEA9C: ; // 0x28dea9c
|
|
/* 028DEA9C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[10]);
|
|
/* 028DEAA0 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DEAA0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028DEAA0 */ if (_t8) goto L_028DEAA4; else goto L_028DEAB4;
|
|
L_028DEAA4: ; // 0x28deaa4
|
|
/* 028DEAA4 */ cpu->r[0] = cpu->r[12] + cpu->r[7];
|
|
/* 028DEAA8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[0]);
|
|
/* 028DEAAC */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DEAAC */ _t10 = _t9 & 0x00000001u;
|
|
/* 028DEAAC */ if (_t10) goto L_028DEAB0; else goto L_028DEAD0;
|
|
L_028DEAB0: ; // 0x28deab0
|
|
/* 028DEAB0 */ goto L_028DEABC;
|
|
L_028DEAB4: ; // 0x28deab4
|
|
/* 028DEAB4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[12]);
|
|
/* 028DEAB8 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DEAB8 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028DEAB8 */ if (_t12) goto L_028DEABC; else goto L_028DEAD0;
|
|
L_028DEABC: ; // 0x28deabc
|
|
/* 028DEABC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[10]);
|
|
/* 028DEAC0 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DEAC0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028DEAC0 */ if (_t14) goto L_028DEAC4; else goto L_028DEAC8;
|
|
L_028DEAC4: ; // 0x28deac4
|
|
/* 028DEAC4 */ cpu->r[12] = cpu->r[12] + cpu->r[7];
|
|
L_028DEAC8: ; // 0x28deac8
|
|
/* 028DEAC8 */ _t15 = cpu->r[12] + 0x00000029u;
|
|
/* 028DEAC8 */ rbrew_write8(cpu->mem, _t15, (uint8_t)cpu->r[8]);
|
|
/* 028DEACC */ return;
|
|
L_028DEAD0: ; // 0x28dead0
|
|
/* 028DEAD0 */ cpu->r[9] = cpu->r[9] + 0x00000001u;
|
|
/* 028DEAD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], cpu->r[10]);
|
|
/* 028DEAD8 */ cpu->r[7] = cpu->r[7] + 0x00000034u;
|
|
/* 028DEADC */ _t16 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DEADC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DEADC */ if (_t17) goto L_028DEA9C; else goto L_028DEAE0;
|
|
L_028DEAE0: ; // 0x28deae0
|
|
/* 028DEAE0 */ return;
|
|
}
|
|
|
|
// fn_028DEAE4 @ 0x28deae4
|
|
void Gambit_fn_028DEAE4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23;
|
|
|
|
L_028DEAE4: ; // 0x28deae4
|
|
/* 028DEAE4 */ cpu->r[0] = cpu->lr;
|
|
/* 028DEAE8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DEAE8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DEAE8 */ cpu->r[1] = _t0;
|
|
/* 028DEAEC */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028DEAEC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DEAF0 */ cpu->r[30] = cpu->r[4];
|
|
/* 028DEAF4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DEAF4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DEAF8 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028DEAF8 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028DEAFC */ cpu->r[31] = cpu->r[5];
|
|
/* 028DEAFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DEB00 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DEB00 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028DEB04 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DEB04 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DEB08 */ cpu->r[29] = cpu->r[3];
|
|
/* 028DEB0C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DEB0C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DEB0C */ if (_t7) goto L_028DEB90; else goto L_028DEB10;
|
|
L_028DEB10: ; // 0x28deb10
|
|
/* 028DEB10 */ cpu->r[28] = cpu->r[29] + 0x0000002Cu;
|
|
/* 028DEB14 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DEB18 */ Gambit_fn_02836FFC(cpu);
|
|
/* 028DEB1C */ _t8 = cpu->r[31] + 0x00000024u;
|
|
/* 028DEB1C */ cpu->r[5] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DEB20 */ cpu->r[4] = cpu->r[30];
|
|
/* 028DEB24 */ _t9 = cpu->r[31] + 0x00000020u;
|
|
/* 028DEB24 */ cpu->r[6] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DEB28 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DEB2C */ Gambit_fn_028DE158(cpu);
|
|
/* 028DEB30 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DEB30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028DEB34 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DEB34 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DEB34 */ if (_t11) goto L_028DEB74; else goto L_028DEB38;
|
|
L_028DEB38: ; // 0x28deb38
|
|
/* 028DEB38 */ _t12 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028DEB38 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DEB3C */ cpu->r[4] = cpu->r[31];
|
|
/* 028DEB40 */ Gambit_fn_028E263C(cpu);
|
|
/* 028DEB44 */ _t13 = cpu->r[30] + 0x00000060u;
|
|
/* 028DEB44 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DEB48 */ cpu->r[3] = cpu->r[30] + 0x00000054u;
|
|
/* 028DEB4C */ cpu->r[4] = cpu->r[31] + cpu->r[0];
|
|
/* 028DEB50 */ Gambit_fn_02802290(cpu);
|
|
/* 028DEB54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DEB58 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DEB58 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028DEB58 */ if (_t15) goto L_028DEB74; else goto L_028DEB5C;
|
|
L_028DEB5C: ; // 0x28deb5c
|
|
/* 028DEB5C */ _t16 = cpu->r[30] + 0x00000060u;
|
|
/* 028DEB5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DEB60 */ cpu->r[3] = cpu->r[31] + cpu->r[0];
|
|
/* 028DEB64 */ Gambit_fn_02801EDC(cpu);
|
|
/* 028DEB68 */ _t17 = cpu->r[30] + 0x0000005Cu;
|
|
/* 028DEB68 */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DEB6C */ cpu->r[12] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028DEB70 */ _t18 = cpu->r[30] + 0x0000005Cu;
|
|
/* 028DEB70 */ rbrew_write32(cpu->mem, _t18, cpu->r[12]);
|
|
L_028DEB74: ; // 0x28deb74
|
|
/* 028DEB74 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DEB78 */ Gambit_fn_028DDA90(cpu);
|
|
/* 028DEB7C */ cpu->r[3] = cpu->r[29];
|
|
/* 028DEB80 */ cpu->r[4] = cpu->r[31];
|
|
/* 028DEB84 */ Gambit_fn_028DEA78(cpu);
|
|
/* 028DEB88 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DEB8C */ Gambit_fn_02837030(cpu);
|
|
L_028DEB90: ; // 0x28deb90
|
|
/* 028DEB90 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028DEB90 */ cpu->r[28] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DEB94 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DEB94 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DEB98 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DEB98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DEB9C */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028DEB9C */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DEBA0 */ cpu->lr = cpu->r[0];
|
|
/* 028DEBA4 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028DEBA4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028DEBA8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DEBAC */ return;
|
|
}
|
|
|
|
// fn_028DEAE8 @ 0x28deae8
|
|
void Gambit_fn_028DEAE8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23;
|
|
|
|
L_028DEAE8: ; // 0x28deae8
|
|
/* 028DEAE8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028DEAE8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DEAE8 */ cpu->r[1] = _t0;
|
|
/* 028DEAEC */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028DEAEC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028DEAF0 */ cpu->r[30] = cpu->r[4];
|
|
/* 028DEAF4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DEAF4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DEAF8 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028DEAF8 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028DEAFC */ cpu->r[31] = cpu->r[5];
|
|
/* 028DEAFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028DEB00 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DEB00 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028DEB04 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DEB04 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028DEB08 */ cpu->r[29] = cpu->r[3];
|
|
/* 028DEB0C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DEB0C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028DEB0C */ if (_t7) goto L_028DEB90; else goto L_028DEB10;
|
|
L_028DEB10: ; // 0x28deb10
|
|
/* 028DEB10 */ cpu->r[28] = cpu->r[29] + 0x0000002Cu;
|
|
/* 028DEB14 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DEB18 */ Gambit_fn_02836FFC(cpu);
|
|
/* 028DEB1C */ _t8 = cpu->r[31] + 0x00000024u;
|
|
/* 028DEB1C */ cpu->r[5] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DEB20 */ cpu->r[4] = cpu->r[30];
|
|
/* 028DEB24 */ _t9 = cpu->r[31] + 0x00000020u;
|
|
/* 028DEB24 */ cpu->r[6] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DEB28 */ cpu->r[3] = cpu->r[29];
|
|
/* 028DEB2C */ Gambit_fn_028DE158(cpu);
|
|
/* 028DEB30 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DEB30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028DEB34 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DEB34 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DEB34 */ if (_t11) goto L_028DEB74; else goto L_028DEB38;
|
|
L_028DEB38: ; // 0x28deb38
|
|
/* 028DEB38 */ _t12 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028DEB38 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DEB3C */ cpu->r[4] = cpu->r[31];
|
|
/* 028DEB40 */ Gambit_fn_028E263C(cpu);
|
|
/* 028DEB44 */ _t13 = cpu->r[30] + 0x00000060u;
|
|
/* 028DEB44 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DEB48 */ cpu->r[3] = cpu->r[30] + 0x00000054u;
|
|
/* 028DEB4C */ cpu->r[4] = cpu->r[31] + cpu->r[0];
|
|
/* 028DEB50 */ Gambit_fn_02802290(cpu);
|
|
/* 028DEB54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DEB58 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DEB58 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028DEB58 */ if (_t15) goto L_028DEB74; else goto L_028DEB5C;
|
|
L_028DEB5C: ; // 0x28deb5c
|
|
/* 028DEB5C */ _t16 = cpu->r[30] + 0x00000060u;
|
|
/* 028DEB5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DEB60 */ cpu->r[3] = cpu->r[31] + cpu->r[0];
|
|
/* 028DEB64 */ Gambit_fn_02801EDC(cpu);
|
|
/* 028DEB68 */ _t17 = cpu->r[30] + 0x0000005Cu;
|
|
/* 028DEB68 */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DEB6C */ cpu->r[12] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028DEB70 */ _t18 = cpu->r[30] + 0x0000005Cu;
|
|
/* 028DEB70 */ rbrew_write32(cpu->mem, _t18, cpu->r[12]);
|
|
L_028DEB74: ; // 0x28deb74
|
|
/* 028DEB74 */ cpu->r[3] = cpu->r[31];
|
|
/* 028DEB78 */ Gambit_fn_028DDA90(cpu);
|
|
/* 028DEB7C */ cpu->r[3] = cpu->r[29];
|
|
/* 028DEB80 */ cpu->r[4] = cpu->r[31];
|
|
/* 028DEB84 */ Gambit_fn_028DEA78(cpu);
|
|
/* 028DEB88 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DEB8C */ Gambit_fn_02837030(cpu);
|
|
L_028DEB90: ; // 0x28deb90
|
|
/* 028DEB90 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028DEB90 */ cpu->r[28] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028DEB94 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DEB94 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DEB98 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028DEB98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DEB9C */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028DEB9C */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DEBA0 */ cpu->lr = cpu->r[0];
|
|
/* 028DEBA4 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028DEBA4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028DEBA8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028DEBAC */ return;
|
|
}
|
|
|
|
// fn_028DEBB0 @ 0x28debb0
|
|
void Gambit_fn_028DEBB0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028DEBB0: ; // 0x28debb0
|
|
/* 028DEBB0 */ cpu->r[0] = cpu->lr;
|
|
/* 028DEBB4 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028DEBB4 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028DEBB8 */ _t1 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DEBB8 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028DEBB8 */ cpu->r[1] = _t1;
|
|
/* 028DEBBC */ Gambit_fn_028DE158(cpu);
|
|
/* 028DEBC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DEBC4 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DEBC4 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028DEBC4 */ if (_t3) goto L_028DEBF0; else goto L_028DEBC8;
|
|
L_028DEBC8: ; // 0x28debc8
|
|
/* 028DEBC8 */ _t4 = cpu->r[3] + 0x00000040u;
|
|
/* 028DEBC8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028DEBCC */ _t5 = cpu->r[1] + 0x00000008u;
|
|
/* 028DEBCC */ rbrew_write32(cpu->mem, _t5, cpu->r[10]);
|
|
/* 028DEBD0 */ _t6 = cpu->r[3] + 0x00000044u;
|
|
/* 028DEBD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DEBD4 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DEBD4 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028DEBD8 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028DEBD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DEBDC */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028DEBDC */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DEBE0 */ cpu->lr = cpu->r[0];
|
|
/* 028DEBE4 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DEBE4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DEBE8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DEBEC */ return;
|
|
L_028DEBF0: ; // 0x28debf0
|
|
/* 028DEBF0 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028DEBF4 */ cpu->r[12] = cpu->r[12] + 0x00006FD0u;
|
|
/* 028DEBF8 */ _t11 = cpu->r[12] + 0x00000004u;
|
|
/* 028DEBF8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DEBFC */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DEBFC */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 028DEC00 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028DEC00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DEC04 */ _t14 = cpu->r[12] + 0x00000000u;
|
|
/* 028DEC04 */ cpu->r[11] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DEC08 */ cpu->lr = cpu->r[0];
|
|
/* 028DEC0C */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028DEC0C */ rbrew_write32(cpu->mem, _t15, cpu->r[11]);
|
|
/* 028DEC10 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DEC10 */ cpu->r[4] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DEC14 */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 028DEC14 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DEC18 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DEC1C */ return;
|
|
}
|
|
|
|
// fn_028DEBB8 @ 0x28debb8
|
|
void Gambit_fn_028DEBB8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_028DEBB8: ; // 0x28debb8
|
|
/* 028DEBB8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DEBB8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DEBB8 */ cpu->r[1] = _t0;
|
|
/* 028DEBBC */ Gambit_fn_028DE158(cpu);
|
|
/* 028DEBC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DEBC4 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DEBC4 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028DEBC4 */ if (_t2) goto L_028DEBF0; else goto L_028DEBC8;
|
|
L_028DEBC8: ; // 0x28debc8
|
|
/* 028DEBC8 */ _t3 = cpu->r[3] + 0x00000040u;
|
|
/* 028DEBC8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028DEBCC */ _t4 = cpu->r[1] + 0x00000008u;
|
|
/* 028DEBCC */ rbrew_write32(cpu->mem, _t4, cpu->r[10]);
|
|
/* 028DEBD0 */ _t5 = cpu->r[3] + 0x00000044u;
|
|
/* 028DEBD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028DEBD4 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DEBD4 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028DEBD8 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 028DEBD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DEBDC */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028DEBDC */ cpu->r[3] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DEBE0 */ cpu->lr = cpu->r[0];
|
|
/* 028DEBE4 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DEBE4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DEBE8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DEBEC */ return;
|
|
L_028DEBF0: ; // 0x28debf0
|
|
/* 028DEBF0 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028DEBF4 */ cpu->r[12] = cpu->r[12] + 0x00006FD0u;
|
|
/* 028DEBF8 */ _t10 = cpu->r[12] + 0x00000004u;
|
|
/* 028DEBF8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DEBFC */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DEBFC */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028DEC00 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028DEC00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DEC04 */ _t13 = cpu->r[12] + 0x00000000u;
|
|
/* 028DEC04 */ cpu->r[11] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DEC08 */ cpu->lr = cpu->r[0];
|
|
/* 028DEC0C */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 028DEC0C */ rbrew_write32(cpu->mem, _t14, cpu->r[11]);
|
|
/* 028DEC10 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DEC10 */ cpu->r[4] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028DEC14 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028DEC14 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DEC18 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DEC1C */ return;
|
|
}
|
|
|
|
// fn_028DEC20 @ 0x28dec20
|
|
void Gambit_fn_028DEC20(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028DEC20: ; // 0x28dec20
|
|
/* 028DEC20 */ cpu->r[0] = cpu->lr;
|
|
/* 028DEC24 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028DEC24 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DEC24 */ cpu->r[1] = _t0;
|
|
/* 028DEC28 */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028DEC28 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028DEC2C */ /* nop */
|
|
/* 028DEC30 */ _t2 = cpu->r[1] + 0x00000020u;
|
|
/* 028DEC30 */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028DEC34 */ cpu->f[31] = cpu->f[1];
|
|
/* 028DEC38 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DEC38 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028DEC3C */ cpu->r[31] = cpu->r[6];
|
|
/* 028DEC40 */ cpu->r[6] = cpu->r[7];
|
|
/* 028DEC44 */ _t4 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DEC44 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DEC48 */ Gambit_fn_028DEBB0(cpu);
|
|
/* 028DEC4C */ cpu->f[1] = cpu->f[31];
|
|
/* 028DEC50 */ _t5 = cpu->r[1] + 0x00000008u;
|
|
/* 028DEC50 */ rbrew_write32(cpu->mem, _t5, cpu->r[3]);
|
|
/* 028DEC54 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028DEC58 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DEC58 */ rbrew_write32(cpu->mem, _t6, cpu->r[4]);
|
|
/* 028DEC5C */ cpu->r[4] = cpu->r[31];
|
|
/* 028DEC60 */ Gambit_fn_028BBFFC(cpu);
|
|
/* 028DEC64 */ _t7 = cpu->r[1] + 0x00000020u;
|
|
/* 028DEC64 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028DEC68 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028DEC68 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DEC6C */ _t9 = cpu->r[1] + 0x00000018u;
|
|
/* 028DEC6C */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t9);
|
|
/* 028DEC70 */ _t10 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DEC70 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DEC70 */ if (_t11) goto L_028DEC74; // else: addr-0 trap, fall-through
|
|
L_028DEC74: ; // 0x28dec74
|
|
/* 028DEC74 */ _t12 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DEC74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DEC78 */ cpu->lr = cpu->r[0];
|
|
/* 028DEC7C */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028DEC80 */ return;
|
|
}
|
|
|
|
// fn_028DEC24 @ 0x28dec24
|
|
void Gambit_fn_028DEC24(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028DEC24: ; // 0x28dec24
|
|
/* 028DEC24 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028DEC24 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DEC24 */ cpu->r[1] = _t0;
|
|
/* 028DEC28 */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028DEC28 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028DEC2C */ /* nop */
|
|
/* 028DEC30 */ _t2 = cpu->r[1] + 0x00000020u;
|
|
/* 028DEC30 */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028DEC34 */ cpu->f[31] = cpu->f[1];
|
|
/* 028DEC38 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DEC38 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028DEC3C */ cpu->r[31] = cpu->r[6];
|
|
/* 028DEC40 */ cpu->r[6] = cpu->r[7];
|
|
/* 028DEC44 */ _t4 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DEC44 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028DEC48 */ Gambit_fn_028DEBB0(cpu);
|
|
/* 028DEC4C */ cpu->f[1] = cpu->f[31];
|
|
/* 028DEC50 */ _t5 = cpu->r[1] + 0x00000008u;
|
|
/* 028DEC50 */ rbrew_write32(cpu->mem, _t5, cpu->r[3]);
|
|
/* 028DEC54 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028DEC58 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DEC58 */ rbrew_write32(cpu->mem, _t6, cpu->r[4]);
|
|
/* 028DEC5C */ cpu->r[4] = cpu->r[31];
|
|
/* 028DEC60 */ Gambit_fn_028BBFFC(cpu);
|
|
/* 028DEC64 */ _t7 = cpu->r[1] + 0x00000020u;
|
|
/* 028DEC64 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028DEC68 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028DEC68 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DEC6C */ _t9 = cpu->r[1] + 0x00000018u;
|
|
/* 028DEC6C */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t9);
|
|
/* 028DEC70 */ _t10 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DEC70 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028DEC70 */ if (_t11) goto L_028DEC74; // else: addr-0 trap, fall-through
|
|
L_028DEC74: ; // 0x28dec74
|
|
/* 028DEC74 */ _t12 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DEC74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DEC78 */ cpu->lr = cpu->r[0];
|
|
/* 028DEC7C */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028DEC80 */ return;
|
|
}
|
|
|
|
// fn_028DEC84 @ 0x28dec84
|
|
void Gambit_fn_028DEC84(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23;
|
|
|
|
L_028DEC84: ; // 0x28dec84
|
|
/* 028DEC84 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028DEC84 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DEC84 */ cpu->r[1] = _t0;
|
|
/* 028DEC88 */ cpu->r[0] = cpu->lr;
|
|
/* 028DEC8C */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028DEC8C */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028DEC90 */ /* nop */
|
|
/* 028DEC94 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DEC94 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028DEC98 */ _t3 = cpu->r[1] + 0x00000020u;
|
|
/* 028DEC98 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[31]);
|
|
/* 028DEC9C */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028DEC9C */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028DECA0 */ cpu->f[31] = cpu->f[1];
|
|
/* 028DECA4 */ _t5 = cpu->r[1] + 0x00000008u;
|
|
/* 028DECA4 */ rbrew_write32(cpu->mem, _t5, cpu->r[28]);
|
|
/* 028DECA8 */ cpu->r[31] = cpu->r[4];
|
|
/* 028DECAC */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DECAC */ rbrew_write32(cpu->mem, _t6, cpu->r[29]);
|
|
/* 028DECB0 */ _t7 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DECB0 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028DECB4 */ cpu->r[29] = cpu->r[5];
|
|
/* 028DECB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028DECB8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028DECBC */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DECBC */ _t9 = _t8 & 0x00000001u;
|
|
/* 028DECBC */ if (_t9) goto L_028DECF4; else goto L_028DECC0;
|
|
L_028DECC0: ; // 0x28decc0
|
|
/* 028DECC0 */ cpu->r[28] = cpu->r[30] + 0x0000002Cu;
|
|
/* 028DECC4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028DECC8 */ Gambit_fn_02836FFC(cpu);
|
|
/* 028DECCC */ _t10 = cpu->r[29] + 0x00000024u;
|
|
/* 028DECCC */ cpu->r[5] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DECD0 */ cpu->r[4] = cpu->r[31];
|
|
/* 028DECD4 */ _t11 = cpu->r[29] + 0x00000020u;
|
|
/* 028DECD4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DECD8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028DECDC */ Gambit_fn_028DE158(cpu);
|
|
/* 028DECE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DECE4 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DECE4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028DECE4 */ if (_t13) goto L_028DECEC; else goto L_028DECE8;
|
|
L_028DECE8: ; // 0x28dece8
|
|
/* 028DECE8 */ _t14 = cpu->r[3] + 0x00000050u;
|
|
/* 028DECE8 */ rbrew_write_f32(cpu->mem, _t14, cpu->f[31]);
|
|
L_028DECEC: ; // 0x28decec
|
|
/* 028DECEC */ cpu->r[3] = cpu->r[28];
|
|
/* 028DECF0 */ Gambit_fn_02837030(cpu);
|
|
L_028DECF4: ; // 0x28decf4
|
|
/* 028DECF4 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028DECF4 */ cpu->r[28] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028DECF8 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DECF8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028DECFC */ _t17 = cpu->r[1] + 0x00000020u;
|
|
/* 028DECFC */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028DED00 */ _t18 = cpu->r[1] + 0x00000010u;
|
|
/* 028DED00 */ cpu->r[30] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028DED04 */ _t19 = cpu->r[1] + 0x00000018u;
|
|
/* 028DED04 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t19);
|
|
/* 028DED08 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028DED08 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028DED0C */ _t21 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028DED0C */ _t22 = _t21 & 0x00000001u;
|
|
/* 028DED0C */ if (_t22) goto L_028DED10; // else: addr-0 trap, fall-through
|
|
L_028DED10: ; // 0x28ded10
|
|
/* 028DED10 */ _t23 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028DED10 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028DED14 */ cpu->lr = cpu->r[0];
|
|
/* 028DED18 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028DED1C */ return;
|
|
}
|
|
|
|
// fn_028DED20 @ 0x28ded20
|
|
void Gambit_fn_028DED20(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028DED20: ; // 0x28ded20
|
|
/* 028DED20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DED24 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DED24 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DED24 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DED24 */ goto L_028DED28;
|
|
L_028DED28: ; // 0x28ded28
|
|
/* 028DED28 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DED28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DED2C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DED2C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DED2C */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DED2C */ goto L_028DED30;
|
|
L_028DED30: ; // 0x28ded30
|
|
/* 028DED30 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028DED34 @ 0x28ded34
|
|
void Gambit_fn_028DED34(CPUState* cpu) {
|
|
L_028DED34: ; // 0x28ded34
|
|
/* 028DED34 */ return;
|
|
}
|
|
|
|
// fn_028DED38 @ 0x28ded38
|
|
void Gambit_fn_028DED38(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028DED38: ; // 0x28ded38
|
|
/* 028DED38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DED3C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DED3C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DED3C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DED3C */ goto L_028DED40;
|
|
L_028DED40: ; // 0x28ded40
|
|
/* 028DED40 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DED40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DED44 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DED44 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DED44 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DED44 */ goto L_028DED48;
|
|
L_028DED48: ; // 0x28ded48
|
|
/* 028DED48 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028DED4C @ 0x28ded4c
|
|
void Gambit_fn_028DED4C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028DED4C: ; // 0x28ded4c
|
|
/* 028DED4C */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028DED4C */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028DED50 */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 028DED50 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028DED54 */ cpu->r[12] = cpu->r[11] + cpu->r[12];
|
|
/* 028DED58 */ cpu->r[11] = 0x10110000u;
|
|
/* 028DED5C */ _t2 = cpu->r[11] + 0x00007399u;
|
|
/* 028DED5C */ cpu->r[0] = rbrew_read8(cpu->mem, _t2);
|
|
/* 028DED60 */ _t3 = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028DED60 */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[0]);
|
|
/* 028DED64 */ return;
|
|
}
|
|
|
|
// fn_028DED68 @ 0x28ded68
|
|
void Gambit_fn_028DED68(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028DED68: ; // 0x28ded68
|
|
/* 028DED68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DED6C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DED6C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DED6C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DED6C */ goto L_028DED70;
|
|
L_028DED70: ; // 0x28ded70
|
|
/* 028DED70 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DED70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DED74 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DED74 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DED74 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DED74 */ goto L_028DED78;
|
|
L_028DED78: ; // 0x28ded78
|
|
/* 028DED78 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028DED7C @ 0x28ded7c
|
|
void Gambit_fn_028DED7C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19;
|
|
|
|
L_02801B30: ; // 0x2801b30
|
|
/* 02801B30 */ cpu->r[0] = cpu->lr;
|
|
/* 02801B34 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02801B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02801B34 */ cpu->r[1] = _t0;
|
|
/* 02801B38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02801B3C */ cpu->r[31] = cpu->r[3];
|
|
/* 02801B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02801B44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02801B48 */ _t3 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02801B48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02801B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02801B50 */ if (_t5) goto L_02801B54; else goto L_02801B70;
|
|
L_02801B54: ; // 0x2801b54
|
|
/* 02801B54 */ cpu->r[3] = cpu->r[31];
|
|
/* 02801B58 */ Gambit_fn_02801B20(cpu);
|
|
/* 02801B5C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02801B60 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801B60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02801B64 */ cpu->lr = cpu->r[0];
|
|
/* 02801B68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801B6C */ return;
|
|
L_02801B70: ; // 0x2801b70
|
|
/* 02801B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02801B74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02801B74 */ if (_t9) goto L_02801B9C; else goto L_02801B78;
|
|
L_02801B78: ; // 0x2801b78
|
|
/* 02801B78 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B7C */ Gambit_fn_02826B90(cpu);
|
|
/* 02801B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02801B84 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02801B84 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02801B84 */ if (_t11) goto L_02801B9C; else goto L_02801B88;
|
|
L_02801B88: ; // 0x2801b88
|
|
/* 02801B88 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02801B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02801B8C */ _t13 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02801B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02801B90 */ cpu->ctr = cpu->r[0];
|
|
/* 02801B94 */ cpu->r[4] = cpu->r[31];
|
|
/* 02801B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02801B9C: ; // 0x2801b9c
|
|
/* 02801B9C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02801B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02801BA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02801BA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02801BA4 */ cpu->lr = cpu->r[0];
|
|
/* 02801BA8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02801BAC */ return;
|
|
L_02801BB0: ; // 0x2801bb0
|
|
/* 02801BB0 */ goto L_02801B30;
|
|
L_028DED7C: ; // 0x28ded7c
|
|
/* 028DED7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DED80 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DED80 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028DED80 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DED80 */ goto L_028DED84;
|
|
L_028DED84: ; // 0x28ded84
|
|
/* 028DED84 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028DED84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DED88 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DED88 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DED88 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028DED88 */ goto L_028DED8C;
|
|
L_028DED8C: ; // 0x28ded8c
|
|
/* 028DED8C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028DED90 @ 0x28ded90
|
|
void Gambit_fn_028DED90(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028DED90: ; // 0x28ded90
|
|
/* 028DED90 */ cpu->r[0] = cpu->lr;
|
|
/* 028DED94 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DED94 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DED94 */ cpu->r[1] = _t0;
|
|
/* 028DED98 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DED98 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DED9C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DEDA0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DEDA0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DEDA4 */ _t3 = cpu->r[31] + 0x00000024u;
|
|
/* 028DEDA4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028DEDA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028DEDAC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DEDAC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DEDAC */ if (_t5) goto L_028DEDC4; else goto L_028DEDB0;
|
|
L_028DEDB0: ; // 0x28dedb0
|
|
/* 028DEDB0 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028DEDB4 */ _t6 = cpu->r[3] + 0xFFFF9AC4u;
|
|
/* 028DEDB4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DEDB8 */ Gambit_fn_028DAF88(cpu);
|
|
/* 028DEDBC */ cpu->r[0] = 0x00000000u;
|
|
/* 028DEDC0 */ _t7 = cpu->r[31] + 0x00000024u;
|
|
/* 028DEDC0 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
L_028DEDC4: ; // 0x28dedc4
|
|
/* 028DEDC4 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028DEDC4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DEDC8 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DEDC8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DEDCC */ cpu->lr = cpu->r[0];
|
|
/* 028DEDD0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DEDD4 */ return;
|
|
}
|
|
|
|
// fn_028DED94 @ 0x28ded94
|
|
void Gambit_fn_028DED94(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028DED94: ; // 0x28ded94
|
|
/* 028DED94 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DED94 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DED94 */ cpu->r[1] = _t0;
|
|
/* 028DED98 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DED98 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DED9C */ cpu->r[31] = cpu->r[3];
|
|
/* 028DEDA0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028DEDA0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028DEDA4 */ _t3 = cpu->r[31] + 0x00000024u;
|
|
/* 028DEDA4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028DEDA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028DEDAC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DEDAC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028DEDAC */ if (_t5) goto L_028DEDC4; else goto L_028DEDB0;
|
|
L_028DEDB0: ; // 0x28dedb0
|
|
/* 028DEDB0 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028DEDB4 */ _t6 = cpu->r[3] + 0xFFFF9AC4u;
|
|
/* 028DEDB4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028DEDB8 */ Gambit_fn_028DAF88(cpu);
|
|
/* 028DEDBC */ cpu->r[0] = 0x00000000u;
|
|
/* 028DEDC0 */ _t7 = cpu->r[31] + 0x00000024u;
|
|
/* 028DEDC0 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
L_028DEDC4: ; // 0x28dedc4
|
|
/* 028DEDC4 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028DEDC4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028DEDC8 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DEDC8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028DEDCC */ cpu->lr = cpu->r[0];
|
|
/* 028DEDD0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DEDD4 */ return;
|
|
}
|
|
|
|
// fn_028DEDD8 @ 0x28dedd8
|
|
void Gambit_fn_028DEDD8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23;
|
|
|
|
L_028DEDD8: ; // 0x28dedd8
|
|
/* 028DEDD8 */ cpu->r[0] = cpu->lr;
|
|
/* 028DEDDC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028DEDDC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028DEDDC */ cpu->r[1] = _t0;
|
|
/* 028DEDE0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DEDE0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028DEDE4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028DEDE4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028DEDE8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028DEDEC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028DEDEC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028DEDF0 */ _t4 = cpu->r[31] + 0x00000008u;
|
|
/* 028DEDF0 */ cpu->r[12] = rbrew_read8(cpu->mem, _t4);
|
|
/* 028DEDF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028DEDF8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DEDF8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028DEDF8 */ if (_t6) goto L_028DEE5C; else goto L_028DEDFC;
|
|
L_028DEDFC: ; // 0x28dedfc
|
|
/* 028DEDFC */ cpu->r[3] = cpu->r[31];
|
|
/* 028DEE00 */ Gambit_fn_028DED90(cpu);
|
|
/* 028DEE04 */ _t7 = cpu->r[31] + 0x00000040u;
|
|
/* 028DEE04 */ cpu->r[4] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028DEE08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028DEE0C */ cpu->r[30] = 0x00000000u;
|
|
/* 028DEE10 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DEE10 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028DEE10 */ if (_t9) goto L_028DEE44; else goto L_028DEE14;
|
|
L_028DEE14: ; // 0x28dee14
|
|
/* 028DEE14 */ _t10 = cpu->r[31] + 0x0000003Cu;
|
|
/* 028DEE14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028DEE18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028DEE1C */ cpu->r[3] = 0x101D0000u;
|
|
/* 028DEE20 */ _t11 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028DEE20 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028DEE24 */ Gambit_fn_02826B90(cpu);
|
|
/* 028DEE28 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028DEE28 */ cpu->r[10] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028DEE2C */ _t13 = cpu->r[10] + 0x0000003Cu;
|
|
/* 028DEE2C */ cpu->r[11] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028DEE30 */ cpu->ctr = cpu->r[11];
|
|
/* 028DEE34 */ _t14 = cpu->r[31] + 0x00000040u;
|
|
/* 028DEE34 */ cpu->r[4] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028DEE38 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028DEE3C */ _t15 = cpu->r[31] + 0x0000003Cu;
|
|
/* 028DEE3C */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
/* 028DEE40 */ _t16 = cpu->r[31] + 0x00000040u;
|
|
/* 028DEE40 */ rbrew_write32(cpu->mem, _t16, cpu->r[30]);
|
|
L_028DEE44: ; // 0x28dee44
|
|
/* 028DEE44 */ _t17 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028DEE44 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028DEE48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028DEE4C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028DEE4C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028DEE4C */ if (_t19) goto L_028DEE58; else goto L_028DEE50;
|
|
L_028DEE50: ; // 0x28dee50
|
|
/* 028DEE50 */ cpu->r[4] = cpu->r[31];
|
|
/* 028DEE54 */ Gambit_fn_028E8788(cpu);
|
|
L_028DEE58: ; // 0x28dee58
|
|
/* 028DEE58 */ _t20 = cpu->r[31] + 0x00000008u;
|
|
/* 028DEE58 */ rbrew_write8(cpu->mem, _t20, (uint8_t)cpu->r[30]);
|
|
L_028DEE5C: ; // 0x28dee5c
|
|
/* 028DEE5C */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 028DEE5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028DEE60 */ _t22 = cpu->r[1] + 0x00000008u;
|
|
/* 028DEE60 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028DEE64 */ cpu->lr = cpu->r[0];
|
|
/* 028DEE68 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028DEE68 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028DEE6C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028DEE70 */ return;
|
|
}
|
|
|